Dear,

 

In my Opportunity Product Interest, i would like to set the price if the product is selected.

 

But in the business rules, i can only set a constant value for the Price.

 

any idea how to access product data ?

 

my mini page is in the custom package :

 

So how can i access to the selected product values in the mini page ?

Like 0

Like

2 comments
Best reply

Currently cannot be done with business rules on the page (they can't use data from related objects). Only way to accomplish this is to handle the change of the product lookup, retrieve the values from the selected product and then set on the page. Otherwise, you could use a process, but that won't update the values until saved. 

Ryan

Currently cannot be done with business rules on the page (they can't use data from related objects). Only way to accomplish this is to handle the change of the product lookup, retrieve the values from the selected product and then set on the page. Otherwise, you could use a process, but that won't update the values until saved. 

Ryan

i m trying to build Freedom UI pages without coding...
so i used for the moment the help you provided me here:
https://community.creatio.com/questions/depending-interface-behavior-no…

Show all comments

Hello !

We are currently migrating from Classic UI to Freedom UI.

Some Classic pages will be accessible from the Freedom interface, such as opportunities.

 

So the Opportunity Page is in classic mode even if the user shell is freedom.

 

If the user is logged in to Classic UI, adding a product opens a specific page:

When the user click on the add product button, this opens the opportunity specific product page :


but if the user is logged in under Freedom, this opens a modal:

So the behavior is not the same...

 

Here is my detail configuration:

 

why is Freedom opening a modal on the classic page ?

how can i correct this behavior ?

Thank you !!

Nicolas

Like 0

Like

2 comments
Best reply

Find the lookup named "Object-specific form page interface in the Freedom and Classic UI shell". In that lookup, add an entry for OpportunityProductInterest and for Freedom UI shell select Classic. Then log out and back in again. This will tell the system that if a user is using the Freedom UI shell, to use the classic page for Opportunity products.

Ryan

Find the lookup named "Object-specific form page interface in the Freedom and Classic UI shell". In that lookup, add an entry for OpportunityProductInterest and for Freedom UI shell select Classic. Then log out and back in again. This will tell the system that if a user is using the Freedom UI shell, to use the classic page for Opportunity products.

Ryan

Wonderful, thank you Ryan

Show all comments

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

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