Parameters of a process appear in creation order in the process or alphabetical order as a sub-process, which can become unwieldy or confusing when referencing subprocesses since there is no way to indicate which ones are required to be passed into a process to function correctly.  Is there any way to sort the Parameters manually, for example, so that inputs parameters are at the top of the list?

Like 0

Like

1 comments

Dear Janine,

Currently the logic is that parameters in the process are ordered by creation date (if we are talking about custom business processes). And indeed they cannot be sorted in another order and I will create a request to our R&D team so they could include this functionality in out of the box version of the application. Thank you for this idea!

Best regards,

Oscar

Show all comments

Hi Community,

Any Idea how can i fix this issue, I want to modify the OOB send email to case assignee business process, but when I saved it as new version I am getting "Parameter StringComparison not found" error, please take note I have not modified any process element yet, i just saved it as new version

Like 0

Like

1 comments

Dear Fulgen, 

To fix this in formula Change subject you would need to change

"([#First activity.First item of resulting collection.Subject#]).IndexOf("RE: ", StringComparison.OrdinalIgnoreCase) == 0 ? ([#First activity.First item of resulting collection.Subject#]) : "RE: " + ([#First activity.First item of resulting collection.Subject#])"

to 

"([#First activity.First item of resulting collection.Subject#]).ToLower().IndexOf("RE: ".ToLower()) == 0 ? ([#First activity.First item of resulting collection.Subject#]) : "RE: " + ([#First activity.First item of resulting collection.Subject#])"

After that you would get an error in conditional flow Owner = Modified. 

You would need to read case from starting signals and replace this conditional flow to conditional flow comparing Owner and Modified by for the read case. 

Best regards, 

Dennis

Show all comments

Hi, 

 

I want to call a business process from a script task of another business process. I did this because I want to send email to a collection of contacts, so I will do a foreach loop in the script task, and call the second business proces that will send the emails. 

The problem is that the second business process, its call from the first one, and appears in the process log as running, but it doesnt do anything, neither send the mail nor finish running. 

The script task code:

var _sendMailId = new Guid("451f9ef3-2a11-4ca8-9107-02e23e56f9f3");

var _manager = UserConnection.ProcessSchemaManager;

var _schema = (ProcessSchema)_manager.GetInstanceByUId(_sendMailId);

var _moduleProcess = _schema.CreateProcess(UserConnection);

_moduleProcess.Execute(UserConnection);



return true;

First business process: Mutiple email sender

 

 

Second Business process: MBS Send Email

Process log:

 

 

Thank you.

 

Javier Collazo

 

Like 0

Like

2 comments
Best reply

The problem here was that the business process that was call form the parent business process, wasn't receiving the parameter. The solution to this problem you can find it in the following question:



https://community.bpmonline.com/questions/calling-business-process-para…

 

Best regards, 

Javier

Hello,



At first you should be confident about business process that sends email is working properly. So, try to start it manually. If it will work, then something is wrong with your script task. Perhaps, you have just missed some parameters that are required in "MBS send email process" 

At second, try to save the process once again and compile the system.



Best regards,

Alex

The problem here was that the business process that was call form the parent business process, wasn't receiving the parameter. The solution to this problem you can find it in the following question:



https://community.bpmonline.com/questions/calling-business-process-para…

 

Best regards, 

Javier

Show all comments

Hi all!

I am using the Task element in multiple business processes. The problem is that the activity window does not open once the step is executed. The step in the log remains in the "Running" state until the activity is completed.

Here is the simple process design: https://ibb.co/YZmBz5t

Any suggestions about it?

Thank you

Like 0

Like

5 comments

Dear Uriel,

From the screenshot provided I can see that this task is performed by someone who is read in the "Read data" element. And what will happen if the user whose information we are getting from the "Read data" element is not logged in? Nothing happens, he will only see a notification in the CTI-panel.

Please change "Who performs the task" field value to current user contact and you will see that the page will open for the contact who started the process.

Best regards,

Oscar

Oscar Dylan,

Thank you Oscar! I understand but in this case I'm trying with user supervisor who is the owner of the opportunity. In the "Who performs the task" I've set "

#Read Opp Data.First item of resulting collection.Owner#. Do not you think it should work? I tried with current user contact same behavior. The page isn't open

Regards,

 

Uriel,

Check in the Activity section if activities are created - I tired to create

similar process and it was working fine. 

Best regards,

Angela

Angela Reyes,

Thank you Angela.

The activities are create but I need that the window activity being opened. That is the problem.

Thank you again!

Regards

I resolved it , unchecking "Run following elements in the background" in the signal element.

Thank you!

Show all comments

I'm running into some trouble when trying to populate a lookup column from a script task.  I invariably get the error "System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'UsrVMProductCode'."

This is the column in question:

And here is the relevant part of the script task:

var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "UsrWaterplayVMProductCode");
 
var ColId = esq.AddColumn("Id");
var ColName = esq.AddColumn("Name");
 
var entities = esq.GetEntityCollection(UserConnection);
var productCodes = new Dictionary<string,string>();
foreach (var entity in entities) {
	productCodes[entity.GetColumnValue(ColName.Name).ToString()] = entity.GetColumnValue(ColId.Name).ToString();
}
 
foreach (var pd in resultObj.UpdatedParts) {
	if (pd.PartId != "") {
		var code = "";
		if (pd.VMProductCode != "") {
			code = productCodes[pd.VMProductCode];
		}
		var update = new Update(UserConnection, "Product")
			.Set("Name", Column.Parameter(pd.Description))
			.Set("Price", Column.Parameter(pd.Price))
			.Set("UsrProductionCost", Column.Parameter(pd.Cost))
			.Set("IsArchive", Column.Parameter(pd.Inactive));
		if (code != "") {
			update.Set("UsrVMProductCode", Column.Parameter(code));
		}
		update.Where("Code").IsEqual(Column.Parameter(pd.PartId));
		if (update.Execute() > 0) {
			resultUpdate += "Product " + pd.PartId + " updated.\\r\\n";
		}
	}
}

I have confirmed through debug logging that the code variable contains a GUID.  The script also worked fine before I tried to set UsrVMProductCode, while attempting to set another lookup column in this way (Currency) gave a similar error.  Is there something special I need to do to set a lookup value with the Insert/Update objects?

Like 0

Like

2 comments

The use of Update just creates SQL statements that execute on the database directly (instead of using the object model,, like ESQ does). For a lookup column, the actual column name would have "Id" at the end of it. For example, use "UsrVMProductCodeId" instead of just "UsrVMProductCode".

Ryan

Ryan Farley,

Thanks much, that did the trick.

Show all comments

I've run into issues where a process errors out or doesn't send an email because I'm trying to read data from a later step in the process to use in an earlier step by accident.  It would be helpful to :

  • have a warning that a formula in a User Action or System Action is referencing a later process element
  • enable a selection to only display process elements before the process element I am currently editing to:
    • avoid selecting the wrong element for a formula
    • make it quicker to make process element choices 
1 comments

Dear Janine,

I'll inform our R&D team about this idea and suggest them to implement it. Thank you for helping us to make our application better!

Best regards,

Angela

Show all comments

Can I have multiple object addition signals within a single process? 

Like 0

Like

1 comments

Dear Kumar,

Yes, you can more than one signal to start a process.For example if record is created or modified. 

Best regards,

Angela

Show all comments

Hi,

I checked and tested an example using this documentation (https://academy.bpmonline.com/documents/administration/7-13/web-service-integration). Web service example (http://fixer.io) is JSON formatted and there is no issue to configure in Process library.

I have another web service link which required output is in XML format. I'm not sure if its configurable in Process library or it will be only possible through code customization.

 

Below is screenshot of specific area of output from that web service link

Any help will be highly appreciable. 

 

Regards

Like 0

Like

3 comments

Please deploy the application locally and catch the request and the response with fiddler.

https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNE…

This way you'll get more information. 

Hi Eugene,

Thank you for reply.

It means there will be code customization is required?

 

Regards

The code customization is not required. But in order to create an integration with a web service the skill in working with web services is required. 

Show all comments

While building process I'm trying to set parameters for "Call Web Service" element.

As a value I'm trying to insert encrypted system setting:

When I'm trying to do so - formula returns validation error:

 

If not possible to do with formula is there is a way to set Process parameter and update this value via script task. I'm not familiar with C#, any help appreciated.

Please assist. TY

Like 2

Like

5 comments

Hello, 



System settings with the "Secured text" type are not being transmitted to the client (browser). This process is controlled by the "UseSecureSettingsOnClient" flag in the Web.config configuration file of the bpm'online application. Their values can still be set from the client (browser). So by default you are able to work with "encrypted string" system settings only on server side.



So, if the use of this system settings in business process is necessary you should set "UseSecureSettingsOnClient" flag to true and restart IIS.



Best regards,

Alex

 

Alex_Tim,

Hey, Alex.

Thanks a lot for your help, it's been for a while.

!----------

So, Is it possible to work with <Encrypted String> in script task, and FWD all data to Web Service Element?

The Case is: I would like to store token information, in order to process communication with Web Api Service, but still, I would like string to be forbidden without turning off security configuration.

TY and looking forward.

Val Safronov,

Yes. It's possible. 

Guys still this request is actual and no solution was provided.

 

Just to recap with the question:

- How to get encrypted string from back-end in order to make a request using System.Net

As a solution it's possible to read system setting using c#:

SysSettings.GetValue(userConnection, "<Sys Setting CODE>").ToString();

 

If you need to return this value to process parameter, it's possible to use:

Set<string>("<YOUR PROCESS PARAM>", sysSettingValue);

 

Please note, that returning to process is not secured and it could lead to breach of data

Show all comments

Case

We created few business process and we are sending emails with contents in it.This email sending perfectly if supervisor run this business process.If other users try to run business process, email is not sending. 

Solution

The reason of the issue is in fact that the Supervisor system user is the owner of this mailbox and it is not shared to anyone in the application.  To resolve this issue you need to setup shared access as it is described in the academy article here.

Like 0

Like

Share

0 comments
Show all comments