After adding records ,How can I reload a detail list in a Freedom UI page from a task script within a business process, without using the live update feature in the object?
Thank you

Like 0

Like

3 comments

Note that i'add this code in the task script in the process 


var userConnection = Get<UserConnection>("UserConnection");
string messageText = "Successful";

Terrasoft.Configuration.MsgChannelUtilities.PostMessageToAll("ReloadDetail", messageText);
return true;    

i got this error message 
"The type or namespace name 'MsgChannelUtilities' does not exist in the namespace 'Terrasoft.Configuration' (are you missing an assembly reference?"

 

 

"The type or namespace name 'MsgChannelUtilities' does not exist in the namespace 'Terrasoft.Configuration' (are you missing an assembly reference?" - this error message will occur in case the business process is created in the assembly package. The only workaround is to uncheck the "Assembly package" property in the package settings or move the process to the regular package.

 

As for the possibilities and if LiveUpdate is not an option - yes, socket nessage to the client-side and triggering the LoadDataRequest with reload enabled is the only option.

I also encountered this same error, but in my case, it was due to a dependency issue. I resolved it by adding the 'crtBase' package as a dependency in the package containing the business process.

Show all comments

Dear,

I have add a button on the contact page in order to create an opportunity :

When you click on "Créer une opportunité" it launch a process which open a preconfigured page, the user select the "Besoin client" and then click save. Next i'd like to open the new record.

 

So in my process :

the opportunity page opens but it closes automatically.

 

how to keep the page open?

 

Thank you !
Nicolas

Like 0

Like

1 comments

Hello Creatio friends,

 

I've set up an email box to generate cases, but it is not assigning category/sub-category. 

 

I'm working on a business process to re-assign email generated cases to the proper Cat/sub-cat. I want to pull the first word after [EXTERNAL] from the email to use as a match to proper Category. Sub-category can be a static lookup value for this use-case. 

 

For example with a subject line of "[EXTERNAL]Chicago - Assistance needed" I want to just extract Chicago, then use a BP to do a Modify Values:  Category = extracted text.

 

Any great way to go about this?

Thanks,

--Israel

Like 0

Like

1 comments

Hello!

Regarding case categorization, please ensure that the rules are set according to the instructions' configuration:https://academy.creatio.com/docs/8.x/creatio-apps/8.1/products/service-…
 

If you need to select the topic and subtopic based on context, I recommend using ML models. These models can either determine an exact match based on the email content or provide an approximate selection based on client-provided data.

Detailed configuration settings:
https://academy.creatio.com/docs/8.x/no-code-customization/customizatio…

Show all comments

I'm trying to get the "Resulting collection" out of a Read data step in a Business Process in order to iterate over it, but whatever I try the "Resulting collection" is null/empty when trying to access it later in BP. The "Collection of records" parameter for the step is populated with the expected number of records, but since it's an ICompositeObjectList, it can't be iterated over using an index (e.g. entityCollection[0]) which is really what I would like for this solution - using a foreach loop in code isn't ideal, as then we have to write everything in code rather than using the no code BP steps available to us.

 

I've tried many things including changing packages to not compile into a separate assembly and using the Resulting collection parameter in a subprocess BP by binding the output param to a BP param, and have even checked in the ReadDataUserTask code using Visual Studio to debug and check values, and it seems that the ResultEntityCollection ("Resulting collection") is being set correctly there, but it just doesn't seem to make it back to the Business Process. Does anyone know why this might be the case? And if there's any resolution? Currently working in 8.1.3

Like 1

Like

3 comments

To add some details to what I'm seeing, this is the Read data step:

 

This is a formula step to try to see what should be coming out of this step in the Resulting collection:

 

And this is my User Task step which takes an EntityCollection parameter:

 

Before the Formula step, the value of the "Entity collection" parameter is null, afterwards it appears in the BP trace logs as being "", so something does change - below is shown what the User Task step's Inspect looks like after it fails:

 

So the BP parameter value is "" for the EntityCollection, but it's null for passing into the User Task, and that's what we see in the User Task debugging in Visual Studio (which causes the error, as we get an "Object reference not set to an instance of an object" error when trying to use it).

 

When checking what the OOTB ReadDataUserTask code is setting to the ResultEntityCollection parameter (which is the parameter for "Resulting collection") we can see that it is correctly being passed the EntityCollection:

 

It just doesn't seem to be able to be used afterwards in the BP.

Anyone have any knowledge on why the Resulting collection parameter from a Read data step in a BP would be null despite it seeming to come back populated from the C# code?

Hello,

 

Just to clarify, does this not work even in the case when the collection is passed to a subprocess — does the same error occur in that scenario as well?

Show all comments

Hello all,

I am currently trying to update the standard Invoice object record's field; "payment amount" with a calculated sum collected from a custom object called: "Payments" from it's "Amount" field.

-Payments Record Added has the filter conditions of, "Amount is filled in"
- Payments Record Deleted has no filters
- Payments Record Modified has the, "Changes expected in any selected fields = 'Amount'"
 

 

 


 


And this is the current Invoice Record:

 

The Payment Amount field AND the test payment amount field I created show no input despite refreshes and alterations. I would appreciate any suggestions on my wrongdoings, as this is a more fundamental business process I have used before.

Thank you in advance for any help you can provide.

Like 0

Like

4 comments

Additionally, I found that the "read data" element is not actually picking up the invoice. Below is the trace data of the process log:


{
    "Element parameters": [
        {
            "Parameter": "Data source of filters",
            "Value": {
                "Before execution": "{\"className\":\"Terrasoft.FilterGroup\",\"serializedFilterEditData\":\"{\\\"className\\\":\\\"Terrasoft.FilterGroup\\\",\\\"items\\\":{\\\"e9bc0ff2-a863-446d-8673-b7c8a71ae2c3\\\":{\\\"className\\\":\\\"Terrasoft.CompareFilter\\\",\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"e9bc0ff2-a863-446d-8673-b7c8a71ae2c3\\\",\\\"dataValueType\\\":0,\\\"leftExpressionCaption\\\":\\\"Id\\\",\\\"rightExpression\\\":{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{293bb23f-d16f-4c7a-ad45-9499a22ce47c}].[Parameter:{86b49173-d922-4022-b289-93b2acf6e683}]\\\",\\\"displayValue\\\":\\\"Payments Record Added.Unique identifier of record\\\"}}}},\\\"704c93a5-e747-4fcf-86b6-b14f1398ffe0\\\":{\\\"className\\\":\\\"Terrasoft.CompareFilter\\\",\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"704c93a5-e747-4fcf-86b6-b14f1398ffe0\\\",\\\"dataValueType\\\":0,\\\"leftExpressionCaption\\\":\\\"Id\\\",\\\"rightExpression\\\":{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{32a3cb4b-4109-4978-84ae-e4f236ffddc6}].[Parameter:{a8f68505-7f8e-4e33-ac3d-3c9116eb1915}]\\\",\\\"displayValue\\\":\\\"Payments Record Deleted.Unique identifier of record\\\"}}}},\\\"d3db370d-afe3-49c5-a121-571f02715f64\\\":{\\\"className\\\":\\\"Terrasoft.CompareFilter\\\",\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"d3db370d-afe3-49c5-a121-571f02715f64\\\",\\\"dataValueType\\\":0,\\\"leftExpressionCaption\\\":\\\"Id\\\",\\\"rightExpression\\\":{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{335bd2a9-757f-4750-adb1-a6d1a23e05f1}].[Parameter:{c6326280-12ce-424f-830a-9659100f8272}]\\\",\\\"displayValue\\\":\\\"Payments Record Modified.Unique identifier of record\\\"}}}}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"IWPayments\\\",\\\"key\\\":\\\"\\\"}\",\"dataSourceFilters\":\"{\\\"items\\\":{\\\"e9bc0ff2-a863-446d-8673-b7c8a71ae2c3\\\":{\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"rightExpression\\\":{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{293bb23f-d16f-4c7a-ad45-9499a22ce47c}].[Parameter:{86b49173-d922-4022-b289-93b2acf6e683}]\\\"}}}},\\\"704c93a5-e747-4fcf-86b6-b14f1398ffe0\\\":{\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"rightExpression\\\":{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{32a3cb4b-4109-4978-84ae-e4f236ffddc6}].[Parameter:{a8f68505-7f8e-4e33-ac3d-3c9116eb1915}]\\\"}}}},\\\"d3db370d-afe3-49c5-a121-571f02715f64\\\":{\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"rightExpression\\\":{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{335bd2a9-757f-4750-adb1-a6d1a23e05f1}].[Parameter:{c6326280-12ce-424f-830a-9659100f8272}]\\\"}}}}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"IWPayments\\\"}\"}",
                "After execution": "{\"className\":\"Terrasoft.FilterGroup\",\"serializedFilterEditData\":\"{\\\"className\\\":\\\"Terrasoft.FilterGroup\\\",\\\"items\\\":{\\\"e9bc0ff2-a863-446d-8673-b7c8a71ae2c3\\\":{\\\"className\\\":\\\"Terrasoft.CompareFilter\\\",\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"e9bc0ff2-a863-446d-8673-b7c8a71ae2c3\\\",\\\"dataValueType\\\":0,\\\"leftExpressionCaption\\\":\\\"Id\\\",\\\"rightExpression\\\":{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{293bb23f-d16f-4c7a-ad45-9499a22ce47c}].[Parameter:{86b49173-d922-4022-b289-93b2acf6e683}]\\\",\\\"displayValue\\\":\\\"Payments Record Added.Unique identifier of record\\\"}}}},\\\"704c93a5-e747-4fcf-86b6-b14f1398ffe0\\\":{\\\"className\\\":\\\"Terrasoft.CompareFilter\\\",\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"704c93a5-e747-4fcf-86b6-b14f1398ffe0\\\",\\\"dataValueType\\\":0,\\\"leftExpressionCaption\\\":\\\"Id\\\",\\\"rightExpression\\\":{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{32a3cb4b-4109-4978-84ae-e4f236ffddc6}].[Parameter:{a8f68505-7f8e-4e33-ac3d-3c9116eb1915}]\\\",\\\"displayValue\\\":\\\"Payments Record Deleted.Unique identifier of record\\\"}}}},\\\"d3db370d-afe3-49c5-a121-571f02715f64\\\":{\\\"className\\\":\\\"Terrasoft.CompareFilter\\\",\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"d3db370d-afe3-49c5-a121-571f02715f64\\\",\\\"dataValueType\\\":0,\\\"leftExpressionCaption\\\":\\\"Id\\\",\\\"rightExpression\\\":{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{335bd2a9-757f-4750-adb1-a6d1a23e05f1}].[Parameter:{c6326280-12ce-424f-830a-9659100f8272}]\\\",\\\"displayValue\\\":\\\"Payments Record Modified.Unique identifier of record\\\"}}}}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"IWPayments\\\",\\\"key\\\":\\\"\\\"}\",\"dataSourceFilters\":\"{\\\"items\\\":{\\\"e9bc0ff2-a863-446d-8673-b7c8a71ae2c3\\\":{\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"rightExpression\\\":{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{293bb23f-d16f-4c7a-ad45-9499a22ce47c}].[Parameter:{86b49173-d922-4022-b289-93b2acf6e683}]\\\"}}}},\\\"704c93a5-e747-4fcf-86b6-b14f1398ffe0\\\":{\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"rightExpression\\\":{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{32a3cb4b-4109-4978-84ae-e4f236ffddc6}].[Parameter:{a8f68505-7f8e-4e33-ac3d-3c9116eb1915}]\\\"}}}},\\\"d3db370d-afe3-49c5-a121-571f02715f64\\\":{\\\"filterType\\\":1,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"Id\\\"},\\\"rightExpression\\\":{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Element:{335bd2a9-757f-4750-adb1-a6d1a23e05f1}].[Parameter:{c6326280-12ce-424f-830a-9659100f8272}]\\\"}}}}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"IWPayments\\\"}\"}"
            }
        },
        {
            "Parameter": "Read first",
            "Value": {
                "Before execution": true,
                "After execution": true
            }
        },
        {
            "Parameter": "Columns order",
            "Value": {
                "Before execution": "",
                "After execution": ""
            }
        },
        {
            "Parameter": "First item of resulting collection",
            "Value": {
                "Before execution": {},
                "After execution": {}
            }
        },
        {
            "Parameter": "Read uncommitted data",
            "Value": {
                "Before execution": true,
                "After execution": true
            }
        },
        {
            "Parameter": "Consider time in the filter",
            "Value": {
                "Before execution": true,
                "After execution": true
            }
        }
    ],
    "Process parameters": [
        {
            "Parameter": "IWPayments Amount",
            "Value": {
                "Before execution": 0,
                "After execution": 0
            }
        }
    ]
}

In the first read where you use the Id values from the start signals, change the AND to OR (if you click the AND it will toggle it to OR).

Ryan

Ryan Farley,

Thank you Ryan. I must have overlooked that detail while reviewing other work! I am now having a new issue where the calculation element shows an incorrect sum.

For instance, when setting the Calculate Element to, "OR" I will have one record with an amount of $4500. When modified, it will then show a sum of $94,500.

But if I set it to, "AND", then the Calculate Element will show $0 for both the input and output.

Any idea on what could be causing this?

 

I am going to answer my own question here for my reply, as I discovered that my filters were not working correctly and the calculated sum was adding ALL records of the Payments object:

 

I found that for the "Calculate Element" filters, not only did I not need the 

 

"id ≠ Payments.Record Deleted.Unique identifier of record" 

 

But that the filter of:

 

"Invoice = Read Invoice from IWPayments.First item of resulting collection.Invoice"

 

Should be:

 

"Invoice.Id = Read Invoice from IWPayments.First item of resulting collection.Invoice"

 

I thought I had set it to that already, but I must have overlooked it while troubleshooting other solutions. 

Thank you to anyone who took a look at this!

Show all comments

Hello Everyone, 

 

I created a Dynamic DCM that includes some sub-processes to validate lists on my form page. If validated correctly the stage should continue forward. the first stage works just fine it proceeds. When I validate the following one though the stage does not change. I have re-checked my BP multiple times to ensure it has taken the appropriate path and also the result conditions set in order for the case to move forward dynamically and they both check out. Any idea what the issue could be?

Like 0

Like

1 comments

Hello,

 

Here are a few additional steps you can take to troubleshoot the issue:

  • Ensure that the validation logic in your sub-processes is correctly implemented and that it returns the expected results.
  • Double-check the transition conditions between stages to ensure they are correctly configured and that they match the output of your validation logic.
  • Look at the case logs to see if there are any errors or warnings that might give you more insight into why the stage is not progressing.
  • Try testing the process with different sets of data to see if the issue is data-specific.
  • Ensure that the user executing the process has the necessary permissions to move the case forward.
Show all comments

Hello, everyone. 

I'm having a few problems on a business process that i've created that "gets" information from another system (through api) and i'm getting the response without any error. What happens is that I'm trying to pass down the information to a sub-process and a few fields just don't work. They all go as "null" information. 

 

I'll paste a few prints.

1st one, the information coming from the endpoint request without any problem:

 

2nd, the information being passed for the subprocess:

 

3rd, the information that the sub-process "gets" from the main process:

(update: the "name" "subprocess1" has been solved. Aparently, I can't name the internal name from the endpoint "Name"... changed that to "Names" and it worked)

 

Has anyone already come across something like this? 

btw.. I'm on version 8.2.0.4183.

Like 1

Like

2 comments
Best reply

Kalymbet Anastasia,

Hello, Kalumbet! 
Thanks for the response, but I've found why it was happening... 

Basically, if you pass down a parameter and DON'T use it anywhere on the "subprocess" it just goes as "null", hence the server don't need to "overload" itself with "rabbish" information. 

Hi!


Please test disabling the UseColumnUsageTracker feature and then retry running the process.

 

link: [app_url]/0/Flags

Kalymbet Anastasia,

Hello, Kalumbet! 
Thanks for the response, but I've found why it was happening... 

Basically, if you pass down a parameter and DON'T use it anywhere on the "subprocess" it just goes as "null", hence the server don't need to "overload" itself with "rabbish" information. 

Show all comments

Hi all,

 

i'm new to creatio and i'm struggling a bit with business process task.

I would like to build a dashboard where the user can see all the business process task routed to his group, maybe groupped by case type.

 

I wasn't able to find a dedicated widget or section for those data, as far as i understand they are only visible in the communication panel but that solution works only if you have a small amount of tasks.

 

Is there a way to accomplish my use case without resorting to coding the desired page?

 

Thank you

Like 0

Like

1 comments
Best reply

Hello,
 

Business process tasks are stored in the SysProcessElementToDo table. However, using this table alone, you won’t be able to directly link it with other entities, as no other entities reference it directly.
 

Additionally, tasks are stored as activities that reference a SysProcessElementToDo record in the ProcessElementId column. However, this column is a GUID, not a lookup field, meaning you cannot build a reverse relationship filter in the system.
 

To create a metric, you can refer to the Activity object, grouping records by case category or any other relevant grouping.

Then apply a filter to display only activities where the "Process Item" (ProcessElementToDo) column is populated which mean that current Activity - is a business-process task.
 

However, it's important to note that clearing business process log tables could disrupt this type of chart logic.
 

As an alternative approach, you can assign a unique naming convention to your tasks, such as "[TASK] - task subject", and filter activities not by Process Item, but by name:
Title starting with "[TASK] - %", ensuring they include a recognizable pattern.
 

Example configuration for such a chart:



Additionally, understanding the logic of how tasks are stored in the database, you can use development methods to create a custom database view and configure analytics based on it.
 

I hope this helps!

Hello,
 

Business process tasks are stored in the SysProcessElementToDo table. However, using this table alone, you won’t be able to directly link it with other entities, as no other entities reference it directly.
 

Additionally, tasks are stored as activities that reference a SysProcessElementToDo record in the ProcessElementId column. However, this column is a GUID, not a lookup field, meaning you cannot build a reverse relationship filter in the system.
 

To create a metric, you can refer to the Activity object, grouping records by case category or any other relevant grouping.

Then apply a filter to display only activities where the "Process Item" (ProcessElementToDo) column is populated which mean that current Activity - is a business-process task.
 

However, it's important to note that clearing business process log tables could disrupt this type of chart logic.
 

As an alternative approach, you can assign a unique naming convention to your tasks, such as "[TASK] - task subject", and filter activities not by Process Item, but by name:
Title starting with "[TASK] - %", ensuring they include a recognizable pattern.
 

Example configuration for such a chart:



Additionally, understanding the logic of how tasks are stored in the database, you can use development methods to create a custom database view and configure analytics based on it.
 

I hope this helps!

Show all comments

Hi community,

Calling a Business process is quite easy in FreedomUI, by adding a button and choosing

Action: Run process.

The problem with this approach is that once the button is clicked, there is no validation happening in the page.

Is there any code snippet or workaround that when clicking a button that runs a business process, prior to the calling of the process a validation(practically a Save) happens?

Sasori

Like 1

Like

6 comments

The only option currently is to wire up code for the button. It would first save the page, then if the save was successful you would execute the process. 

See how to save the page and detect if it was successful here: https://customerfx.com/article/saving-a-page-before-some-action-on-a-creatio-freedom-ui-page/

See how to start the process via code here: https://customerfx.com/article/starting-a-process-from-client-side-code-on-a-creatio-freedom-ui-page/

Ryan

Ryan Farley,

Thanks for the response Ryan. Do you actually have an example on how to integrate within the 'CustomMethod' both crt.SaveRecordRequest and crt.RunBusinessProcessRequest ?

Ryan Farley,

Ryan if im not mistaken, with the suggested approach , every time the user will click the SAVE button, the overriden crt.SaveRecordRequest will be called?

In the first linked example, you would only be running that `usr.CustomCodeRequest` handler when you click your custom button. If you put the code inside the crt.SaveRecordRequest handler, then it would be run every time the user saved the page in some way.

Sasori Oshigaki,

As Harvey mentioned, the code for your button will only execute when the button is clicked, not when the Save is clicked. Your button will also initiate a save and then, if successful and validated (and the save occurred) it will then execute the process. The code from the first article triggers the save to happen and then provides the result. In the article (the first one) the save returns a result, where the code has // save was successful, continue with something else here you'd replace that with the code to start the process (the second article). If needed, you can see how to wire up custom code to your button in this article: https://customerfx.com/article/adding-a-button-to-execute-custom-code-on-a-creatio-freedom-ui-page/

Ryan

Thank you  both Ryan and Harvey! Was able to achieve what i intended!

     {
    request: "so.SaveAndRunBP",
    handler: async (request, next) =&gt; {
            const saveRecordRequest = {
            type: "crt.SaveRecordRequest",
            preventCardClose: true,
            $context: request.$context
        };
        if ((await request.$context.executeRequest(saveRecordRequest)))
        {
          const handlerChain = sdk.HandlerChainService.instance;
          const result = await handlerChain.process({
              type: "crt.RunBusinessProcessRequest",
              processName: "SoGenerateContact",
              processParameters: {
                  ContactId: await request.$context.Id,
              },
              $context: request.$context
          });
        }
        return next?.handle(request);
    }
}
Show all comments

Hi guys! There is a question. It is necessary to establish rules for the segmentation of the counterparty. If he has more than $10,000 revenue, then assign a segment in the directory with the value A, if the revenue field is less than $1,000, then segment B. How do I do this? In the "event - signal" business process, there is no sign greater than or equal to, only flat or uneven. I didn't find anything that would help me in setting up business rules either. Who can tell you? Version 7.18

Like 0

Like

1 comments

Hello,

You need to check whether your Revenue field is of type "Integer," as it seems that a text field is being used.
 

If you specifically need to use a text field, you will need to parse this field into an integer in formula and use a formula in the Conditional flow to evaluate this value using ">" or "<".

https://community.creatio.com/articles/how-convert-string-integer
https://academy.creatio.com/docs/8.x/no-code-customization/8.1/bpm-tools/process-elements-reference/flows/conditional-flow
 

Thank you for reaching out!

Show all comments