Hi Community,

We are encountering this error when saving a business process in our local Creatio 8.1.3.6789 instance (PostgreSQL, SalesEnterprise + Marketing + ServiceEnterprise package):

 

Error occurred when saving: 23503: insert or update on table "SysLocalizableValue" violates foreign key constraint "FKYru8eiQRBeFoEfawvRwKSlCy2o"
 

The issue happens for all team members and seems related to missing schema or metadata.

Is this a known issue with this Creatio version? Any recommended fix or workaround?

Thanks!

Like 0

Like

1 comments

Hello Kani

It seems you don't have the corresponding record on the SysCulture table, try to enable the postgres log and get the insert or update that raises the error.

Show all comments

Hello community,

Is there any way to map the Parent object, while importing data in the detail?

(Example : We want to Import a (Product In Order) in an Order.

Thank you 

Sasor

 

 

Like 0

Like

4 comments

Hello!


Thank you for your question!

Allow me to clarify how the import process works. When importing data into Creatio, you are essentially transferring the information from your Excel file into the corresponding database table. Each detail in Creatio corresponds to a different object or database table. Therefore, during an import, data can be inserted into one table or object at a time.

Import to Contact/Accounts have custom core logic applied, but all other objects work with logic described above.

You can read more about Excel import on Creatio Academy: https://academy.creatio.com/docs/8.x/creatio-apps/creatio-basics/busine…

Have a nice day!

Hello community,

Any update regarding this topic?

Sasor

Hello, answer has been already provided , but we will duplicate it below for your convenience: 

"Thank you for your question!

Allow me to clarify how the import process works. When importing data into Creatio, you are essentially transferring the information from your Excel file into the corresponding database table. Each detail in Creatio corresponds to a different object or database table. Therefore, during an import, data can be inserted into one table or object at a time.

Import to Contact/Accounts have custom core logic applied, but all other objects work with logic described above.

You can read more about Excel import on Creatio Academy: https://academy.creatio.com/docs/8.x/creatio-apps/creatio-basics/busine…

Have a nice day!"

Dear support team members

Kateryna and Oleksandra

I believe you missunderstood our request

_____________________________________________

Here is the scenario

  1. We are in the Opportunity Section.
  2. We want to import a list of Competitors.
  3. While importing the excel file, containing the Competitors list, we need that the competitors list, is assigned to this specific Opportunity '495 / Fast Works / Sale of Goods'
  4. We want to obviously achieve this without manually adding the '495 / Fast Works / Sale of Goods' as a separate column for all the records of the excel. 

Is there any example in the Code-Base, or any other workaround where this is achieved?

Sasor
 

Show all comments

Hello,

 

I am currently generating multiple report templates, some of these templates need to show list components attached to a record. For example, A loan application that has multiple collaterals attached to it or a payment schedule stored in a list component. How do I achieve this?

Like 0

Like

2 comments

Hi.
Newbie here, so bear with me.  Best I start with an example --  

  • We have 200+ users who are sales reps and 2 Admins.
  • Some of these sales reps are managers of a sub-set of other subordinate reps.
  • Now, a rep quits, and it's up to an admin (in another country BTW) to manually go in and reassign his dozens of opportunities to a new sales rep.  This is a task his manager should be able to do, but can't (because only an admin can change other users' records).

This is just one example of a typical issue we run into, that could be fixed by giving "modify" rights to one user over certain other user's records -- or a "superuser" as exists in our other systems.

In Creatio, I am told only the individual rep can change his own "opportunities".  His manager cannot.  (The Admins of course can change everything about everyone, so logically we can not give admin rights to the managers.)

Is there a way around this?  
Perhaps the next release of Creatio will have some sort of granularity of "rights"? 

Thanks!
Rob

 

Like 0

Like

4 comments
Best reply

Creatio does have this, or at least it can work like this. If you're using organizational roles, each organizational role can have a management role. The management role inherits the permissions of the users in the organizational role. Meaning, if you create an org role called "sales" and then add an management role for the sales org role, the people in the management role inherit the permissions of the users in the org role. See https://academy.creatio.com/docs/8.x/setup-and-administration/administration/user-and-access-management/user-management/organizational-roles#title-2266-2

Note, this often means you also need to setup object/record permissions for things based on these roles as well, instead of by users (so the permissions can be inherited by the managers of the role). For example, you could add record access permissions that if anyone in "sales" creates a record, that edit permissions is given to anyone in the "sales managers role".

Ryan

Creatio does have this, or at least it can work like this. If you're using organizational roles, each organizational role can have a management role. The management role inherits the permissions of the users in the organizational role. Meaning, if you create an org role called "sales" and then add an management role for the sales org role, the people in the management role inherit the permissions of the users in the org role. See https://academy.creatio.com/docs/8.x/setup-and-administration/administration/user-and-access-management/user-management/organizational-roles#title-2266-2

Note, this often means you also need to setup object/record permissions for things based on these roles as well, instead of by users (so the permissions can be inherited by the managers of the role). For example, you could add record access permissions that if anyone in "sales" creates a record, that edit permissions is given to anyone in the "sales managers role".

Ryan

Ok, Thanks -- that's kind of what I thought, with my rudimentary experience with roles (and Creatio in general).

So, applying this to our large sales organization ...
Instead of implementing a single "sales" role, we would need to implement a "superuser" role, but for each sales division -- perhaps?

For example, we have 8 sales regions, like "Asia" and "Europe" and "South America".  There are 30-50 sales reps in each region.
We don't want all their "issues" trickling up to one admin, so as I mentioned we want a "SuperUser" in each region:  "SuperUser-Asia", SuperUser-India" and so on.  I guess these would be "management" roles in Creatio.

So, we would have to divide up the Sales Reps (users) into separate orgs (one for each region) so that their data would be visible to their SuperUser? 
Can I create separate orgs in Creatio, all living underneath the main Company org?

Thanks -- any suggestions you have are appreciated!

Rob

Yes, the roles are hierarchical. Each sub role inheriting the permissions of the roles before. You can have a role for sales, then sub roles for each division. Each division can have a managers role which could give them inherited permissions for the division they manage.  

I will have to review this with our integrator.   They are telling us that in the forthcoming release of Creatio, there are some enhancements to roles and permissions -- Are there any hints or documentation as to what this might be?   We need to allow certain roles to be able to edit specific data but not all.

(For example, a salesman creates a customer account DuPont Paints and can assign it to a "master" account DuPont International. This is really something that his local manager admin should also able to do, but can't)

Show all comments

Hi.  

Has anyone connected Qlik to Creatio?

I see that Creatio has a REST API, but is that the preferred (or only) method to connect a BI tool such as Qlik?

We need to use Qlik to create reports for other teams that don't have Creatio access.

 

Thanks!

Rob

Like 0

Like

5 comments
Best reply

Given your extensive investment in Qlik and the need to integrate it with data from Creatio, we recommend using Creatio’s REST API over OData for this integration.

While both options are available, the REST API offers several key advantages:

1) Better performance: REST is more efficient and lightweight, especially when handling large datasets.

2) Greater flexibility: you can define exactly what data is needed and apply filtering or transformations before it's sent to Qlik.

3) While OData comes with various preconfigured options, REST allows you to easily customize the requests

OData can be used for basic, read-only access, but it's generally more rigid and less performant — especially when dealing with high-volume analytics scenarios like yours.

Have a nice day!

Hello!

 

Creatio does not officially support Qlik. The only way to integrate Qlik with Creatio is by using the Creatio OData or REST API.

 

As an alternative, we can recommend using Power BI marketplace addon: https://marketplace.creatio.com/app/microsoft-power-bi-desktop-connector-creatio

 

Have a nice day!

We have heavily invested in Qlik as our BI tool (and have hundreds of users).  Our task is to connect finance data with the sales data we have in Creatio.
We have an IT team that can set up the connection so I assume they are familiar with connectors like REST API, but would you recommend using ODate over REST API ?

Given your extensive investment in Qlik and the need to integrate it with data from Creatio, we recommend using Creatio’s REST API over OData for this integration.

While both options are available, the REST API offers several key advantages:

1) Better performance: REST is more efficient and lightweight, especially when handling large datasets.

2) Greater flexibility: you can define exactly what data is needed and apply filtering or transformations before it's sent to Qlik.

3) While OData comes with various preconfigured options, REST allows you to easily customize the requests

OData can be used for basic, read-only access, but it's generally more rigid and less performant — especially when dealing with high-volume analytics scenarios like yours.

Have a nice day!

Hi.   

(I'm not the dev that's going to do this, but ...) 

If we create an OData connection with Qlik,  are there already some methods in place so that Qlik automatically sees all data and tables in Creatio?  Or do we need to build out methods to see specific data?

Or, perhaps it's worth buying a Creatio OData connector that has all this built out already?  (If there is such a thing)

Thanks
Rob

Actually, the better question around how the BI (in my case Qlik) works with the data --

When we build out the OData datasource that Qlik will connect to, we need to specify each table that should be "available" to Qlik, true?  (There is no "include all tables" I assume.)
Ideally, we want all data from all tables, then in Qlik we will do the filtering of which data is needed on each report.

Or am I way off here?  


 

Show all comments

Hi community,

Is there any Low-Code possibilty to navigate directlty to Form Page of the created record?

Chain of events

1 - Mini Page is opened and data is entered

2- Mini Page Save evend is performed

3- After the record is created we navigate directly to the created record Form Page

 

Basically we need the symetric operation of this articel but for FreedomUI

https://customerfx.com/article/automatically-navigating-to-the-new-record-created-by-an-add-mini-page-in-creatio/

 

If there is no-code possibility, can you provide a code snippet how to achieve  it?

Sasor

Like 0

Like

1 comments
Best reply

For a no code approach - there really isn't an exact match, the closest possibility is the action "Continue in other page" which will open it in the default page for the entity type (assuming the mini page is set up as the "Add" page). However, that doesn't actually save the record first (just validates it).

For a code approach, you'd need to add a save request handler see here, then use: 

const saveResult = await next.handle(request);
if (saveRequest) {
	// navigate here
}
return saveRequest;

The navigate here part would use this and open the record in edit mode. 

Also, it likely would not be a good idea to do this in the base page for all mini pages, since dialogs can be used for different purposes, not like how it was for mini pages in classic (although I suppose you could check if the current mini page is in add mode).

Ryan 

For a no code approach - there really isn't an exact match, the closest possibility is the action "Continue in other page" which will open it in the default page for the entity type (assuming the mini page is set up as the "Add" page). However, that doesn't actually save the record first (just validates it).

For a code approach, you'd need to add a save request handler see here, then use: 

const saveResult = await next.handle(request);
if (saveRequest) {
	// navigate here
}
return saveRequest;

The navigate here part would use this and open the record in edit mode. 

Also, it likely would not be a good idea to do this in the base page for all mini pages, since dialogs can be used for different purposes, not like how it was for mini pages in classic (although I suppose you could check if the current mini page is in add mode).

Ryan 

Show all comments

Hi community!

 

I'm importing a file with Leads and needing to assign them to a user. Is there a way for seeking a user by email, not by full name? Because we have a lot of contacts with the same name in the database.

Like 0

Like

2 comments

Hi,

Yes, it is possible to perform the mapping this way. You need to map the Email field from excel file to the Owner.Email field, which means you need to "drill down" into the column of the object referenced by the Owner column.
 

Here’s a guide on how to achieve this:





I hope this helps!

 

Pavlo Sokil,

Thanks a lot!

Show all comments

Hello Community,

The scenario is very simple. 

We are in the Account form page. The account form page has three lookup fields (Type, Category, Primary Contact) We want to filter the Primary Contact based on the (Type and Category). How can this be achieved in freedomUI. Any code example?

Greetings

Sasor

Like 0

Like

1 comments
Best reply

If the lookup is a dropdown lookup (not opening the selection window) this approach can be used to filter it via code: https://customerfx.com/article/dynamically-filtering-a-lookup-on-a-creatio-freedom-ui-page/

For filtering a lookup as a selection window, use the approach here (see response from Harvey): https://community.creatio.com/questions/crtloaddatarequest-does-not-seem-trigger

Note, since that post, the "crt.OpenLookupPageRequest" request has been replaced by the new request "crt.OpenSelectionWindowRequest", so use this new request name instead of what is listed in that post)

Ryan

If the lookup is a dropdown lookup (not opening the selection window) this approach can be used to filter it via code: https://customerfx.com/article/dynamically-filtering-a-lookup-on-a-creatio-freedom-ui-page/

For filtering a lookup as a selection window, use the approach here (see response from Harvey): https://community.creatio.com/questions/crtloaddatarequest-does-not-seem-trigger

Note, since that post, the "crt.OpenLookupPageRequest" request has been replaced by the new request "crt.OpenSelectionWindowRequest", so use this new request name instead of what is listed in that post)

Ryan

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