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

In this Code "CollectionParameter" is Collection of records type.

 

const handlerChain = sdk.HandlerChainService.instance;
const result = await handlerChain.process({
    type: "crt.RunBusinessProcessRequest",
    processName: "UsrSomeProcess1",
    processParameters: {
      CollectionParameter : //How it should be passed ?
      SomeParameter: "Some Value" //ID Paramete
    },
    $context: request.$context
});
 
if (result.success) {
    // process was sucessfully executed
}

 

 

Like 0

Like

1 comments

Hello!

 

You can use the ProcessEngineService in order to run a business process through a web service and send a collection parameter. The Academy has published an article with a detailed example of how to use ProcessEngineService, which you can find at https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/integrations-and-api/business-process-service/examples/run-the-business-process-web-service

Additionally, there's an overview of the web service that explains how to send a key-value collection of incoming parameters, and you can access it at https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/integrations-and-api/business-process-service/overview

Show all comments

Hi community,

 

I have this requirement where the client must be able to move one or more records from one detail to another through a business process. Following the steps shown in the image below:

 

1. The user must select one or more records from the "Product on Invoice" detail.

 

2. Next, the user executes the business process using the "Add" button. The process must receive the ids of the selected records.

 

3. Finally, all the selected records should then be added to the "Products in the Correction Invoice".

 

 

How can I achieve this requirement on the new Freedom UI?

 

If you need more information, feel free to ask.

 

Thanks in advance.

 

Best Regards,

Pedro Pinheiro

 

 

Like 2

Like

1 comments

Dear Pedro,

 

To execute this idea, you can do the following:

 

1) You can add the element that depends on user's choice in the "User's Action":

 

 

You can add an "Auto-generated/Pre-configured page" asking the user for an Id for example.

 

2) To achieve this, you can add the action on the button to start the business process in the page designer:

 

 

 

For the transfer, you can read the data from both objects, then use the modify data element.

 

You can read more about business process capabilities in the following article tree: https://academy.creatio.com/docs/8.x/no-code-customization/category/bus…

 

Have a great day!

Show all comments

Hello Everyone,

I have a progress bar that changes its status based on approval status. However, it requires a manual page refresh to reflect the changes in the progress bar. To address this, I've added a refresh button. Now, I want this button to trigger automatically whenever the progress bar status changes. Can anyone provide guidance on how I can achieve this using a custom handler?

Currently, I've written this code with the assumption that the record is saved whenever the status changes.

    {

    request: "crt.SaveRecordRequest",

    handler: async (request, next) => {

        const schemaName = "UsrNewProductsOnboardingformpage";  

        const buttonId = "Button_qef55yg";

        const button = request.$record.$Model[schemaName].$Buttons[buttonId];

        if (button) {

            button.instance.execute();

            console.log("Button clicked");

        } else {

            console.log("Button not found");

        }

        return next?.handle(request);

    }

}

Like 1

Like

4 comments

Have you tried turning on "Enable Live Data Update" for the object? Turning that on should make it refresh automatically when the data changes with no code. 

See https://customerfx.com/article/automatically-refreshing-a-creatio-freed…

Alternatively, you could add code to refresh the page: https://customerfx.com/article/refreshing-reloading-page-or-list-data-o…

Ryan

Ryan Farley,

Hi Ryan,

I tried enabling "Live Data Updates" for the object, but it still didn't work out. Will try the alternate approach to see if it's work.



Thanks 

 

Abhishek,

 

Hello,

 

Try this handler in the page (don't forget to add creatio-devkit/common to  your page schema (example define("UsrTest_FormPage", /**SCHEMA_DEPS*/["@creatio-devkit/common"]/**SCHEMA_DEPS*/, function/**SCHEMA_ARGS*/(sdk)/**SCHEMA_ARGS*/ {):

{
				request: "crt.ApprovalActionHandlerRequest",
				handler: async (request, next) => {
					const result = await next?.handle(request);
					const handlerChain = sdk.HandlerChainService.instance;
					await handlerChain.process({
						$context: request.$context,
						type: 'crt.LoadDataRequest',
							config: {
								"loadType": "reload",
								"useLastLoadParameters": true
							},
							"dataSourceName": "PDS"
					});
				}
			}

Worked correctly in my demo.

Oleg Drobina,

Hello,

I tried, but it didn't work, nor did it even trigger after the changes. Do I need to change the request from "crt.ApprovalActionHandlerRequest" to any other request?

Show all comments

Hi,

I have created a business process, which is simply notifying a user that a new record has been created within a Project. I can create the notification in the way I want, however when clicking on the link in the notification window, it simply takes the user to the Project list page and not the Project page itself i.e. the detail page.

I have used the Parent entity ID column and set this to the Project ID value, as you can see in the screenshot below. This I expected it to work. Performing a trace shows the correct Project ID value for the record in question, so I am not sure what is wrong.



Thanks

Like 0

Like

3 comments

Hello,

 

In order to create an activity, please add this value to the business process in the Add Data element:

To = responsible

Title

Time

Object

Source (for example Owner)

Unique caption Id = Record Id (from the signal)

Hi Anastasia

 

Many thanks for your reply.

 

I have the following data structure in place within the 'Notification' object for creating a new record:

 

To       -       Lookup to specific contact

Object     -      Lookup.Section Object(View).Project

Time     -    System - Current Date & Time

ParentEntityID    -    Project ID

Source     -     (I have tried a number of sources - Lookup > Owner, Lookup > Contact, Specific User via Process Parameter causes a foriegn key constraint error)

Unique Caption ID     -    RecordID from signal



Before I added Source and Unique Caption ID clicking the Notification link in the notification panel took me to the Project summary page. Adding these two as indicated in your reply above causes no action i.e. no page change occurs.



The notification is being created, although it is in the System Messages section, but the link is just not taking me to the Project.



Anything else you can guide me with would be very much appreciated.

 

thanks

 

Mark



 

I have got it working!



For those that come along after this, this is how:

 

  • Title    -     What you want to display in the notification subject

  • To       -       Lookup to specific contact

  • Object     -      Lookup.Section Object(View).Project

  • Time     -    System - Current Date & Time

  • Unique Caption ID     -    RecordID from signal

 

The issue was that I had ParentEntityID included, which once I removed that allowed the link to work. I read a previous Blog on this subject which had this value.

 

 

 

 

Show all comments

Hello Creatio community!

 

My first post on the forum. I have a business process that populates a Ticket Number field in a custom Tickets Section. This business process sets the field value and sends a message to the section's client module which includes the below code to handle the message and refresh the section so we can see the updated ticket number.

 

			init: function() {
				this.callParent(arguments);
				this.subscriptionFunction();
			},
			subscriptionFunction: function() {
				Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.onMyProcessMessage, this);
			},
			onMyProcessMessage: function(scope, message) {
				if (!message || message.Header.Sender !== "RefreshTicketPage") {
					return;
				}
				var message2 = message.Body;
				if (!this.Ext.isEmpty(message2)) {
					this.reloadEntity();
				}
			},
			destroy: function() {
			    Terrasoft.ServerChannel.un(Terrasoft.EventName.ON_MESSAGE, this.onMyProcessMessage, this);
			    this.callParent(arguments);
			}	

 

The code works fine, but the problem is upon clicking Save it closes the section edit page and shows the list, which does correctly include the updated ticket number. I want it to refresh the field and STAY in the edit page so the user doesn't have to reopen the section from the list after saving. Does anyone know if this is possible? To refresh the section while staying in the edit view? I'm using cloud and Classic UI and have attached a screenshot of the view I would like to refresh and remain open on the screen.

File attachments
Like 0

Like

1 comments

Hi community,

I created a business process that inserts a new OpportunityProductInterest for a specific product into a specific Opportunity.

The insert process element step copies the Product.Notes column to the OpportunityProductInterest.Notes column.

Product.Notes is a localizable text column and its value is localized to English and Italian.

If the BP is saved using a user localized in English, everything works fine, while if I make changes to the BP using a user localized in Italian, the BP does not work.

The expected result is the OpportunityProductInterest.Notes filled with the value Product.Notes, but in the wrong scenario the column is assigned the empty string.

 

What do you suggest me?

thank you in advance

Like 0

Like

1 comments

Hi,

I founded the solution.

The OpportunityProductInterest.Notes field was not a text localized, then the BP didn't work correctly.

I change the field as localized text and everything is fine now.

 

Show all comments

Hi,

 

Can anyone guide to develop a business process to achieve the following:

 

Based on the selection of multiple checkboxes, approvals should trigger parallelly and move to the next stage when all the multiple approvers have approved.

Like 0

Like

1 comments

Hi!

 

This approach is covered in the post here: https://community.creatio.com/questions/approval-business-processes

 

You may review the process structure, explore Creatio documentation, and leverage conditional flows for effective parameter handling.

 

Hope it helps!

Show all comments