back to top

Retrieving a Record via the Model Class (Equivalent to EntitySchemaQuery) in a Creatio Freedom UI Page

In my previous article I introduced the Model class, available in the Creatio DevKit SDK. In this article I will show how to use the Model class to retrieve a record. This is the Freedom UI equivalent to performing an EntitySchemaQuery. In this particular example, we’ll be loading a single record, which would be the same as getEntity in an EntitySchemaQuery. The Model class is available via the new Creatio DevKit SDK.

To use the devkit, you’ll need to add “@creatio-devkit/common” to the modules list of your page. This will look like this (note the “@creatio-devkit/common” in the square brackets and the sdk without quotes in the parenthesis):

define("UsrMyCustomEntity_FormPage", /**SCHEMA_DEPS*/["@creatio-devkit/common"] /**SCHEMA_DEPS*/, 
function/**SCHEMA_ARGS*/(sdk)/**SCHEMA_ARGS*/ {
	return {
		// ... the rest of the page here
	};
});

Now, with that module available, you can access things in the SDK, such as the Model class. We’ll use this model class to create a model for a specific entity. Then, we’ll load a record given it’s Id value. Let’s look at the code:

const someAccountId "ddd2c965-cd43-4c9e-8ee1-9783a5571be8";

const accountModel = await sdk.Model.create("Account");
const accounts = await accountModel.load({
	attributes: ["Id", "Name", "Type"],
	parameters: [{
		type: sdk.ModelParameterType.PrimaryColumnValue,
		value: someAccountId
	}]
});
					
const account = accounts[0];
if (account.Type.displayValue === "Partner") {
	console.log(account.Name + " is a Partner");
}

The end result is, we read the Account with the Id value we’ve provided and we get the record back. Well, not the entire record, just the columns we’re asking for in the attributes array. Let’s break down what we’re doing there.

First, we create the model for the account object:

const accountModel = await sdk.Model.create("Account");

Then, we load a specific account’s Id, Name, and Type columns, given the Id for the account we want to load:

const accounts = await accountModel.load({
	attributes: ["Id", "Name", "Type"],
	parameters: [{
		type: sdk.ModelParameterType.PrimaryColumnValue,
		value: someAccountId
	}]
});

From there, we just get the first account in the array (the only one since we’ve just asked for one by its primary column – it’s Id column). Then we can read the properties as needed. I do have to admit, I do like working with this new model class so far. This article just focused on one type of load, to retrieve a single record using its primary column value. in a future article, I’ll show how to retrieve a collection of records using filter conditions.

Contact Customer FX for your CRM project
We let our expertise speak for itself - let us know how our all-star team can help on your CRM project
About the Author
Ryan Farley
Ryan Farleyhttps://customerfx.com/article/author/ryanfarley/
Ryan Farley is the Director of Development for Customer FX and creator of slxdeveloper.com. He's been blogging regularly about SalesLogix, now Infor CRM, since 2001 and believes in sharing with the community. His new passion for CRM is Creatio, formerly bpm'online. He loves C#, Javascript, web development, open source, and Linux. He also loves his hobby as an amateur filmmaker.

1 COMMENT

LEAVE A REPLY

Please enter your comment!
Please enter your name here

AI Readiness Checklist for CRM Teams: Is Your CRM System Ready for AI?

Before using AI in Creatio, make sure your CRM data, users, processes, and automation foundation are ready. Use this practical AI readiness checklist for CRM teams.

Build Your Creatio AI Skills with the 2026 AI Summer Program

Join Creatio’s free 2026 AI Summer Program to learn how to identify, build, deploy, and manage AI agents.

Creatio 10x Is Coming: Join the Webinar to Explore the Future of AI-Native CRM

Learn what's new in Creatio 10x and how AI-native CRM, agentic AI, and no-code automation are shaping the future of customer relationship management. Join the upcoming webinar and discover what's next.

Creatio Unlimited Pricing Explained: AI Packages, Costs, Pros & Cons

Learn what Creatio’s new Unlimited pricing model includes, what it doesn’t include, how AI Action packages work, and the pros and cons for businesses evaluating Creatio.

Using the AI Prompt to Create Dynamic Folders in Creatio

Using Creatio's AI prompt to create the filter for a dynamic folder works best if you specifically ask for that, and if you are as clear and direct as possible about the filtering, conditions.

Related Articles

AI Readiness Checklist for CRM Teams: Is Your CRM System Ready for AI?

Before using AI in Creatio, make sure your CRM data, users, processes, and automation foundation are ready. Use this practical AI readiness checklist for CRM teams.

Build Your Creatio AI Skills with the 2026 AI Summer Program

Join Creatio’s free 2026 AI Summer Program to learn how to identify, build, deploy, and manage AI agents.

Creatio 10x Is Coming: Join the Webinar to Explore the Future of AI-Native CRM

Learn what's new in Creatio 10x and how AI-native CRM, agentic AI, and no-code automation are shaping the future of customer relationship management. Join the upcoming webinar and discover what's next.

Creatio Unlimited Pricing Explained: AI Packages, Costs, Pros & Cons

Learn what Creatio’s new Unlimited pricing model includes, what it doesn’t include, how AI Action packages work, and the pros and cons for businesses evaluating Creatio.

Related Videos