The Microsoft Dynamics 365 client API provides an object model that allows developers to interact with business data and metadata in a standardized way. The client API Object Model can be divided into three main areas: form context, grid context, and utility.
1. Form Context (also known as Entity Form)
The form context represents a form loaded in the application and exposes methods and objects to interact with the data and components of the form. It consists of the following namespaces:
- context: This namespace is used to retrieve client context information like client’s organization settings, user settings, parameters passed to the form via navigation and so on.
- data : The data property provides collections and methods to manage data in a form. Namely, methods to manage entity attributes and form metadata, and properties to check event context and get detailed information about a save event.
- ui: The ui namespace is used to manage the UI components in a form. It provides collections and methods to manage primary and secondary tabs, sections, controls and navigation items.
2. Grid Context (also known as Entity Grid)
Grid context provides us with a gateway to interact with data in the context of read-only grid and subgrid. For read-only grids, certain methods to interact with data are available which get from the gridContext.Grid property. Here is a short sample of how to use gridContext:
//Example usage of grid context
var gridContext = formContext.getControl(“<grid or subgrid name>”);
var gridEntityReference = gridContext.getEntityReference();
3. Utility
The Xrm.Utility namespace contains functions that can be used anywhere in the client APIs to perform common tasks like opening an entity form, a web resource or fetching translations of a specified string.
For those familiar with Xrm.Page, another important thing to note is that it has been deprecated with the introduction of the client API object model. Microsoft now recommends using the new ‘contextual’ objects like formContext and gridContext.
To highlight the difference between the formContext(class), Xrm(formContext) and Xrm.Page let’s take an example of getting a field value from the form.
- Xrm.Page:
Xrm.Page.getAttribute("fieldname").getValue();
- formContext:
formContext.getAttribute("fieldname").getValue();
- formContext (class):
this.formContext.getAttribute("fieldname").getValue();
In conclusion, the client API object model is a powerful tool in the hands of a Microsoft Power Platform Developer, allowing for significant interaction and manipulation of business data and metadata
To pass the PL-400 exam, it is crucial for developers to understand these concepts and how to implement them. As a best practice, always refer to Microsoft’s official documentation for the latest and most accurate information.
Practice Test
True or False: The client API object model helps define the way an application communicates with a service or system.
- True
Answer: True
Explanation: The client API object model can be used to define how an application interacts with a system or service by using a set of calls and responses in a programming language.
Which of these is NOT a property of the client API object model?
- A. Event Handler
- B. Retrieval of data
- C. Manipulation of data
- D. Creation of color schemes
Answer: D. Creation of color schemes
Explanation: The client API object model focuses on operation-related properties, such as data retrieval, manipulation, and event handlers, not on visual aspects like color schemes.
True or False: The client API object model allows developers to interact with different elements on a page.
- True
Answer: True
Explanation: The client API object model makes it possible for developers to interact with various elements on a page such as controls, attributes, and entities.
What does the client API object model do when it comes to Microsoft Dynamics 365?
- A. It removes data from the system
- B. It provides a framework for communicative interaction
- C. It produces colorful graphs
- D. None of the above
Answer: B. It provides a framework for communicative interaction
Explanation: In the context of Microsoft Dynamics 365, the client API object model gives developers a way to manage, retrieve, and manipulate data.
Multiple select: Which of these components can be used in the client API object model for Microsoft Power Platform Developer?
- A. Event Handler
- B. Controls
- C. Attributes
- D. Data table
Answer: A. Event Handler, B. Controls, C. Attributes
Explanation: Event handlers, Controls, and Attributes are three key elements that can be manipulated using the client API object model in Microsoft Power Platform Developer. Data table is not specifically listed as a component of the client API object model.
True or False: The client API object model is limited to retrieving data only.
- False
Answer: False
Explanation: Along with data retrieval, the client API object model can be used for managing and manipulating data as well.
What is the major purpose of using a client API object model in Microsoft Power Platform Developer?
- A. For debugging purposes
- B. To initiate system restores
- C. To interact and manipulate elements on a page
- D. To integrate third-party APIs
Answer: C. To interact and manipulate elements on a page
Explanation: The client API object model’s primary function is to enable interaction and manipulation of different elements like controls, entities, and attributes on a page.
True or False: Client API object model helps in making application more user-friendly.
- True
Answer: True
Explanation: By allowing developers to interact and manipulate elements on a page, the client API object model helps in making applications more interactive and user-friendly.
Multiple select: Which of the following are features of the client API object model?
- A. Entity retrieval
- B. Data manipulation
- C. Event handling
- D. Network Configuration
Answer: A. Entity retrieval, B. Data manipulation, C. Event handling
Explanation: Network configuration doesn’t come under the client API object model, but entity retrieval, data manipulation, and event handling do.
True or False: Using the client API object model, developers can control the behavior of certain functionalities in an application.
- True
Answer: True
Explanation: By using the client API object model, developers can control the behavior of various functionalities, adding flexibility and adaptability to the application.
Interview Questions
What is the primary function of the Client API Object Model in Power Platform?
The primary function of the Client API Object Model is to provide a programming model to interact with data and metadata, form management functions, utilities, etc., in Power Platform. It carries out the data in a unified format across all platforms.
Can you describe the structure of the Client API Object Model in the context of Microsoft Power Platform?
The structure of the Client API Object Model follows a hierarchy, starting with the Xrm object, then going on to cover Objects, Collections, and Controls. Each of these elements can have its properties, methods, and events that can be scripted using the API.
What does the Xrm object represent in the Client API object model for Microsoft Power Platform?
The Xrm object represents the global namespace for all client APIs that can be used to script web resources and event handlers for form and field events in Power Platform.
How can page context be accessed in Client API Object Model?
The Page context can be accessed using the “context” property of the form context object. An example would be “formContext.data.entity” where formContext is the current form’s context.
Can Client API Object Model interact with Web resources in Power Platform?
Yes, Client API Object Model allows the scripting of web resources. It provides a comprehensive set of methods and objects that you can use to interact with model-driven apps and canvas apps in Power Platform.
What are some examples of utility functions offered by the Client API Object Model in Microsoft Power Platform?
Some examples of utility functions offered by the Client API Object Model include functions to work with strings, dates, arrays, and even some utility functions such as retrieveRecord and getCurrentPosition.
What are form types in the context of the Client API Object Model, and can you name a few?
In the Client API Object Model, form types are used to decipher the formState property. Some examples of form types include Create (value = 1), Update (value = 2), and Read Only (value = 3).
Can you use the Client API Object Model to work with offline forms and data in Power Platform?
Yes, the Client API Object Model offers functions to interact with and perform CRUD operations on offline data in Power Platform.
Can Client API Object Model play a role in error handling in Power Platform Applications?
Yes, the Client API Object Model provides error handling capabilities. For instance, the “showError” function contained within it can be used to show error details when an error is encountered.
Can you name a few methods available under the Collections component of Client API Object Model?
Some methods available under the Collection component include forEach, get, getLength, and push. These methods provide the ability to iterate over, retrieve, and manipulate elements in a collection.
How does the Client API Object Model handle privacy-related data and data processing in Power Platform?
The Client API Object Model is compliant with data privacy regulations and power platform guidelines. It does not access or process personal data unless absolutely necessary for the operations it performs.
How can you get the logical name of the current entity using the Client API Object Model?
You can get the logical name of the current entity through this Client API code: “formContext.data.entity.getEntityName()”, where formContext is the current form’s context.
What are entity records in the context of the Client API Object Model?
Entity records in the context of the Client API Object Model refer to the data records that are present in the Common Data Service. These records can be created, retrieved, updated, and deleted using the Client API Object Model.
Can you access system settings in Power Platform using the Client API Object Model?
Yes, you can access system settings using the Client API Object Model. The “Xrm.Utility.getGlobalContext.organizationSettings” property can be used for this purpose.
Can you provide an example of how to use the “navigateTo” function within the Client API Object Model?
Yes, the “navigateTo” function can be used as follows: “Xrm.Navigation.navigateTo(pageInput, navigationOptions)”. This function can be used to navigate to a different form or entity in the Power Platform.