Dear,

I have add a button on the contact page in order to create an opportunity :

When you click on "Créer une opportunité" it launch a process which open a preconfigured page, the user select the "Besoin client" and then click save. Next i'd like to open the new record.

 

So in my process :

the opportunity page opens but it closes automatically.

 

how to keep the page open?

 

Thank you !
Nicolas

Like 0

Like

1 comments

Hello community,

 

Could anybody clarify when I'm updating record using Odata EntityDataService.svc, will business logic be applied to the record after update if it is set up on update trigger?

 

For example, if one set up rights sharing with respect to owner of the record, will owner's update via Odata force the rights sharing?

Like 0

Like

2 comments
Best reply

Yes - if you have processes with start signals for the records you're updating, they will get triggered when the records are updated via OData. Performing adds/updates via OData are just as if they were done in app.

Yes - if you have processes with start signals for the records you're updating, they will get triggered when the records are updated via OData. Performing adds/updates via OData are just as if they were done in app.

Ryan Farley,

Thanks a lot!

Show all comments

Hi all,

When adding an aggregated field to a filter, some of the field names are missing from the 'by column' expression.
 

Example: This should state 'File and link of invoice (by column Contact)'

I believe this started following a package being migrated to the production system. The same error was not occurring in the dev system.

 

Is there a way to set these fields manually or a way of forcing the system to regenerate them?

Like 0

Like

1 comments

I've found the reason for this. The table Data schema reference contains duplicate values, some of which don't have a value in the Column name (title) field. Deleting the duplicates fixes the issue.


 

Still not sure what the cause was.

Show all comments

I am trying to add a filter on the lookup owner based on the account field, but the filter is not working. Does anyone have an idea why?

Thanks!

handlers: /**SCHEMA_HANDLERS*/[
        {
            request: "crt.LoadDataRequest",
            handler: async (request, next) => {
                // filter the contact lookup for the account
                             
                if(request.dataSourceName !== "LookupAttribute_85sj3qr_List_DS") {
                    return await next?.handle(request);
                }
         
                // get the account                  
                const account = await request.$context.Parameter_q8l08xk;
                if (account) {
                    const filter = new sdk.FilterGroup();
                    await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Account", account.value);
         
                    
                    const newFilter = Object.assign({}, filter);
                    newFilter.items = filter.items;
         
                    request.parameters.push({
                        type: "filter",
                        value: newFilter
                    });
                }
                             
                return await next?.handle(request);
            }
        }
            
        ]/**SCHEMA_HANDLERS*/,

Like 0

Like

2 comments

First, enable debug mode by executing the following in the browser console:

See https://customerfx.com/article/debugging-client-side-code-in-creatio-fo…

Once enabled, open the code for the page and set some breakpoints. Is a dataSourceName for "LookupAttribute_85sj3qr_List_DS" getting triggered? Maybe the name is wrong?

Is request.$context.Parameter_q8l08xk correctly retrieving the account?

Ryan

Everything looks Correct , and the issue was that I forgot to add the SDK "@creatio-devkit/common" to the page .
Thank You 

Show all comments

Hello all,

 

Is there a way to block users from copying records? I can't find any operation permission but we're trying to force user's to create new records rather than copying existing records.

Like 1

Like

1 comments

Hello,

 

In Creatio, you can manage user permissions to control access to various operations, including creating, editing, and deleting records. However, there isn't a specific permission to block users from copying records directly.

 

To achieve your goal of preventing users from copying records, you can consider the following approaches:

Custom Business Rules: Implement custom business rules or scripts that prevent the copying of records. This can be done by adding validation logic that checks if a record is being copied and then prevents the operation.

User Permissions: Review and adjust user permissions to limit access to certain records or fields. While this won't directly prevent copying, it can restrict what users can do with the records they have access to.

Training and Guidelines: Educate users on the importance of creating new records rather than copying existing ones. Provide clear guidelines and training to ensure they understand the process and the reasons behind it.

Audit and Monitoring: Implement auditing and monitoring to track record creation and copying activities. This can help you identify and address any instances where users are copying records inappropriately.

Show all comments

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

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
Best reply

Yes, you need to activate the new beta feature in 8.2.1 : https://academy.creatio.com/docs/8.x/resources/release-notes/8-2-1-ener…

Yes, you need to activate the new beta feature in 8.2.1 : https://academy.creatio.com/docs/8.x/resources/release-notes/8-2-1-ener…

Show all comments

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

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 3

Like

3 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

Show all comments

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