Hello community!

When we create a Business Process is there C#  code generated automatically that relates to that process ?

If so where and how can I find it ?

I need the answer for debugging purposes.sa

Thank you

Sasori

Like 0

Like

2 comments

Good day,

 

Thank you for your question.

If you are using some custom methods or functions in the business processes, your code should be displayed in the source code of the process:

 

Thank you.

Thank you very much for the response Artem!

I can not see the code that is generated behind the Low-Code elements like 'Add Data' for example ?

Where is that code located , or is it generated during runtime ?

Sasori

Show all comments

Hi Everyone,

 

I am still learning Creatio and have a simple issue. While making order requests, I want to add multiple contacts to my orders. There is no predefined number of contacts. It could vary from order to order. What would be the best way to have this in creatio? I was thinking of having a button that creates a new Dropdown field in which users can select a contact. And every time he clicks on the button, it creates a new field. Is that possible? or is there any other and better way to do this?

 

I have also tried an expanded List but that just displays all contacts. I don't want it to show them all. I want some kind of selection etc.

Like 1

Like

4 comments

Hello Hassan,

 

Could you please provide the screenshots? It will help for a better understanding of your question.

Mariia Sorochan,

Hi Mariia,



Sadly, I dont have a screenshot I am just looking for guidance on how to make it. In my orders, I want it to show a list of employees to which this particular order will be assigned. It should be some kind of selection in which I can select multiple employees and because later on, I also want to trigger a Whatsapp or Mobile message to them that the order has been assigned to them. Thanks!

Thank you for the details. Maybe you mean the section "Owner"?

Mariia Sorochan,

No Owner is different. He is the one that's making the entry into creatio. These are the general employees of the company to whom we are assign these orders. Let me give you the scenario. We have orders in our system. These orders are assigned to multiple people. They are not the user of Creatio platform. They are junior employees that pick those order and confirm with us

Show all comments

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