Hello all,

 

I am trying to configure an email element in a dynamic case but when I try to select from a main record column so that I can send the email to the contact who submitted a Case, I am unable to select the contact's email to add in the email element. How can I assign the email?

 

Like 0

Like

1 comments

Hello Community, 

I had to write a code in the custom Handler to perform many validations based on the field values before saving a page. 

Currently the handler contains almost 2000 lines of code, also it also contains duplicate lines of code in two different places.

I wanted to avoid it and need to split the code into multiple functions. 

Is it possible to do it in Freedom UI?

Thanks

Gargeyi

Like 0

Like

6 comments

Hello Gargeyi,

 

In Freedom UI the best option would be - to move your large handlers logic to separate schemas and call them when required.

 

Here is an example how it may be done:

 

1) Create a custom Module, where executive code would be stored (It would be better if you use the same package. At least, make sure that the package with handlers is within dependant ones of the package with requesting schema)

 

2) Fill our new module with the required logic

 

 

3) Add our new module to the main Schema resources

 

4) Use Global functions

 

Example result:

 

As you may see on Contacts_FormPage we had "Raw Data for Global Handler" that was transformed into "Resulting Data for Global Handler" using a global method in a separate schema. This method may be called several times instead of duplicating the code.

 

This approach should let you optimise your methods.

 

Best Regards,

Dan

 

Hello denis, 

 

Thankyou for your suggestion, I will try using it. 

Hello Denis, 

This works well, But I am not able to use Model class in the new module. 

I have added the dependencies as well. 

Is there any possibility to use the model class to read/Write/update the fields in the new module ?

 

Thanks

Gargeyi.G

I've been able to use the sdk classes, such as model, from modules without issue. Can you share some of the code for how you're using it? Also, which version are you on? I did experience some somewhat related issues with using referenced modules in 8.0.6 but were resolved in 8.0.8.

Ryan

Ryan Farley,

I am using version 8.0.8, Attaching the sample code I tried using sdk classes . When I am trying to load RoadSegment, It throws me an error saying "RoadSegment.load is not a function".

 

Suggest me if I am doing anything wrong here .

Hello , 

 

Is there a way I can use Modal classes to read data from new module?

Thanks

Show all comments

Hi All,

 

Is there any possibility to hide a page (as highlighted below) from the new button in an old UI section?

 

 

Kindly help us resolve this issue.

 

Thank you

Geeviniy.

Like 0

Like

6 comments
Best reply

Hi Oleg,

 

This works like a charm. Thank you very much for the solution.

 

I have also added a code snippet, just in case if anybody needs to remove multiple pages from the dropdown of the new button,

{
				"operation": "merge",
				"name": "SeparateModeAddRecordButton",
				"parentName": "SeparateModeActionButtonsLeftContainer",
				"propertyName": "items",
				"values": {
					"controlConfig": {
						"menu": {
							"items": {
								"bindTo": "EditPages",
								"bindConfig": {
									"converter": function(editPages) {
										if (editPages.getCount() > 1) {
											var valuesToRemove = [];
											for (var i = 0; i < editPages.getCount(); i++) {
												var caption = editPages.getItems()[i].values.Caption;
												if (caption === "Returned Mail" || caption === "Default" || caption === "Posting Restriction" || caption === "KYC Review") {
													valuesToRemove.push(i);
												}
											}
											for (var j = valuesToRemove.length - 1; j >= 0; j--) {
												editPages.removeByIndex(valuesToRemove[j]);
											}
											return editPages;
										} else {
											return null;
										}
									}
								}
							}
						}
					}
				}
			},

 

We only need to modify the captions according to our requirements.

 

Thank you

Best Regards,

Geeviniy

Dear Jana,



The same questions were asked on the community previously, and you can find those questions hereherehere, and here. Please refer to those articles so to be able to hide a button.



And 

There were a couple of  similar requests on our community. You can find the solutions here: 

 

https://community.bpmonline.com/articles/how-can-i-hide-button-portal-users

https://community.bpmonline.com/questions/how-hide-button-existed-record

https://community.bpmonline.com/questions/removing-new-case-button-portal-case-section

https://community.bpmonline.com/questions/hide-section-button-edit-page 





Best regards,

Orkhan

Hi Orkhan,

 

I referred to all the articles that you have shared above. In fact, the question I raised is similar to the below article.

https://community.creatio.com/questions/how-hide-page-new-button

 

But seems like, the shared community articles are irrelevant to what we raised. Those articles describe hiding the new button itself. But the requirement for us is to keep the new button and just hide one or more pages from the new button drop-down when there are more pages in that particular section. Kindly double-check and help us resolve this issue.

 

Thank you

Geeviniy.

Geeviniy Vazavan,



Thank you for your feedback, give us some time so we can help you with this problem.

 

Best regards,

Orkhan

 

Geeviniy Vazavan,

 

Hello,

 

Here is a fast and working example: in the section schema you need to create a replacement of the SeparateModeAddRecordButton element in the diff:

define("OrderSectionV2", [], function() {
	return {
		entitySchemaName: "Order",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "SeparateModeAddRecordButton",
				"parentName": "SeparateModeActionButtonsLeftContainer",
				"propertyName": "items",
				"values": {
					"controlConfig": {
						"menu": {
							"items": {
								"bindTo": "EditPages",
								"bindConfig": {
									"converter": function(editPages) {
										if (editPages.getCount() > 1) {
											var valueToRemove;
											for (var i = 0; i < editPages.getCount(); i++) {
												if (editPages.getItems()[i].values.Caption == "Website") {
													valueToRemove  = i;
												}
											}
											if (valueToRemove || valueToRemove == 0) {
												editPages.removeByIndex(valueToRemove);
											}
											return editPages;
										} else {
											return null;
										}
									}
								}
							}
						}
					}
				}
			},
		]/**SCHEMA_DIFF*/,
		methods: {}
	};
});

You only need tp modify the "Website" in the code with the caption of the edit page you need to remove from the "New" option. After that refresh the page and the menu item will be removed. Debug the execution of the example above and add your own logic if needed.

Hi Oleg,

 

This works like a charm. Thank you very much for the solution.

 

I have also added a code snippet, just in case if anybody needs to remove multiple pages from the dropdown of the new button,

{
				"operation": "merge",
				"name": "SeparateModeAddRecordButton",
				"parentName": "SeparateModeActionButtonsLeftContainer",
				"propertyName": "items",
				"values": {
					"controlConfig": {
						"menu": {
							"items": {
								"bindTo": "EditPages",
								"bindConfig": {
									"converter": function(editPages) {
										if (editPages.getCount() > 1) {
											var valuesToRemove = [];
											for (var i = 0; i < editPages.getCount(); i++) {
												var caption = editPages.getItems()[i].values.Caption;
												if (caption === "Returned Mail" || caption === "Default" || caption === "Posting Restriction" || caption === "KYC Review") {
													valuesToRemove.push(i);
												}
											}
											for (var j = valuesToRemove.length - 1; j >= 0; j--) {
												editPages.removeByIndex(valuesToRemove[j]);
											}
											return editPages;
										} else {
											return null;
										}
									}
								}
							}
						}
					}
				}
			},

 

We only need to modify the captions according to our requirements.

 

Thank you

Best Regards,

Geeviniy

Geeviniy Vazavan,

Hi Oleg,

 

Quick clarification. Can we disable the options in the new button drop-down? (Make it not clickable, but it should be visible)

Show all comments

In Lead and Opportunity is a list names "Reason for closing" which is populated by some lookup (OpportunitycloseReason it seems).

I find no matching lookup with that name but a configuration object where the values are listed but not editable. How do I edit those values?

Thanks for your help

Like 0

Like

3 comments

I think it is these. 

Hello Christian, Keith, 

 

The needed lookup is called "Opportunity results". If for some reason it's not available in your system, you can create it manually based on "Reason won/lost" object.



Best regards,

Anastasiia

Anastasiia Zhuravel,

Thank you - I was not aware that the System uses data without an existing lookup and that I have to create those manually to edit the data.

Show all comments

Hi Community,



We have a business requirement that involves many approval flows. If we use the business process to send the approvals, it will automatically be canceled if the user didn't approve or the business process will be in the running stage.



What is the best practice for dealing with approvals?



Thank you.



Regards,

Manideep

Like 0

Like

1 comments

Good afternoon, 

 

You can set up a conditional flow, attached documentation to help you with this issue: 



https://academy.creatio.com/docs/user/bpm_tools/process_elements_refere…



Happy to help! 



Best regards, 

Orkhan

Show all comments

I am curious, what is the business and/or technical reason for having a completely separate section for employees under the out-of-the-box solution, and employees are not just supposed to be registered with all their employee data in the Contacts section?

I feel like rights management would be sufficient to distinguish who has access to sensitive employee data in an Employee type Contact record.

Like 0

Like

1 comments

Not all employees of a company might be Creatio users. The employees area is sort of like for HR. It’s still a contact, but with extra details in an area that is only the company employees. 

it was confusing for me at first. But it’s a nice place to keep extended details about employees without cluttering up the contact record since likely a very small percentage of contacts are employees. It is basically an extension of the contact record. 

Show all comments

I am trying to disable the "Complete" button on any user task in a Case if any of the Checklist entries have not been completed for that Case. Does anyone know of a way to achieve this or have any examples ?

Like 0

Like

2 comments

Run a process from the case that carries out the checks (displaying messages if errors) before creating the task?

Gareth Osler,

Thanks for the reply however this assumes the checking should be done when creating a task. I need to be able to intercept the hover over an existing task and at that point check the criteria and either enable or disable the "Complete" button before it appears against the task.

Show all comments

Hi Team,

We have deleted a Business Process on our dev Environment.

When deploying the custom pacakge to our Test Environment i recieve the following error

'Error occured while performing operation on "Process_123412" item, UId = 589g53bc-gh11-50e8-8c66-5655abb06dd1.'

'023-06-14 17:54:18,841 Npgsql.PostgresException (0x80004005): 23503: update or delete on table "SysSchema" violates foreign key constraint "FKTj5Ti40nTBMfs8akfdQmBIa25bs" on table "SysSchema"'

 

How can i solve this deployment issue ?

Sasori

Like 0

Like

3 comments
Best reply

Hello!

The generation of the source code can't help solve the problem. You need to find the missing schema in the development environment for building the dependency and binding resources to the package.

Hello,

 

The mentioned constraint refers to the ParentId column.

This means that you are trying to install a process that has a parent ID that does not exist on your target application.

 

You need to install the parent first, or simply remove it.

 

Thank you.

Hi Artem,

Thank your for the response!

Can the generation of the source code in the DEV-Environemnt fix this problem ?

Sasori

 

Hello!

The generation of the source code can't help solve the problem. You need to find the missing schema in the development environment for building the dependency and binding resources to the package.

Show all comments

Hello Community, 

 

I have an editable detail with a field type as lookup, user can update the lookup. 

when user selects lookup value from the dropdown and click on save all button for the editable detail, a business process(the business process is designed to run the process for each item) gets triggered to calculate other fields in the record. 

when I do this for a single record I am able to see the changes with no issues, 

But when I update multiple records, I could not see the latest updates for all the records except for the one record. But when I do a refresh page, I am able to see the updated values.

I have  checked the option "Enable Live Data" for the detail object as well. 

Any suggestions are really helpful

 

Thanks

Gargeyi

 

Like 0

Like

1 comments

Hello,



I believe your business task could be achieved by using ''Refresh active page' process element for Creatio.

Show all comments

 I'm trying to find the schema that is used to generate the tooltip when I hover on a contact field hyperlink . I've looked in the Configuration , but I can't find it. Can anyone help me?

Like 1

Like

2 comments

I believe that would be the MiniPage?

Hello Pavan,



It's ContactMiniPage entity. This functionality can be  configured through the section wizard if needed:

 

Best regards,

Anastasiia

 

 

Show all comments