Hi Academy,

Which is the correct set of OOB pacakge dependencies when creating a new pacakge that is going to store developments/customizations done to the mobile app.

Regards

Sasor

Like 0

Like

0 comments
Show all comments

Dear Creatio-Community,



I have the following request. How is it possible that I can display the email address from the Communication options (like you see on the screen below)







in the tile view of the accounts (like you see on the screen below)







Is this possible at all



Regards

Florian

 

Like 0

Like

4 comments

Hello!

 

You are able to add it at the contact record itself, and then it will be added to the register.

 

Communication object is actually another object. 

Hello Kyrylo 

thanks for your reply. But i want to display that information Account-Section. Is that possible?

Florian,

 

It's not possible to display the information from AccontCommunixcationOptions, so we recommend to create a column in Account object.

Hi Floarian,



If I understand correctly, it is possible now to display first record from the detail with specified filter (e.g. First primary email address of account) 



Kind regards,

Vladimir

Show all comments

In Web instance i want every user to see it's own list of activities but not the other users's . I am currently using classic UI , how can i apply this default filter ?

Like 1

Like

3 comments

Hello,

 

You can use the default quick filter by owner available in Activities section: https://academy.creatio.com/docs/user/platform_basics/business_data/fil…

 

Best regards,

Yuliya

Yuliya Gritsenko,

hello , 

I want it to be applied for all users by default and not editable .

Thank you

developer,

 

 

Hello,

 

Your business task can be only achieved with the help of separate development process. 

You can use 'entity schema query' filters in particular. Here is the guide on this topic:

 

https://academy.creatio.com/docs/developer/front_end_development/data_o…

 

You can also use this community post with the example of such logic:

 

https://community.creatio.com/questions/default-filter-section

 

Best regards,

Yuliya

Show all comments

Hi Community,

I want to place three new fields in the Account panel, of the Contact section.

I have already read the article https://academy.creatio.com/docs/developer/interface_elements/record_pa…

but this article explains how to add a new Connected Account Profile, and not how to extend the existing one.

Any idea how I can achieve this ?

Sasor

Like 0

Like

3 comments
Best reply

Hi Sasor,

 

This is done in the same way with the only difference that:

 

1) Existing AccountProfileSchema should be replaced

2) In the diff array of the replaced AccountProfileSchema you need to add 3 new fields.

 

I've also previously showed how to add new columns to the same profile schema, but in the OpportunityPage (here). Same approach here should be used to add new columns.

Hi Sasor,

 

This is done in the same way with the only difference that:

 

1) Existing AccountProfileSchema should be replaced

2) In the diff array of the replaced AccountProfileSchema you need to add 3 new fields.

 

I've also previously showed how to add new columns to the same profile schema, but in the OpportunityPage (here). Same approach here should be used to add new columns.

Hi oleg,

Thank you for the great answer.

Just to double check , by ' Existing AccountProfileSchema should be replaced' you mean:

Thank you again

Sasor

Sasori Oshigaki,

 

Yes, replacing view model should be created.

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

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

Hi Creatio Community,

We want to customize/extend functioanilty of the Account Form page found in Customer360 app.

Which is the right way to do it ?

Sasori

Like 0

Like

2 comments

Hi Community,

Any update regarding the topic?

Sasori

Greetings,



Firstly, please make sure that you are working in Freedom UI before applying any changes. You may apply the changes directly through UI or via customizing the package contents.

You may do so by following this Academy article:

https://academy.creatio.com/docs/user/platform_basics/freedomUI/turn_on_the_freedom_ui/general_procedure?_gl=1*h5poxo*_gcl_au*NDEwODkzNDYzLjE2ODk1OTEzNjc.



Second, you need to apply a few, certain changes to the app through the configuration. You may find more information on this subject here:



https://academy.creatio.com/docs/developer/development_tools/packages/packages_basics/overview

https://academy.creatio.com/docs/developer/architecture/composable_architecture/overview

https://academy.creatio.com/docs/developer/marketplace_app_development/app_compatibility/configure_the_app_for_composable_architecture_compatibility/overview



If you would like to export your packages for further customization on other applications, you can find more information on this subject using this guide:

https://academy.creatio.com/docs/developer/getting_started/transfer_application/overview



In regards to renaming packages.

Unfortunately, you can't rename the package once it is already exported, renaming the archive wouldn't change the package name itself. You can try to rename the package when it is still in the dev environment in the SQL console changing the name of the corresponding record in the SysPackage table. We don't recommend to do this, however, if it is really needed you can backup the database, change the name, generate the source code for all and compile all. After that, if while testing the functionality no errors would occur you can export the package and transfer it. 



 

Show all comments

Hi all,

 

Our client would like to replace the default loading screen with something in their companies brand.

Modifying the loading screen is not an option in the 'setup appearance' section of Creatio 8. Is there a way around this?

Like 2

Like

4 comments

Interesting question :)

Hello,

 

There is no such possibility for now 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

+1 from me!

I would love the ability to customize this - at least to add our own background color and logo. Making the system seem/feel like *theirs* can play a big part in system adoption.

Ryan

Ryan Farley,

especialy for Portal users

Show all comments

Hi community!

 

I have to integrate with a third-party tool that cannot send a request to the auth service and handle the cookies correctly.

 

Is there another method similar to webhooks using an API key in the URL or in the data itself?

 

Thanks in advance,

Robert

Like 1

Like

1 comments

We have a project where I need to filter a certain lookup by a few booleans, where another lookup has the same booleans and only the true values need to be taken into consideration when filtering, unfortunatley with business rules, it will compare the false ones as well which causes only records whos booleans 100% match the ones in the other lookup to show, I have the following code to filter it, but it doesn't seem to work properly, I tried to debug it, but can't seem to find the issue.

 

		attributes: {
			"UniChargeType": {
				"dataValueType": Terrasoft.DataValueType.LOOKUP,
				"lookupListConfig": {
					"filter": function() {
 
						var priceTemplate = this.get("UniUniPriceTemplate");
 
						var esqCharge = Ext.create("Terrasoft.EntitySchemaQuery", {
							rootSchemaName:"UniChargeType"
						});
						esqCharge.addColumn("UniAir");
						esqCharge.addColumn("UniOcean");
						esqCharge.addColumn("UniInland");
 
						var esqChargeFirstFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
								"UniAir", true);
						var esqChargeSecondFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
								"UniOcean", true);
						var esqChargeThirdFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
								"UniInland", true);
 
						esqCharge.filters.logicalOperation = Terrasoft.LogicalOperatorType.OR;
 
						esqCharge.filters.add("esqChargeFirstFilter", esqChargeFirstFilter);
						esqCharge.filters.add("esqChargeSecondFilter", esqChargeSecondFilter);
						esqCharge.filters.add("esqChargeThirdFilter", esqChargeThirdFilter);
 
 
 
						var esqTemplate = Ext.create("Terrasoft.EntitySchemaQuery", {
							rootSchemaName:"UniPriceTemplates"
						});
						esqTemplate.addColumn("UniSubService.UniService.UniAir", "Air");
						esqTemplate.addColumn("UniSubService.UniService.UniOcean", "Ocean");
						esqTemplate.addColumn("UniSubService.UniService.UniInland", "Inland");
						esqTemplate.addColumn("Id");
 
						var templateFilter = esqTemplate.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 
								"Id", priceTemplate);
 
						esqTemplate.filters.add("templateFilter", templateFilter);
 
						esqTemplate.getEntityCollection(function (result) {debugger;
							if (result.success){
 
								if(result.collection.getByIndex(0).$Air == true){
										var esqChargeFirstFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
										"UniAir", true);
										esqCharge.filters.add("esqChargeFirstFilter", esqChargeFirstFilter);
									esqTemplate.getEntityCollection();
									return this;
 
									}else if (result.collection.getByIndex(0).$Ocean == true){
										var esqChargeSecondFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
										"UniOcean", true);
										esqCharge.filters.add("esqChargeSecondFilter", esqChargeSecondFilter);
										esqTemplate.getEntityCollection();
										return this;
 
									}else if (result.collection.getByIndex(0).$Inland == true){
										var esqChargeThirdFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
										"UniInland", true);
										esqCharge.filters.add("esqChargeThirdFilter", esqChargeThirdFilter);
										esqTemplate.getEntityCollection();
										return this;
 
 
									}
 
 
								result.collection.each(function(item) {
																result.collection.getByIndex(0).$Air
									if(item.entity.get("Air") == true){
										var esqChargeFirstFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
										"UniAir", true);
										esqCharge.filters.add("esqChargeFirstFilter", esqChargeFirstFilter);
 
									}else if (item.entity.get("Ocean") == true){
										var esqChargeSecondFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
										"UniOcean", true);
										esqCharge.filters.add("esqChargeSecondFilter", esqChargeSecondFilter);
 
									}else if (item.entity.get("Inland") == true){
										var esqChargeThirdFilter = esqCharge.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
										"UniInland", true);
										esqCharge.filters.add("esqChargeThirdFilter", esqChargeThirdFilter);
 
									}
 
 
								}); 
							}
						}, esqTemplate.getEntityCollection(), this);
 
 
 
 
					}
					}
					}

 

Like 0

Like

1 comments

The problem is that inside the lookupListConfig.filter you're doing an ESQ, and ESQs are asynchronous. So the filter is returned (which would be undefined or nothing) before the ESQ inside your code ever returns. You'll either need to rethink your filter and how to get the data you want, or prefetch the ESQ to UniChargeType earlier in the page lifecycle, like in the init and then store the results in an attribute, so they'll available to use when needed in the filter function.

Ryan

Show all comments