Creatio 8.0.10

 

There are two bugs.

 

The error in the screenshot below occurs when adding and saving a product to the quote.  Clicking past the error, clicking cancel and refreshing the Quotes record Products detail shows that the product has actually saved.



The other bug is when clicking a quote in a Quotes tab which I have added to the Opportunities section and when viewing a quote, the screen becomes unresponsive while in the quote, it takes a page refresh using the browser to be able to close the quote and return to the opportunity.  Also just accessing the quotes tab of the Opportunities section and then trying to access another section the page hangs with the loading spinner, requiring a page refresh again.

 

Like 0

Like

3 comments

Another bug, Selecting New quote from the RUN PROCESS menu of an Opportunities record results in the following error:

 

Gareth Osler,

 

Hello Gareth,

 

Thank you for bringing this to our attention. 

After a thorough analysis, we have identified that the cause of the problem is the discrepancy between the add-on logic and the logic of the Opportunity product object.

 

The Quotes add-on section uses the same Opportunity product detail as the Opportunity out-of-the-box section. When a detail record is created from the Opportunity section, Creatio populates the Opportunity field in the detail automatically.

However, when a detail record is created from the Quotes section or via a business process, the Opportunity field in the detail remains empty.

The detail attempts to retrieve the OpportunityId value after the detail record is saved. If this value is missing, an error occurs.

 

We have decided to unpublish the add-on from the marketplace until the fix is implemented. 

 

In the meantime, you can implement a workaround. You can extend the add-on logic so that the Opportunity field in the detail is populated automatically when a detail record is created from the Quotes section or via a business process.

Show all comments

Hi folks! How are you?

I've creted a section in Freedom and I want to show a custom page instead the default list page.

default url is: http://uriel:100/0/Nui/ViewModule.aspx#Section/UsrTest_ListPage

Custom url is :http://uriel:100/0/Nui/ViewModule.aspx#Section/UsrPage_ebkv9e8



I tried a redirect inside the method crt.HandleViewModelInitRequest for the list page it works but it has a strange behavior in some cases (window.location). I tried something similar than this.sandbox.publish("PushHistoryState", {hash: "ProcessCardModuleV2/AutoGeneratedPageV2/377caef9-d9ed-48ee-8458-3106e61dfdc6"}); but I didn't find the equivalent.

 

Appreciate your ideas.

Regards.

 

Like 0

Like

2 comments
Best reply

Hello,

 

You can try another approach: the column that is responsible for the section list page that will be opened when going to the section is SectionSchemaUId (in the SysModule table). This column represents data from the UId column of the SysSchema table. What can be done to force custom page to be opened when opening the section is modifying the current SectionSchemaUId column value for the proper SysModule table record to the desired value. So you need to find the SysModule record responsible for your current section (for example using the query like:

 

select * from "SysModule" where "SectionSchemaUId" in (select "UId" from "SysSchema" where "Name" = 'UsrTest_ListPage')

), use an Id of the record found and then use it in the query like:

 

update "SysModule" set "SectionSchemaUId" = 'desired UId of the UsrPage_ebkv9e8 schema' where "Id" = 'Id found previously'

 

and relogin to the app after that. I recently tested it and the Services_ListPage was opened for my custom Freedom UI section:

 

Hello,

 

You can try another approach: the column that is responsible for the section list page that will be opened when going to the section is SectionSchemaUId (in the SysModule table). This column represents data from the UId column of the SysSchema table. What can be done to force custom page to be opened when opening the section is modifying the current SectionSchemaUId column value for the proper SysModule table record to the desired value. So you need to find the SysModule record responsible for your current section (for example using the query like:

 

select * from "SysModule" where "SectionSchemaUId" in (select "UId" from "SysSchema" where "Name" = 'UsrTest_ListPage')

), use an Id of the record found and then use it in the query like:

 

update "SysModule" set "SectionSchemaUId" = 'desired UId of the UsrPage_ebkv9e8 schema' where "Id" = 'Id found previously'

 

and relogin to the app after that. I recently tested it and the Services_ListPage was opened for my custom Freedom UI section:

 

Oleg Drobina, thank you so much! I tried this approach before and it doesn't work probably because I had a mistake with the IDs. Now it is working. Appreciate your help. Regards

Show all comments

Hi,

I am looking for a classic lead score based on the completeness of the lead data. I know there is a predictive scoring feature, but it's not what I'm looking for because it requires historical data for scoring.   It is a new project and I need to assign the qualification to the leads as the lead data is completed and without having historical data.

 

For example, when the email if filled the score is 1, if the phone is also filled the score is 2, and so on. 

 

I know there was an old version of lead scoring with this functionality but I don't see it in the newest versions. Is there a way to activate this classic lead score functionality?

 

 

Thanks,

 

Claudia.

Like 0

Like

1 comments

Hi Claudia,

 

The logic you have described can be implemented with the help of business process. You can set up a start of the event to be modification of data in leads. When the business process is triggered you can set the read data element, then you can use gateway element, and set up branches. You can condition the process to go to branch 1 for example when there is no data/no useful data and so on. These branches can then modify the numeric value of some object you have added to the page, therefore creating a lead scoring without ML. You can build this process to be any complexity you would like.

For more information about setting up business processes, you can get at Creatio Academy: https://academy.creatio.com/docs/user/bpm_tools/business_process_setup



Best regards,

Alina

Show all comments

Hello,

 

What is the correct way to add custom field to System user page? Currently it is necessary to modify VwSysAdminUnit view, but it seems to be bad idea (as this view is overwritten with new versions of Creatio)



Do other options exist?

Like 1

Like

1 comments

Hello Vladimir,

 

Unfortunately, as for now, there is no possibility to change the system user page layout with the help of out-of-the-box tools of the application and we do have a correspondent problem registered on our side.



As for now theoretically, the only way to change the layout (or to add existing columns to the user page) is with the help of the replacing object (replace the "SysAdminUnit" object from the "Base" package) and replace the "UserPageV2" schema from "UIv2" package, but we should warn you that it is risky to do because it can break base application logic and provoke critically errors.



Actually, we don't recommend performing changes to this object and schema, but if you want to try - please use the dev-instance or local instance first so to test this possibility and then, if it was successful, perform the same steps on prod.

Show all comments

How can i hide / show a field based on the user role in freedom UI with business rules or with js code?

Thank you

Like 2

Like

7 comments
Best reply

You can do this with code on a Freedom UI page. 

1) Make sure you add "@creatio-devkit/common" to the page as sdk

2) First add an attribute to the viewModelConfig. I'll call the attribute "IsUserInRole since we'll set it to true/false if the user is in the role. 

viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        "IsUserInRole": {}
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/

3) Bind the attribute to the visible property of the control by adding the following to the control in the viewModelDiff

"visible": "$IsUserInRole"

4) Now when the view model is initialized, basically the Freedom UI equivalent of the onEntityInitialized on classic pages, do a query using the model to determine if the current user is in the role. We'll use that result to set the attribute:

{
    request: "crt.HandleViewModelInitRequest",
    handler: async (request, next) => {
        await next?.handle(request);
        // get current user
        const sysValuesService = new sdk.SysValuesService();        
        const sysValues = await sysValuesService.loadSysValues();
        const currentUserContact = sysValues.userContact;
 
        // create model query
        userRoleModel = await sdk.Model.create("SysUserInRole");
        const filter = new sdk.FilterGroup();
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysRole.Name", "The Role Name Here");
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysUser.Contact", currentUserContact.value);
 
        // workaround for filters, will be fixed in 8.1
        const newFilter = Object.assign({}, filter);
        newFilter.items = filter.items;
 
        const results = await userRoleModel.load({
            attributes: ["Id"],
            parameters: [{
                type: sdk.ModelParameterType.Filter,
                value: newFilter
            }]
        });
 
        // now set attribute
        request.$context.IsUserInRole = results.length > 0;
    }
}

I didn't test that code, but it should be pretty close. If anything you might need to play with the filter for the model query.

Ryan

Hello,

 

Unfortunately, there is no way to add visibility to the field based on user role via Section Wizard.

 

But we've registered it in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Bogdan,

but is it possible to calculate page parameter based on Operation permission? And then use this parameter in business rule?

You can do this with code on a Freedom UI page. 

1) Make sure you add "@creatio-devkit/common" to the page as sdk

2) First add an attribute to the viewModelConfig. I'll call the attribute "IsUserInRole since we'll set it to true/false if the user is in the role. 

viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        "IsUserInRole": {}
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/

3) Bind the attribute to the visible property of the control by adding the following to the control in the viewModelDiff

"visible": "$IsUserInRole"

4) Now when the view model is initialized, basically the Freedom UI equivalent of the onEntityInitialized on classic pages, do a query using the model to determine if the current user is in the role. We'll use that result to set the attribute:

{
    request: "crt.HandleViewModelInitRequest",
    handler: async (request, next) => {
        await next?.handle(request);
        // get current user
        const sysValuesService = new sdk.SysValuesService();        
        const sysValues = await sysValuesService.loadSysValues();
        const currentUserContact = sysValues.userContact;
 
        // create model query
        userRoleModel = await sdk.Model.create("SysUserInRole");
        const filter = new sdk.FilterGroup();
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysRole.Name", "The Role Name Here");
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysUser.Contact", currentUserContact.value);
 
        // workaround for filters, will be fixed in 8.1
        const newFilter = Object.assign({}, filter);
        newFilter.items = filter.items;
 
        const results = await userRoleModel.load({
            attributes: ["Id"],
            parameters: [{
                type: sdk.ModelParameterType.Filter,
                value: newFilter
            }]
        });
 
        // now set attribute
        request.$context.IsUserInRole = results.length > 0;
    }
}

I didn't test that code, but it should be pretty close. If anything you might need to play with the filter for the model query.

Ryan

Thank you. That helps a lot.

Ryan Farley,



I have tried a similar case, where on saving a record writing a validation to check whether it has unique "Code".

 

request: "crt.SaveRecordRequest",handler: async (request, next) => {
// Add any code to execute *before* the save here
 
var accountModel = await sdk.Model.create("Account");
 
const filter = new sdk.FilterGroup();
var codeValue = await request.$context.StringAttribute_enupz4g;
await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SMCode", codeValue);
 
	const newFilter = Object.assign({}, filter);
	newFilter.items = filter.items;
 
	const accounts = await accountModel.load({
		attributes: ["Id"],
		parameters: [{
		type: sdk.ModelParameterType.PrimaryColumnValue,
		value: newFilter
		}]
	});
	if(accounts.length > 0){
		isSave = false;
		//Show warning Message
		request.$context.executeRequest({
		type: "crt.ShowDialogRequest",
		$context: request.$context,
		dialogConfig: {
		data: {
		message: "Code already already exists",
		actions: [{
			key: "OK",
			config: {
			color: "primary",
			caption: "OK"
			}
		}]
		}
		}
	});
	}
else{
return next.handle(request);
}
}



I followed your code to check any account has the similar code. Seems like, there is an issue in the filter it throws the below error.







Can you help me in adding the proper filter in this Freedom UI? Or provide a sample code to add filters to retrive data from an entity.



Regards,

Adharsh S

Adharsh,

Change this part: 

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

To this: 

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

Note, the difference in type. You're specifying a filter, not providing a primary column value. 

Ryan

This is a very common requirement for all clients, this really should be added to the no code Page Designer. Similarly with Operation permissions to be used in visibility conditions.

Show all comments

Hi Everyone,

 

We have Loads in our environment and teams into which those loads are supposed to be divided equally. I want to know how can i do this with the business process?

Like 0

Like

4 comments

Hello, 

Thank you for your question!

Please note that the decimal separator logic is hard coded within the system core. Unfortunately, it is not possible to change it using basic user tools and we do not have a ready-made solution to resolve your problem.



We have already registered the following suggestion for our R&D department and they will consider the implementation of this functionality in future releases.

 

Viktoriia Hrynchuk,

Hi Vik,

 

Thank you for your response. If I have a Decimal variable of .00, then I can use it to divide into the same Decimal variable?

Hello!

 

To divide one number by another in a business process, we recommend using the "Formula" element available in Creatio. 

For detailed guidance on using the "Formula" element and other functionalities in Creatio, we encourage you to explore the Creatio Academy.

https://academy.creatio.com/docs/8-0/user/bpm_tools/business_process_se…

There, you will find comprehensive tutorials, guides, and resources that will help you make the most of our platform's capabilities.

 

Best regards,

Kate

Kate Karpik,

HI Kate,

 

Thank you for your response. I don't see anything regarding division in the academy.

Show all comments

Hi,

I have 2 VMs for Creatio v8.0.8.4807:

1 on Windows Server 2016 wirh iis where located all Creatio files

2 on Ubuntu 20 with Postgres 12 + Redis

So after all installation steps i face with a problem 

Config Error   The configuration section 'terrasoft' cannot be read because it is missing a section declaration

Config File   \\?\C:\inetpub\wwwroot\8.0.8.4807_ServiceEnterprise_Softkey_PostgreSQL_ENU\Terrasoft.WebApp\web.config

I have checked web.config and ConnectionString and all seems fine

Also attached the error screen and in rar format web.config + ConnectionString



Thanks in advance

 

File attachments
Like 0

Like

3 comments

Hi @Babyshark! How are you? I strongly recommend to double check the necessary windows componentes: https://academy.creatio.com/docs/7-18/user/on_site_deployment/applicati…

Regards.

Uriel Nusenbaum,

Hi, Uriel

I have checked everything and all seems installed. Unfortunately still have the same problem. No idea how to solve the issue.



Thanks for trying to help me.

You are welcome! If you want you could share a print with the result of this command. Please see the image below:

 

Thank you

Regards.

Show all comments

Where can we find documentation on actualization?  Need to understand what it means in different contexts and its impact when actualize.

For lookup fields, we know that actualization refreshes the latest set of available data, from which can select for binding purposes.



What does it mean in other contexts?   eg SysDcmSettings, SysDcmInSchemaSettings, EntityConnection, DocumentState, SysDetail, SysModuleEdit, SysModuleEntity, SusModuleInWorkplace, SysModuleVisa, SysModule, SysWidgetDashboard, TimelinePageSetting, UsrOrderingandAssembly, UsrRequestStage, OAuthAppScope, OAuthApplications, SysSettings.

Like 0

Like

4 comments

Hello,

 

Please provide us with more details regarding your question, so that we can assist you properly.

 

Best regards,

Yuliya

Yuliya Gritsenko,

Hi Yuliya, in Advanced Settings we are viewing items which Need Actualisation (filter next to Type, under All items).  This is showing many items which need actualisation, across multiple packages. 

For Lookups we know what actualisation means, its impact and how to leverage/manage it.

For all other Item types, we are looking to understand what actualisation does in the context of each item type (eg SysDcmSettings, SysDetail, TimelinePageSetting) per list above.

We intend to do the actualisation for each item, then recompile, just want to make sure we will not break anything.

Example screenshot...

 

 

Hello,

 

These are system tables. If you set the data, you will thereby update the existing data. However, it depends on the data settings you specify, whether to update values or directly insert them.

Therefore, it's advisable to create a backup before installation so that you can revert everything back in case of any issues.

 

https://academy.creatio.com/docs/developer/development_tools/creatio_id…

Sergii Zhmurko,

Thanks Sergii, I've read the documentation (Data & the related Operations in Creatio IDE).  2 follow up qus please:

1) what are the considerations "whether to update values or directly insert them"?

2) Does the bulk action "Install data" update the existing data for all selected elements? (see screenshot)

Show all comments

Hello,

We have a page with a lot of fields and details. And this page should be used in Mobile App on iPad's.

Currently FreedomUi selects layout automaticaly, so fields and details are located not in order of business logic.

Can we use something like Tabs in mobile App?

Can we control layout and define where exact field or detail should be on the screen?



Thank you very much!

Vladimir

Like 3

Like

3 comments

Maybe Creatio 8.0.10 ?



Custom layouts for mobile. You can now have more control over the layout of mobile Freedom UI pages by setting up custom layouts in page metadata. For example, you can specify the order of Area layout elements.



https://academy.creatio.com/docs/release/release-notes/8010-atlas-relea…

Damien Collot,

Thank you, 

That's greate news. The only questions is how to do that. I haven't found any options for that in 8.0.10 trial

Hello!

 

In case in your mobile application the Freedom UI is set for the definite section, you can easily correct the elements layout for the tablet with help of metadata.

 

In case you will have any additional questions on this matter, just let me know. 

Show all comments

Has anybody figured out how to include landing pages integrated webhooks in marketing automation campaigns in nocode ?

Like 0

Like

3 comments

I have unbounce landing pages that are using webhooks in Creatio but haven't figured out how to use it in campaigns yet. I'm assuming I just need to populate a table somewhere, but just starting to piece it together so not sure yet

Ryan

Hello,

 

At the moment, there is no separate element for working with web hooks in marketing campaigns yet. If what's needed is to add such contacts to the audience of the campaign, then this can be done with the help of the  appropriate filtering based on data from the record that came from a landing page, taking into account the channel, source, tags (if necessary for the case).

So you get leads from landing pages, put these leads in a separate folder and create a mailing list in the campaign that will take the audience from this folder.

Is there any plan to make easily part of marketing automation campaigns like the classic landing page element is ?

Show all comments