In a Business Process, we are calling a Web Service using the Web Service Call element, but sometimes we will get a failure that we need to log to a custom table for action later. We really could do with as much information about the failure as possible, including being able to log out the parameters that the Web Service was passed so the support users can assess what happened without having to have trace logging turned on for the BP and digging into the BP log as well. I can't see any output on the web service call for that, but maybe someone else has found a way to get this info?

Like 2

Like

2 comments

Hi Harvey, we have similar needs, but no result, unfortunately. 

So, we log all parameters manualy before calling web service :(

Hello Harvey,



If you want to see the body of the request generated by the web service and the response that comes from the server - You can try to use Telerik Fiddler tool to capture requests that are being sent from the Creatio instance

 

But this advice is relevant only for local environments.

If the environment is on a local machine, you can connect Fiddler and test it.

 

In general, if you do not want to use data tracing for a process, we believe that this goal can be achieved through development. For example, a web service call will be made using a script task, in which you will process various responses from the server and write the information you need into a table using C# code.



Thank you.

Show all comments

I have a string field that is being populated in this format, "myfielddata-data". I need to parse the data after the "-" to use in a business process.

Like 0

Like

1 comments

Hello Justin,

 

string myString="myfielddata-data";

int indexRetrieved=myString.LastIndexOf("-");

 

string result= myString.SubString(indexRetrieved);

 

other way:

string myString="myfielddata-data";

string arMyString[] = myString.Split("-");

 

string result = arMyString[1];

 

 

Show all comments

Hi! Is it possible to handle exception in a process? For example if there is an error on "delete something" step occur we proceed to next step without stoping all process.

Like 0

Like

1 comments
Best reply

Dear Andrii,

Unfortunately, we cannot handle exceptions with standard tools in actual versions of applications. Thank you for bringing this aspect to our attention. We will create an idea for the development team so they can consider implementing such functionality in future versions of our application.

If you're talking about custom C# code and Script tasks, you can use basic try/catch constructs there to handle exceptions.

To track errors in business processes, you can create a new business process. It is described on the Creatio Community at the following link: https://community.creatio.com/questions/exception-handlng-business-procecss.

Thank You!

Dear Andrii,

Unfortunately, we cannot handle exceptions with standard tools in actual versions of applications. Thank you for bringing this aspect to our attention. We will create an idea for the development team so they can consider implementing such functionality in future versions of our application.

If you're talking about custom C# code and Script tasks, you can use basic try/catch constructs there to handle exceptions.

To track errors in business processes, you can create a new business process. It is described on the Creatio Community at the following link: https://community.creatio.com/questions/exception-handlng-business-procecss.

Thank You!

Show all comments

Hi Community,

We have a simple string field in one of our Creatio instances that is not being updated (tested with a Supervisor user).

Field is NOT being updated in the following scenarios

1- Frontend: When we save the record page.

2- Application Layer : The field is not being update from Bussines Processes.

3- OData4 : We tried to update from Postman with OData4 request, without success

 

Is there any lock mechanism that prevents the field from being updated written in CSharp?

 

The field can only be updated when we perform an Update directly in the database layer.

 

Thank you

Sasor

Like 0

Like

1 comments

Hello!

 

This means that there can be logic at the event layer level that changes the value of this field when saving a record. It can be on action: OnUpdating, OnSaving. Details here:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

Or changing a given field leads to another action that changes its value again.

To track exactly where this field changes, you can write additional logging when the record is saving, in various methods, such as OnUpdating and OnSaving, on the EntityEventListener. This logging will help you find exactly where the field value changes.

Show all comments

I have a subprocess that loops the returned records from an API call and adds a new record in a data object. I want to modify the process to check if the record already exists and if so, modify the existing record with the data changes.

Like 0

Like

1 comments

First read the record using whatever Identifier you have on it from the source data. If the record exists the Id value will be a Guid and if it doesn't exist the Id of the record will be Guid.Empty.

So the condition for the update will look like: 

[Id from the Read] != Guid.Empty (this means the Read found the record)

The "else" will proceed to the Add, just make sure you populate some identifying value from the API call that you'll use when you read if the record exists next time.

Ryan

Show all comments

Hi colleagues,

 

Is there any way to stop the process when processing multiple records, in this case the service returns more than 16000 elements/records and I want just process the first 20 or 30, I tried to use all of this process properties to stop it, without results:

  • Number of completed instances
  • Number of terminated instances
  • Total number of instances

Any Idea, in the image goes to 95 completed, I want to stop at 20, but no idea how to do...

 

 

Thanks in advance, 

Julio Falcón

Like 1

Like

2 comments

Hello, some ideas, please?

Hello, 



When using a multi-instance subprocess, the number of process executions is regulated only by the size of the collection you pass to it.

If you use the "Read data" element, you can adjust the size of the collection through the "Read first XX records" property.



If you receive a collection from a web service, you should use such parameters in the request that will allow you to receive the required number of records. You can check the web service documentation or modify the backend if it is your own web service or you have a contact with the developer.

Another option would be to resort to development and write a script task that will process the collection from the web service and trim the resulting collection/response.

 

Thank you.

Show all comments

Dear colleagues

 

To implement a process who automatically cancel activities not started from more than "XX" hours from the hour they are created, I filter all activities which meet some another conditions and Created on < Previous hours XX.

 

I want to use a System setting if customer want to change the XX hours, in the future, and not need to touch the process. 

 

Is there any way possible to replace 10 by a formula like 

Created on < Previous hours [#System setting.SLATasks#] (in the filter condition)?

 

Thanks in advance

 

Best regards

Julio Falcón

Like 0

Like

3 comments
Best reply

What I did is to create a Date/Time parameter called FechaSLA with this value 

[#System variable.Current Time and Date#].AddHours( -[#System setting.SLA MDA's#] )

and in the filter use Created On < FechaSLA , that's all!

 

Thanks

Hello Julio,

You can create a date/time param to use in the condition and then populate the param with a formula like this:

[#System variable.Current Time and Date#].AddHours(-10)

This formula takes the current date/time and adds a negative 10 hours  (which is subtracting 10 hours). The value of 10 could be a int param so it's flexible the amount of hours subtracted. 

Ryan

Ryan Farley,

Thanks Ryan...

 

How come I didn't see it? hahaha :-(

 

Regards

Julio

What I did is to create a Date/Time parameter called FechaSLA with this value 

[#System variable.Current Time and Date#].AddHours( -[#System setting.SLA MDA's#] )

and in the filter use Created On < FechaSLA , that's all!

 

Thanks

Show all comments

when we tried to create a report it worked normally when the user language was English, however

when a user language Arabic the BP shows the below error



System.NotSupportedException: Unsupported report type '0'

   at Terrasoft.Configuration.ReportEngine.Generate(ReportSettings settings)

   at Terrasoft.Core.Process.Configuration.ReportFileProcessingUserTask.InternalExecute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.RunInCultureScope[T](Func`1 action)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context

Like 0

Like

1 comments

Dear Sayed!

 

We can see that you have already submitted a case for our support team and this case is currently in progress. We will update you in that request. 

 

Have a great day!

Show all comments

Hello,

 

I have a process that changes the Status of an activity to Canceled. Unfortunatelly, for some records it does not work.

 

In the trace I can see that the Status is changed and for the right activity but, in that activity the status remains as before.

 

 

We can see that the value is the correct one for 'Canceled'.

 

This is after the execution of the process.

 

The process is an automatic one, that starts daily, and searches for activities type 'In progress' & 'Not started'.

 

Thank you

Like 0

Like

1 comments

Can you please share the screenshots of the Business process?

Show all comments

Hello,

 

I am trying to automate the gathering of data using some business process that perform API calls to one of our client private APIs. I have defined the WebServices with no problem like the one from this example:

 

 

And sending the test request with a valid API Key and Authorization token works perfectly. However, if I try to group all of this inside a business process I get an error that I don't know how to solve. This is the business process:

 

 

And the error that I get exactly on the web service call is this one:

 

 

The full error message states:

Terrasoft.Common.UnsupportedTypeException: Type "System.Collections.Generic.List`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" is not supported.

 

I have done some tests and I can confirm that the error only appears when I try to use a the valid Authorization token retrieved previously, and if I set any other value in that Web Service parameter I don't get the error but obviously the call fails because I am using and incorrect token.

 

The length of the token is 299 characters and as it is an authorization token, it must be preceded by the word "Bearer", so the full value that I am passing to that parameter is "Bearer " with a total length of 306 characters. I also tested using some random strings of length 500+ and the error doesn't show up, so it is not related to a limit of the parameter length. I also checked that the token I am passing is 'correct', i.e. no breaklines, weird characters (not UTF-8) or anything that could cause problems with the encoding of the string.

 

Therefore, I guess it is something related to the way Creatio builds the API request from inside the process, that is not the same as doing from a test request inside the Web Service...

 

Your help is highly appreciated.

Regards.

Like 0

Like

2 comments

Note: I have not tried yet to perform the same kind of requests inside a business process to another API (like a public one), but the error I am getting is not related to the API I am using, it must something related to the Creatio business process logic when invoking web services methods, regardless of the endpoint and the API specifications.

Hello,

 

I recommend that you create a support request.

Show all comments