Filtering
LookupFilter
look up filters
Filters
filter
quick-filter
Sales_Creatio

How to filtering lookup with static filter that i have 1 object that is relation to contact and account, and i want to filter if the account is has been added to the object then the account not display in the lookup

Like 2

Like

1 comments

The necessary filtering can be implemented in section page source code. In order to do that you will have to write the handler for crt.LoadDataRequest request that appears when the lookup is opened.

Here is the example of the implementation:
 

/**SCHEMA_MODEL_CONFIG_DIFF*/,
	handlers: /**SCHEMA_HANDLERS*/[
		{
			request: "crt.LoadDataRequest",
			handler: async (request, next) => { 
				if(request.dataSourceName !== "PDS_UsrDoctor_sm2qg7w_List_DS") {
					return await next?.handle(request);
				}
				console.log('Lookup Load Data...');
				const cardModel = await sdk.Model.create("UsrHospitalVisitCardV3");
 
				// now load the records and provide the filters             
				const cards = await cardModel.load({
					attributes: ["UsrDoctor"]
				});
				console.log(cards);
 
				if (cards) {
					const filter = new sdk.FilterGroup();
					filter.logicalOperation = sdk.LogicalOperatorType.Or;
					cards.forEach(async (card) => {
						if(card.UsrDoctor && card.UsrDoctor.value){
							await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Id", card.UsrDoctor.value);
						}
					});
 
					// note, these lines are only needed due to an issue with filters in Creatio-DevKit SDK
					// expected to be fixed in Creatio 8.1
					const newFilter = Object.assign({}, filter);
					newFilter.items = filter.items;
 
					request.parameters.push({
						type: "filter",
						value: newFilter
					});
				}
 
				return await next?.handle(request);
			}
		}
	]/**SCHEMA_HANDLERS*/

 
In the example above "PDS_UsrDoctor_sm2qg7w_List_DS" is the name of the lookup that has to be filtered and "UsrHospitalVisitCardV3" is the object that contains that lookup and which records we should check.

You can also find some additional details and useful information in the articles:
https://customerfx.com/article/dynamically-filtering-a-lookup-on-a-creatio-freedom-ui-page/
https://customerfx.com/article/querying-data-using-filter-conditions-via-the-model-class-equivalent-to-enityschemaquery-in-a-creatio-freedom-ui-page/

Show all comments
business rule
formulas
Sales_Creatio
8.0

Hi community,

In the oob version Product in order modal page when opening the business rules,

we see the Formula expression BusinessRuleFormulaExpression 

However when trying to create a rule of our own we cant apply formulas, its always the Constant Value

Is there any feature that needs to be active?

Sasor

Like 0

Like

1 comments
Detail reload
FreedomUI
refresh
closepage
event
Sales_Creatio
8.0

Hello Community,
Here is the scenario Im truing to solve.

We Have Opportunity (parent page) in freedomUI and Contact In Opportunity in Classic UI.

We want to capture the following event. When we click Close in 'Contact in opportunity', we want to capture this event, in the Opportunity Form Page. 

The scope behind this is to perform a list reload of the Contacts(have already tried Enable live update in the entities-doesnt work)

How can this be achieved?

Sasor

Like 0

Like

9 comments

++++

Hello,
 

You can implement the following code to reload the data source when you get to the Freedom UI page on the crt.HandleViewModelInitRequest.
 

Sample implementation for “Opportunities_FormPage”

define("Opportunities_FormPage", /**SCHEMA_DEPS*/["@creatio-devkit/common"]/**SCHEMA_DEPS*/, function/**SCHEMA_ARGS*/(sdk)/**SCHEMA_ARGS*/ {
...
        handlers: /**SCHEMA_HANDLERS*/[
              {
        // Load data grids
      request: 'crt.HandleViewModelInitRequest',
      handler: async (request, next) => {
          console.log("You returned to FreedomUI page");
            const result = await next?.handle(request);
            const handlerChain = sdk.HandlerChainService.instance;
            await handlerChain.process({
                type: 'crt.LoadDataRequest',
                $context: request.$context,
                config: {
                    loadType: "reload"
                },
                dataSourceName: "ContactRolesListDS"
            });
            return result;
      }
  }

Serhii Parfentiev,

Hello Serhii,

Have you actually tried it ? HandleViewModelInitRequest is not even triggered when you close the classic ui page (nothing in the console log)

Sasor

++++

++++

++++

++++

+++++++

Hi Community,

Is there any idea about this topic?

Sasor

Show all comments
minipage
mini pages
Next_Steps
Freedom_UI
Sales_Creatio
8.0

I would like to disable the mini page that appears before the main page in Freedom UI. Currently, when we click on "Next Step," it first opens a mini page before navigating to the main page. Instead, I want it to directly open the main page without this intermediate step.

Like 4

Like

5 comments

Hello,

 

When clicking on the "Complete" button from the next steps, the system will show you the Freedom UI mini page, as this is a Next Steps core logic.

The only way to avoid opening this mini page is to develop your only Next Steps tiles and assign different logic for the complete button.

Dymytriy Vykhodets,

can you please help me where this core logic is written. so that i can try to create new logic.

Dymytriy Vykhodets,

the idea is to open the main page in place of mini page when we click on complete button

Alok Kumar,

Yes, we want to opent the main page directly

 

Hello, is there an additional information on this particular need? Is there a documentation to be followed for "developing custom Next Steps tiles and assign different logic for the complete button"? In some cases, complete button is expected to be enough to complete the action at that time. Is there any additional resource on this topic?

Show all comments
errors
deduplication
merging
Contact
Sales_Creatio
8.0

Hi everyone,

Trying to merging 2 different pairs of duplicate contact records and i receive the following errors: 

1. P0001: User with specified contact already exists
2. Npgsql.PostgresException: 42601

Has anyone ever encountered these errors? 

Like 0

Like

1 comments

Hi Shemroy!

This error can occur when the contacts you are trying to merge are linked to a system user.

When trying to merge them, the system attempts to link one contact to another user, but a contact cannot be linked to more than one user. This results in an error, since the system does not allow this situation.

Such user-linked contacts should not be merged. If necessary, you can deactivate one of the users and rename the contact to avoid confusion.

Since deleting a user is not supported by the system by design, deleting a contact linked to such a user is also not possible.
 

If you have any further questions, please let us know, we would be happy to help.
Thank you for choosing Creatio!

Show all comments
Sales_Creatio
8.0

Hello, 

 

I've set 'Record deactivation' for my object. But I don't see any field for that in Data model attributes on my Freedom UI page.

 

How can I add this field 'Inactive' to Freedom UI page?

 

Thank you!

Like 1

Like

3 comments

Hello Vladimir,

I've the same question and I followed these steps for Contact section:

1. Create a replacement for the Freedom client schema. Please create a new client module, and for the URL in the browser, change schemaType=9 
for example like that: .../0/ClientApp/#/ClientUnitSchemaDesigner/new?packageId=db5d44a0-881e-ba1b-3396-a2dfae3fecee&packageName=test_contacts&schemaType=9
2. Set Parent object -  Contacts form page (Contacts_FormPage)

3. Change del module script 

viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[
			{
				"operation": "insert",
				"name": "Checkbox_Custom",
				"values": {
					"layoutConfig": {
						"column": 1,
						"row": 2,
						"colSpan": 1,
						"rowSpan": 1
					},
					"type": "crt.Checkbox",
					"label": "$Resources.Strings.PDS_RecordInactive_Custom",
					"labelPosition": "auto",
					"control": "$PDS_RecordInactive_Custom"
				},
				"parentName": "SideAreaProfileContainer",
				"propertyName": "items",
				"index": 1
			}
		]/**SCHEMA_VIEW_CONFIG_DIFF*/,
		viewModelConfigDiff: /**SCHEMA_VIEW_MODEL_CONFIG_DIFF*/[
			{
				"operation": "merge",
				"path": [
					"attributes"
				],
				"values": {
					"PDS_RecordInactive_Custom": {
						"modelConfig": {
							"path": "PDS.RecordInactive"
						}
					}
				}
			}
		]

Hello,
 

The solution provided by Stefano is a good one. 

An alternative solution was discussed in this post: https://community.creatio.com/questions/recordinactive-checkbox-missing-freedom, and you can use the approach from there.
 

However, we still recommend adding the required column directly via page metadata, as described above.
 

We already have a backlog task to address this issue in future versions of the application.
 

Thank you for reaching out!

Stefano Bassoli,

Hello Stefano,

 

I just followed your advice and it worked well, thanks!

However, is it possible to select the field in the conditions part of the business rules? It doesn't show up there either.

 

Thanks,

Robert

Show all comments

I need to create one printing report for all records in section. I set up word report for this section. I set up button, but it makes separated report for every record.

As result i want to get literaly all records from section in my report. What should I do to get this result: ONE common report with all section records

Like 0

Like

1 comments

Hi,
 

Unfortunately, there is no direct way to perform such printing.

However, you can configure this logic using a workaround.
 

For example, if you want to export all records from the "Invoice" section into a single report, you can follow these steps:


1.Create an "Invoice report" object (optionally, you can create a section for it).

2. In the "Invoice" object, add a lookup column that references "Invoice report" (e.g., UsrInvoiceReport).

3. Create a single record in the "Invoice report" section.

4. Update all Invoice records, setting the UsrInvoiceReport column (from step 2) to the record created in step 3.

5. Create a report based on the "Invoice report" object and add a table section for the "Invoice" object, linking them as follows:
 

Invoice report.Id = Invoice.UsrInvoiceReportId
 

This way, you will generate a report that includes all records from the Invoice table, as they all reference the same record.
 

You can also use this same section for other objects like Document, Order, etc. by repeating steps 2-5.
 

Hope this helps! Take care! 😊

Show all comments
Add_a_new_step
tag
Next_Steps
FreedomUI
Sales_Creatio

How to Hide the + Add a new step from Next Steps, as "+ Add a new step" button allows users to deviate from these established flows.

 

Like 0

Like

1 comments
Best reply

Hello,

 

Unfortunately, it is not possible to hide "+ Add a new step" button within the "Next step" using OOTB functionality. This can only be achieved with development tools, but we currently do not have examples of such an implementation.

Additionally, we have created a task for the responsible R&D team to consider adding this functionality in future releases.

Hello,

 

Unfortunately, it is not possible to hide "+ Add a new step" button within the "Next step" using OOTB functionality. This can only be achieved with development tools, but we currently do not have examples of such an implementation.

Additionally, we have created a task for the responsible R&D team to consider adding this functionality in future releases.

Show all comments
null
Validation
objects
Numbering
Sales_Creatio
8.0

Does anybody have fairly solid methods of working around Creatio's limitation of not being able to distinguish between zeroes and missing values for number fields? This often comes up in requirements, and I haven't found a workaround that works so well that I always use it.

 

Some methods we've tried/considered:

  • Using Text fields instead of number fields
    • Obvious disadvantage of not having numeric protections/validations, both in the page layer & the backend & database side
    • Values can't be aggregated into KPI widgets/graphs, unless you have some process to copy the number text into a hidden number field...
  • Having a Boolean field for every number field to indicate if it should be null or zero
    • Cumbersome to implement on objects with lots of number fields
    • Field still displays as a zero value unless you add in custom code everywhere it appears
    • BPs or Event Listener code needed to ensure these 2 fields agree, plus logic in the page/integrations needed to set the flags and make the field show nothing when the flag is set

 

Any other workarounds people are using that are effective? Hopefully Creatio will add this capability at some point as it is crucial for having valid data, but it feels like it would require a fairly big change to the platform, so I don't expect we'll get it very soon!

Like 0

Like

3 comments

Hello Harvey,

 

The task is still in progress and the only workaround that currently exists is using the text column instead of a number. In case this number should be processed it can be done using type casting in formulas (or script tasks) of business processes.

 

I've also added your voice to prioritize the problem for our R&D team. Hope this will be implemented soon.

We are also experiencing this issue when searching by dates. For example, 4/5/1967 will generate a hit, but not 04/05/1967.  Interested in being added to any prioritization tickets on this.

 

Anna Pannier,

 

Please create a separate question in the community with a description of how exactly the search is performed and which datatype your current column that stores the date has.

Show all comments
FreedomUI
OpenSelectionWindowRequest
Javascript
lookup
Sales_Creatio
8.0

Hello Community,

In this article it is described on how to deal with selection windows crt.OpenSelectionWindowRequest. https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/8.1/platform-customization/freedom-ui/selection-window/overview

but no information at all about predefined values.

Is there any possibilty that when clicking 'NEW' there are some predefined default values?

Example

The Account type is set to 'Our Company'

Thank you,

Sasori

Like 0

Like

4 comments

Hello,
 

You don't need to use programming for this task.
You need to create an object replacement (in your example, an Account object replacement), in which you can set the default value for the corresponding columns, save the changes, and publish the object.

defValue
defValue


 After that, when you open the pages of creating records, you will see the fields immediately filled with the default values.

defValue in Runtime

These links can also be useful for you to find more options for achieving your goal:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/development-tools/creatio-ide/configuration-elements/object

https://community.creatio.com/questions/it-possible-set-default-value-f…

Thank you.

Hello Serhii,

Thank you for the reply.

1) We can not utilize the generic default value, becasue depending on the conditions the Type, might have differnetvalues.

2) Our frontend logic is associated with OpenSelectionWindowRequest. In the documentation of OpenSelectionWindowRequest there is no documentation for default values.

Is there any workaround to achieve this?
Sasor

If you need to use a value based on one of the fields of an object, it is fashionable to use business rules at the object level, which, depending on the value in one field, will set the value for another field using the “Set values” option.

setValBusRul

setValBusRul
 

Hello community,

any new development in the new versions of the codebase that allows us to set default values on OpenSelectionWindowRequest?

Sasor

Show all comments