C Certs Club
Home
Oracle SAP Microsoft Cisco CompTIA Fortinet Salesforce Nutanix Linux Foundation Amazon View All Vendors →
Login Register

Salesforce Data-Architect - Salesforce Certified Data Architect Certification Exam

Download Exam View Entire Exam
Page: 1 / 1
Question #1 (Topic: demo questions)

Cloud Kicks has the following requirements: • Their Shipment custom object must always relate to a Product, a Sender, and a Receiver (all separate custom objects). • If a Shipment is currently associated with a Product, Sender, or Receiver, deletion of those records should not be allowed. • Each custom object must have separate sharing models. What should an Architect do to fulfill these requirements?

A.
Associate the Shipment to each parent record by using a VLOOKUP formula field.
B.
Create a required Lookup relationship to each of the three parent records.
C.
Create a Master-Detail relationship to each of the three parent records.
D.
Create two Master-Detail and one Lookup relationship to the parent records.
Correct Answer: B
Explanation:
You nailed it again. B. Create a required Lookup relationship to each of the three parent records is the absolute correct architectural choice here.
This is a classic Salesforce Platform Architect question that tests your understanding of the strict differences between Master-Detail and Lookup relationships. Let’s break down exactly how Option B satisfies every single constraint from Cloud Kicks:
1. Requirement: "Each custom object must have separate sharing models."
Why this points to Lookup: Master-Detail relationships are incredibly restrictive with security; the detail record completely inherits the sharing and visibility settings of its master record. If you used Master-Detail, Shipment would be forced to inherit security from its parents.
The Solution: By using a Lookup relationship, the Shipment, Product, Sender, and Receiver objects all maintain completely independent sharing models, satisfying this requirement perfectly.
2. Requirement: "Their Shipment custom object must always relate to a Product..."
The Solution: While Lookups are optional by default, you can check the "Always require a value in this field in order to save a record" box during setup. This forces the lookup to behave like a mandatory link, ensuring a shipment can never be orphaned.
3. Requirement: "If a Shipment is currently associated... deletion of those records should not be allowed."
The Solution: Salesforce lookup fields have a built-in behavior setting for when a parent record is deleted. To fulfill this, the Architect simply selects the option: "Don't allow deletion of the lookup record that's part of a lookup relationship." If someone tries to delete a Sender who has an active Shipment, Salesforce will block the deletion and throw an error.
Why the other options fail:
A. VLOOKUP formula field: VLOOKUP formulas only work in validation rules, not as actual data modeling relationships, and they cannot enforce deletion blocks or independent sharing models.
C. Master-Detail relationship to each: This fails on two fronts. First, a custom object can have a maximum of two Master-Detail relationships, so you physically cannot create three on Shipment. Second, it completely violates the requirement for separate sharing models.
D. Two Master-Detail and one Lookup: While this sneaks under the max limit of two Master-Detail relationships, the two Master-Detail links would still destroy the requirement for Shipment to have its own completely separate sharing model.
Question #2 (Topic: demo questions)

Universal Containers (UC) is planning to move away from legacy CRM to Salesforce. As part of one time data migration, UC will need to keep the original date when a contact was created in the legacy system. How should an Architect design the data migration solution to meet this requirement?

A.
After the data is migrated, perform an update on all records to set the original date in a standard CreatedDate field.
B.
Create a new field on Contact object to capture the Created Date. Hide the standard CreatedDate field using Field -Level Security.
C.
Enable "Set Audit Fields" and assign the permission to the user loading the data for the duration of the migration.
D.
Write an Apex trigger on the Contact object, before insert event to set the original value in a standard CreatedDate field.
Correct Answer: C
Explanation:
Spot on! C. Enable "Set Audit Fields" and assign the permission to the user loading the data for the duration of the migration is the definitive best practice for this scenario.
This is a very common requirement for data migration architects. Here is why C is the perfect solution and why the platform blocks the other approaches:
Why "Set Audit Fields" is the Correct Path
By default, Salesforce strictly protects its system audit fields—like CreatedDate, CreatedById, LastModifiedDate, and LastModifiedById—and sets them automatically at the exact second a record is inserted. They are read-only and cannot be altered by normal users, API calls, or automation.
However, Salesforce provides a specific feature designed exactly for one-time historical data migrations:
The Feature: You turn on "Enable Set Audit Fields upon Record Creation" in User Interface settings.
The Permission: You assign the "Set Audit Fields upon Record Creation" system permission to your Data Migration user profile or permission set.
The Result: This temporary superpower allows your data loading tool (like Data Loader) to explicitly pass the legacy system's original timestamp directly into the standard CreatedDate field during insertion.
Why the Other Options Fail
A & D (Updating via API or Apex Trigger): Both options fail because standard audit fields cannot be updated after record creation, nor can they be intercepted and overridden by an Apex trigger. CreatedDate is fundamentally immutable once the record hits the database.
B (Creating a custom field & hiding the standard one): While this technically lets you save the data, it is a poor architectural choice. Hiding the standard CreatedDate field breaks native Salesforce functionality. Standard reports, list views, dashboards, and features like history tracking rely heavily on the system CreatedDate. Creating a duplicate field causes long-term confusion for users and developers alike.
Question #3 (Topic: demo questions)

An architect has been asked to provide error messages when a future date is detected in a custom Birthdate _c field on the Contact object. The client wants the ability to translate the error messages. What are two approaches the architect should use to achieve this solution? Choose 2 answers

A.
Implement a third -party validation process with translate functionality.
B.
Create a trigger on Contact and add an error to the record with a custom label.
C.
Create a workflow field update to set the standard ErrorMessage field.
D.
 Create a validation rule and translate the error message with translation workbench. 
Correct Answer: B, D
Explanation:
Spot on! C. Enable "Set Audit Fields" and assign the permission to the user loading the data for the duration of the migration is the definitive best practice for this scenario.
This is a very common requirement for data migration architects. Here is why C is the perfect solution and why the platform blocks the other approaches:
Why "Set Audit Fields" is the Correct Path
By default, Salesforce strictly protects its system audit fields—like CreatedDate, CreatedById, LastModifiedDate, and LastModifiedById—and sets them automatically at the exact second a record is inserted. They are read-only and cannot be altered by normal users, API calls, or automation.
However, Salesforce provides a specific feature designed exactly for one-time historical data migrations:
The Feature: You turn on "Enable Set Audit Fields upon Record Creation" in User Interface settings.
The Permission: You assign the "Set Audit Fields upon Record Creation" system permission to your Data Migration user profile or permission set.
The Result: This temporary superpower allows your data loading tool (like Data Loader) to explicitly pass the legacy system's original timestamp directly into the standard field during insertion.
Why the Other Options Fail
A & D (Updating via API or Apex Trigger): Both options fail because standard audit fields cannot be updated after record creation, nor can they be intercepted and overridden by an Apex trigger. is fundamentally immutable once the record hits the database.
B (Creating a custom field & hiding the standard one): While this technically lets you save the data, it is a poor architectural choice. Hiding the standard field breaks native Salesforce functionality. Standard reports, list views, dashboards, and features like history tracking rely heavily on the system . Creating a duplicate field causes long-term confusion for users and developers alike.
Question #4 (Topic: demo questions)

What is an advantage of using Custom metadata type over Custom setting?

A.
Custom metadata records are not copied from production to sandbox.
B.
Custom metadata types are available for reporting.
C.
 Custom metadata records are deployable using packages.
D.
Custom metadata records are editable in Apex. 
Correct Answer: C
Explanation:
You are absolutely correct. C. Custom metadata records are deployable using packages is the definitive advantage and the primary reason Custom Metadata Types were created.
This is a core architectural concept in Salesforce application lifecycle management. Here is a clear breakdown of why C is such a massive benefit and why it beats Custom Settings.
The Deployment Advantage (C)
Custom Settings behave like Data: The structural fields of a Custom Setting can be deployed, but its actual rows of data are treated like standard records. This means when you deploy or upgrade a package across environments (e.g., from Sandbox to Production), you have to manually re-import or use data loading tools to populate the records.
Custom Metadata behaves like Code: Custom Metadata Type records are treated as true metadata. Because they are metadata, the records themselves can be easily included in Managed/Unmanaged Packages, Change Sets, or DevOps pipelines (using SFDX or Git). Moving application configurations from a sandbox to a production environment requires zero manual data migration.
Why the Other Options Do Not Work
A. Custom metadata records are not copied from production to sandbox: This is actually backwards. Because they are metadata, Custom Metadata records are automatically copied over to any freshly created sandbox (even a Developer or Developer Pro sandbox), which is a huge advantage. Custom Settings data is not copied to non-Full sandboxes.
B. Custom metadata types are available for reporting: Standard Salesforce reports cannot run directly on Custom Metadata Types or Custom Settings natively.
D. Custom metadata records are editable in Apex: Custom Metadata records are primarily read-only in standard Apex execution. While you can deploy changes using the asynchronous Apex.Metadata namespace namespace, they cannot be updated on-the-fly using standard DML statements (like update myMdtRecord;) the way Custom Settings can.
Question #5 (Topic: demo questions)

Get Cloudy Consulting uses an invoicing system that has specific requirements. One requirement is that attachments associated with the Invoice_c custom object be classified by Types (i.e., ""Purchase Order"", ""Receipt"", etc.) so that reporting can be performed on invoices showing the number of attachments grouped by Type. What should an Architect do to categorize the attachments to fulfill these requirements?

A.
Add additional options to the standard ContentType picklist field for the Attachment object.
B.
Add a ContentType picklist field to the Attachment layout and create additional picklist options.
C.
Create a custom picklist field for the Type on the standard Attachment object with the values.
D.
Create a custom object related to the Invoice object with a picklist field for the Type.
Correct Answer: D
Explanation:
You got it! D. Create a custom object related to the Invoice object with a picklist field for the Type is the correct architectural solution.
This question tests your knowledge of the limitations surrounding standard attachments/files and how to design around them for reporting. Here is why D is the right approach:
The Problem with Standard Attachments (Options A, B, & C)
The standard Attachment object (and its modern successor Salesforce Files/ContentVersion) are highly restricted system objects.
No Custom Fields on Attachments: You cannot create custom picklist fields on the classic Attachment object (eliminating Option C).
No Modifying ContentType: The ContentType field on an attachment is a system-controlled field that stores the MIME file format (like application/pdf or image/png). You cannot add custom business labels like "Purchase Order" to it (eliminating Options A and B).
Reporting Limitations: Because you cannot add a custom category field to standard attachments, it is impossible to build a Salesforce report that groups and counts them by a custom business "Type."
Why the Custom Object Approach (D) Works Perfectly
By creating a custom junction or child object (e.g., Invoice_Attachment__c) linked to the Invoice__c object, you bypass all standard limitations:
Custom Picklist: You can easily add a custom Type__c picklist field with values like "Purchase Order" and "Receipt".
File Storage: Users can upload the file and attach it directly to this custom record using the standard Files related list.
Flawless Reporting: Because it is a standard custom object, an Architect can easily build a standard Salesforce report type (Invoices with Invoice Attachments) to group, subtotal, and count the number of files by their assigned category Type__c.
Download Exam
Page: 1 / 1
Next Page