Hi!

 

Does anybody know how I can create a function, in Lead Page for example, that will start a process?

 

Thank you!

Like 0

Like

3 comments

Hello,

 

Can you please give us more details on what logic exactly you are trying to achieve?

 

Best regards,

Mira

Mira Dmitruk,

Hi!

 

I created a custom button on the Lead page. In the Lead I had a process that runs manually when pressing the "Run Process" button. I want to move this process to start when clicking my custom button.

 

I tried to use this but it doesn't do anything:

 

onOpenGroupSearchClick: function() {

                //this.showInformationDialog();

                

                var args = {

                    // The name of the process that needs to be launched.

                    sysProcessName: "LeadGroupSearch"

                };

                // Launch of the custom business process.

                ProcessModuleUtilities.executeProcess(args);

            },

 

But clicking the button works. You can see that I added a pop-up and it appears. The problem is that the process doesn't start.

 

In the "Run Process" I have to start the process when the LeadId is read. Should I add this to the code?

 

Thank you!

Ghiu Diana Stefania,

This article shows how to start a process from client-side code: 

https://customerfx.com/article/programmatically-starting-a-process-from…

Ryan

Show all comments

Hello!

 

I had a column in one of my objects that was deleted. In that column I was computing a sum with the help of a business process. After the deletion, I created another column in order to store that sum, but I cannot save the process as it gives me the following error:

The "ChangeDataUserTask1" element has an invalid value for the parameter "RecordColumnValues". Internal error: "Column with identifier "5edf4d5c-5df2-4c95-b1b7-0282f271b15b" not found in the entity schema "" ("924e0729-30d4-4c7f-a6bf-f203f4b0daef")"

I have checked in the database and the deleted column does not appear anymore, but neither the new one created, even though I saved and published the changes.

1. Why don't I see my new field in the db?

2. Why does the process still look for the first column, if it is deleted now?

3. How can I solve this issue so I can save my process?

Thank you in advance,

Maria

Like 0

Like

1 comments

Hello,

 

The most likely reason for such behavior is that you need to update your database structure and re-create the original business process.

 

To update your database you need to go into the configuration settings and click on "Update database structure where needed" under the action menu.

 

By re-create we meant that, unfortunately, you will have to create a new business process because the original one might still keep looking for an already deleted column.

 

If  you are still having issues, please feel free to contact our support by writing us an email at support@creatio.com

 

Thank you.

Show all comments

Hi Community,

does it require more resources to have several business processes left "executing" (waiting for a timer condition to be satisfied to do something) or to have a single process scheduled to run every 5 min (i.e) that searches for some record that has a "due date" condition close to the current date time?

the difference would be that the former would be left "pending" for sometime, and the latter would terminate.

 

Let us know,

Thanks in advance.



Best regards,

 

Luca

Like 0

Like

1 comments
Best reply

Hi Luca,

The better approach in this case - is to have a single scheduled process that will be executed fastly. 



Because each process, that is executing in background mode using 1 thread of quartz worker (Default value = 5 workers). So, if you will start a lot of the background processes, that are executing (waiting for some event) - you can overfill the background processes queue and new background processes will not start correctly until the old processes are not finished and the quartz worker is not free for a new task.

Hi Luca,

The better approach in this case - is to have a single scheduled process that will be executed fastly. 



Because each process, that is executing in background mode using 1 thread of quartz worker (Default value = 5 workers). So, if you will start a lot of the background processes, that are executing (waiting for some event) - you can overfill the background processes queue and new background processes will not start correctly until the old processes are not finished and the quartz worker is not free for a new task.

Show all comments

Hello team,

What is the purpose of IsLocked column in the the SysSchema or SysPackage tables.

How does IsLocked affect 

1- Objects

2- Bussines Processes

3- Edit Page schemas

4- Packages

I couldnt find information in the academy regarding this topic.

Thank you

Like 0

Like

1 comments

Hello Petrika,

Parameter IsLocked mainly affects if you can edit the schema or the package.  Only the author of the lock can edit these elements. In the database, this author isn't mentioned and you can see only IsLocked.

The system will check the author on the other level.

Show all comments

Hi Community!!!

I used built in web service configuration to configure an integration with third party app.

The JSON that third party app receives looks like this:

{

  "url": "https://test",

  "events": ["a","b"]

}



The configuration for the events parameter into web service is as shown in the image below:

My issue is when I try to call this Web Service/Method from a Business Process. I cannot send the correct values for the events parameter. I tried several options for example: read a lookup values, create list or collection in a script task, etc. but I couldn't achive the goal.

The image below shows how the parameter is requested on the business process:

 

Below I show the trace with an example of the values I try to pass to the paramter:



"Parameter": "Events",

            "Value": {

                "Before execution": [

                    {

                        "Name": "invitee.created"

                    },

                    {

                        "Name": "invitee.canceled"

                    }

                ],

 

Any recomendation?

Regards.

 

 

 

 

Like 0

Like

3 comments

Hello,

You can send  your values using a collection.

The values of collection parameters of a [ Call web service ] process element can be mapped to the nested parameters of another collection of a [ Read data ] or [ Call web service ] process element .Additionally, each item of the collection can be mapped to an individual subprocess instance in the [ Subprocess ] element.



 

You can find more detailed information on the academy website:

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

Cherednichenko Nikita,

Thank you! I tried it but the result is something like this:

 

[

                    {

                        "Name": "invitee.created"

                    },

                    {

                        "Name": "invitee.canceled"

                    }

                ],

The expected value is 

[invitee.created","invitee.canceled"]

 

How can I achive this?

Regards.

Hello,

The code

[

                    {

                        "Name": "invitee.created"

                    },

                    {

                        "Name": "invitee.canceled"

                    }

],

Is seen like : [{"Name": "invitee.created"}, {"Name": "invitee.canceled"}].

But, in your case, I believe you can use the parameter value "Collection of values"

 

Show all comments

Hello Community!

 

Is there a way in business processes to read the values of a record before the update actually happened?

I know that I could use EventListener, but I'm trying to solve this with a No-/LowCode approach, if possible.

 

Thanks for any hints and best regards,

Robert

Like 0

Like

8 comments

Hello Robert,

 

Could you please elaborate on your business task?



Who do you need to reed the values of a record before the update?



Best regards,

Bogdan

Hi Bogdan,

 

I have a business process, which grants access permissions based on a linked contact in an activity (not the owner field).

When this contact changes, I need to read the value of this contact field that was stored before the update, so that I can remove the access permissions for that contact.

 

BR,

Robert

Robert Pordes,

There is no basic logic for your needs.

But, as a workaround, you can create a new column contactBackup in the activity object and store old contact there.

You can use Modify Data business process element to set the value for the contactBackup column.

Also, it is not necessary to add this column to the section page. It can be just a "system" column.

Best regards, Alex.

Robert Pordes writes:

When this contact changes, I need to read the value of this contact field that was stored before the update, so that I can remove the access permissions for that contact.

We do it in another way - remove all rights and set new ones. 

Vladimir Sokolov,

Thanks for the reply, but that doesn't work in our case, because the initial permissions can be quite complex, and also due to delegation we do not know the exact current permissions of the records.

I will post an idea for Creatio to implement this feature in the business processes, as it would be handy for several business tasks.

 

BR,

Robert

 

Aleksei Efimenko,

I have thought about this, too, but it is not very elegant and I don't want to create fields for every requirement and also don't want to have the fields visible in the filters for the users.

I will try activating and reading the change log in the business process...

 

BR,

Robert

 

Robert Pordes,

 

In case you dont want to show the fileld in any dropdown on the UI, then you can set the Usage Mode for that field to None.

 

Regards,

Sourav Kumar Samal

Sourav Kumar Samal,

That's a good point and I might consider this, thanks!

Show all comments

Hi community,

 

Is it possible to read the logs of the processes in the back-end base objects ?

In the "process logs" section we can find all the logs regarding the processes of the "process library" section.

 

However, these are not the only processes existing in the system.

 

There are those processes that can be directly accessed from the base object :

 

 

How can we find the logs of these business processes ?

 

Many thanks,

Jonathan

Like 0

Like

1 comments
Best reply

 Hi Jonathan, 



Such processes are not logged by default, however you can add the logging if you edit the process in the replacing object. 

You can add the logger using, for example, such code : 

 

namespace Terrasoft.Configuration {
	using global::Common.Logging;
 
	public class LogTest {
 
		private ILog log;
 
		public LogTest() {
			log = LogManager.GetLogger("LoggerName");
		}
 
		public void WriteError() {
			log.Error("ErrorMessage");
		}
 
	}
}

 

Best regards,

Yurii.

 Hi Jonathan, 



Such processes are not logged by default, however you can add the logging if you edit the process in the replacing object. 

You can add the logger using, for example, such code : 

 

namespace Terrasoft.Configuration {
	using global::Common.Logging;
 
	public class LogTest {
 
		private ILog log;
 
		public LogTest() {
			log = LogManager.GetLogger("LoggerName");
		}
 
		public void WriteError() {
			log.Error("ErrorMessage");
		}
 
	}
}

 

Best regards,

Yurii.

Show all comments

Hi Community,

 

I’ve this requirement where a specific user must run a specific Process. In this process, there should be a set of tasks that must gather all the attachments of the current record and generate a ZIP file with these attachments. Furthermore, this process should also download the ZIP file to the user’s computer.

 

Any idea on how can I achieve this requirement?

 

Thanks in advance.

 

Best Regards,

Pedro Pinheiro

Like 1

Like

4 comments

Hello Pedro,

Unfortunately, your task can not be achieved using the basic logic of Creatio. There is no possibility to generate ZIP files from attachments.

Also, you can not download some files to the user's computer automatically until he does not download them manually.

Best regards, Alex.

Hi there! We recently uploaded an application to the marketplace 
that allows you to download all the files of a section, example of an 
account, in a ZIP file. Possibly it is useful for your use case or 
to check how it was done. 
Check it here https://marketplace.creatio.com/app/download-zip-button-creatio

Thank you

Regards

Uriel,

 

Thank you for the response. We manage to find a solution for our requirement. However, If we get another use case like this one, we will have your application in mind.

 

Best Regards,

Pedro Pinheiro

 

Hi Pedro Pinheiro,

 

I am trying to achieve the same requirement . Would you be able to provide me the logic you used to create the zip and download it?. 

 

Best regards,

Pavan Manne

Show all comments

Hi Community,

 

I have to use Excel Export Creatio Functionality but instead of downloading the .xlsx file in the system, I have to attach that .xlsx file to the Attachments of a Custom Section.

This task should be performed by the business process after giving filtration criteria as input.

 

Please suggest me a solution to achieve the above task.

Like 1

Like

3 comments

Dear Pratik, 

 

Unfortunately requested functionality is not presented as OOB solution in Creatio at this moment. 

We will register this as an idea for the responsible R&D team to extend the basic functionality in future Creatio releases. 

 

Kind regards,

Roman

Hi Roman Brown,

Thanks for providing the information regarding to this.

 

But, for workaround is there any Creatio Service avaible that can be utilized In some custom script configuration with Script Task element of business process.?

And if yes, Is there any example available on how to make use of such Services in development. 

Hi Roman,

 

Could you please provide steps or source code for a sample excel sheet creation and saving data, that supports creatio platform (ex. using openXml, IronXL or Interop etc.) and later that can be extended with creatio's future release?

 

Regards,

Rishabh

Show all comments

Hello community,

 

I am using perform task inside section cases. The task updates the entity stage. After the stage is updated from the task I want to catch this event and reload the entity from the client side. I tried using the following approach but nothing happens

"Stage": {
				dependencies: [
					{
						columns: ["Stage"],
						methodName: "onChangeStage"
					}
				]
			}

The below script is called only when the stage is updated directly from the client side and not from a task or a business process. Is there a way to catch this event from the client side?

Like 0

Like

1 comments
Best reply

Since the automatic changing of a stage happens outside of the context of a page, you won't receive any events from the change on the page itself. 

The only option is to either use a process, entity subprocess or entity event listener class (and starts with a signal of case modified in stage field) and if it's changed to the appropriate stage you send a signal to the client. You can see how to send a message from the server (such as from a process) to the client here: https://customerfx.com/article/sending-a-message-from-server-side-c-to-…

You'll add code to the page to listen for this message and then reloadEntity to refresh the page. 

BTW, if you want to use an entity event listener class instead of a process, I've outlined how to do that here https://customerfx.com/article/adding-code-to-listen-for-entity-events-… although using a process is quick and easy.

Ryan

Since the automatic changing of a stage happens outside of the context of a page, you won't receive any events from the change on the page itself. 

The only option is to either use a process, entity subprocess or entity event listener class (and starts with a signal of case modified in stage field) and if it's changed to the appropriate stage you send a signal to the client. You can see how to send a message from the server (such as from a process) to the client here: https://customerfx.com/article/sending-a-message-from-server-side-c-to-…

You'll add code to the page to listen for this message and then reloadEntity to refresh the page. 

BTW, if you want to use an entity event listener class instead of a process, I've outlined how to do that here https://customerfx.com/article/adding-code-to-listen-for-entity-events-… although using a process is quick and easy.

Ryan

Show all comments