Is it possible for race conditions to appear when using signals? For example, let's say I have a process A that creates an object. There's also a process B that gets called when object of this type is created and it sets the object status to some value. In its next step process A checks this status.

Will all those actions always appear in the same order or is it possible that sometimes process B will change the object status before the check in the process A and sometimes it will do that after the check?

Like 0

Like

2 comments

Dear Carlos,

Usually, task like those are solved with the help of timers and/or subprocesses. You can add wait timer after process A creating an object and after process B modifies it so the processes will have time to complete. You can aslo test the time it takes for both process to complete to adjust timers accordingly. If the processes check/modify the same object but they are not connected it is completely possible that process A might check the status before it was changed by B.

Ok, thank you for the information.

Show all comments

Is it possible to force update of database tables with records from data packages? I would like make my database to reflect what is in data packages for tables that have data packages associated with them.

Like 0

Like

5 comments

Set instalation type = Update existing and check column [Forced update]

[Update existing] - when updating a package, only those object columns that are marked with [Required for update] ([Forced update]) in the [Columns] group will be updated. This type of installation is used, for example, when delivering hotfix updates!

And how can I automatically delete records that are not in the data package? Let's say I have a list of car models and this list has changed completely. I delete old records and add new ones on my development environment. Then I update my data package that stores car models. Now I want my changes to appear in the testing environments but while the new records are added as expected, the old car models are not deleted.

For these purposes, create a sql script and set the database type and installation type. (For examples see DeleteAllSettingsFolderMSSql from UIv2 in configuration tab Sql scripts)

Grigoriy,

Hi Grigoriy,

Is it possible for the sql script to run automatically? or do I need to run it?

Thanks,

Raz

Hello Raz,

 

If I understood your question correctly, we'd suggest running the needed scripts manually but also you can try to create SQL triggers for starting those scripts automatically.

 

Best regards,

Roman

Show all comments
Question

Hi,

 

is it possible to save a tags search ?

Like 0

Like

4 comments

Dear Stefano,

Can you please specify what exactly do you mean? Do you want to search record with/without tag via advanced mode filters?

Dear Angela,

when I select the audience for a bulk email is not possibile to search by tags the available method is  "Add contact folder", but if I just imported a set of contacts and I want to refer to it the only way is add a custom field on which apply a custom filter.

I know that the imported data are tagged and it would be a nice thing if I can use it when I set the audience.

Stefano Bassoli,

As for now there is no such functionality, unfortunately, but I'll inform our R&D team about this issue and suggest them to implement it. Thank you for helping us to make our application better.

As a workaround you can merge all contact with a specific tag into one static folder and add audience from it. 

Best regards,

Angela

Show all comments

With an encrypted string, am I able to limit the number of visible characters? Or is the entire string hidden from view? 

 

Currently the text field that I have setup as an encrypted string hides the string completely. Is there a better to way to perform the function of limiting all characters (e.g. account #) to an asterisk with the exception of the last 4 digits?

Like 0

Like

1 comments

Hello.

The encrypted string hides the entire string.

As a workaround for it I can recommend you to create 2 fields instead and populate just one with the value you need. Then either with the help of the development you can transfer the last 4 digits and a set of asterisks to a different field before saving the entity, or you can use a business process for the same purpose.

Best regards,

Matt

Show all comments

how can I write data received

from an external webservice in

the contact table

using a business process?

 

 

Like 0

Like

4 comments

Hello Stefano,

For such purpose, you need to create a script task. In the Script task you need to get the response from your web-service, deserialize it and set the deserialized values as a business process parameters. After that you will be able to modify your Contact object with the business process parameters.

Please, see an example how you can obtain a response from the web-service and deserialize it in the Script task:

string response = Get<string>("WebService1.Response");

var resCollection = System.Web.Helpers.Json.Decode(response);

Please, note that you need to add the System.Web.Helpers library to the External Assemblies of your package in the Configuration.

Hello Tetiana,

Thank you for your response.

The sample above (you can find it at https://academy.bpmonline.com/documents/technic-bpms/7-12/call-web-serv… a business process that uses "Call web service" action but it's not documented how the "Log in to bpm'online" and "Insert contact bpm'online" is done.

Do you know how to make it?

I believe the mentioned article is not about the business-process "Get contacts from third-party database". It is just an example how to work with the 'Call web-service' element. Therefore, it doesn't cover all process elements.

If you need to get the contacts from the external web-service, the algorithm is the next:

- Create a web-service and specify all its methods and response paramaters. You can use this guide as an example - https://academy.bpmonline.com/documents/technic-bpms/7-12/calling-web-s…

- Create a business process with [Call web-service] element

- Create a script task to parse your response data. 

As an alternative, you can specify all your web-service response parameters, following this guide - https://academy.bpmonline.com/documents/technic-bpms/7-12/setting-parsi…

- Than you need to insert the parsed response parameters to the contact table via [Add data] business process element. Please, see the 'Working with web service response' part of the guide (https://academy.bpmonline.com/documents/technic-bpms/7-12/call-web-serv…). In your case, you need to use [Add data] element instead of the [Pre-configured page]

Hi Tetiana

I found the solution.

  • Create a web-service and specify all its methods and response paramaters:  I captured with "fiddler tool" the json request and the json response for Login to Bpm-online and the json request and the json response for Insert a new contact
  •  Create a business process with [Call web-service] element: using quick setup and the json mentioned above I configured the [Call web-service] element
Show all comments

I'm creating a business process with an activity for our shipping department to ship a product to a customer.  I'm using the Perform Task process element, and I'd like to attach the pick slip that was generated from our accounting system.  

Does the activity exist before the "Perform Task" is executed?  If so, how do I identify the Task ID to attach the document?  

Like 0

Like

4 comments

Perform Task have parameter Task ID (code: CurrentActivityId) After this element you can get this parameter and use this value to attach the file

 

Dear Bob, 

You can add the document to the activity in activity itself. You need to add Document to connected to ("+" button), read it in a separate element in BP and add to activity. https://prnt.sc/l4n83q

Best regards, 

Dennis

The key difference is that I want to attach the document before the Perform Task activity.  One of the inputs to the task (shipping a product) is the document (pack slip).  

I could always create an activity and attach the document to the activity, but then I would need the end user to perform that activity before the rest of the process is completed.  

Bob Walters,

The activity for process task doesn't exist until the process comes to the perform task element. If you use Connected to the document is added as the task is created. However, if you want to attach the document earlier you may use add data element and add activity manually, or use pre created activity, read it and attach the document. 

Show all comments
Question

Is there a way to eliminate the Yes/No prompt that you get when you click the trash can to delete an email?  I would prefer to not have to click 2 things in order to delete an email.

Like 0

Like

1 comments

Dear Scott,

It can't be done with the help of out-of-the-box-tools but theoretically it can be only achieved via development. The schema for the email page that is opened with the email is EmailPageV2. You should inspect the page and find out what line of code is responsible for this button and logic for the confirmation of deletion. After that you should comment confirmation dialog if it is present there and save the schema.

Best regards,

Oscar

Show all comments

what I mean is how to apply the concept of angluar js 1.x directives on custom lookup in bpm, so wirte the code of custom lookup once and add it to multiple pages.

Like 0

Like

2 comments

Use mixin   A good example of mixin allows add multi-currency field

Hello.

The mixin would indeed be a decent way to achieve the desired functionality.

Best regards,

Matt

Show all comments
Question

In the documentation for message start event, it states:  "as well as object or page event. For example, when you click a button or open a right-click menu, a corresponding message is sent to the process of the corresponding object or page."

Can anyone show an example in the product where this is implemented?

Like 0

Like

4 comments

Open [Process library] section list Here you will find many examples

The section folder tree is displayed in the [Process library] section b default. In addition to standard folders, the tree contains folders that are generated automatically, based on the processes currently available in the library.

All standard folder functions are available in the [Process library] section.

By default, the folders in the [Process library] section contain folders that group the processes by the type of their starting event. These folders have unique icons to visually distinguish them from regular folders. These folders cannot be edited.

The folders that group business processes by the type of their starting events are displayed only if corresponding processes exist in the library.

These folders also have automatically generated subordinate folders that further group the processes by their starting event parameters:

In the “Run by object signal” folder, further grouping is done by objects that trigger processes (Fig. 3).

In the “Run by timer” folder, further grouping is done by the timer settings.

Grigoriy,

I was asking about Message Start Event, not Signal.  I have not been able to find any example in the product where it is used.  I am quite comfortable with Signal and Timer start events, and have used message start events in other products.  i would like to understand better how they can be used in bpm'online.

Message Start Event used in many event subprocesses of objects (Practically in every subprocess of an object they are used. Event processing is implemented on them just inside objects). For example, open the Activity object. from Base Package and go to the additional / open process

Thanks

Show all comments

If you put an old case number in the email body while trying to create a new case, instead it will only update the old case. I understand this is standard functionality of bpm'online, but is there a way to work around this if the user actually does want to create a new case and reference an old case when doing so? One idea I have is the user could abbreviate the case such as "case ending in ....15282" instead of typing the entire case. But are there any other suggested practices to get around this function of emails referencing other cases causing the system to NOT create a new case?

Like 0

Like

4 comments

Hello.

The system basic logic also involves checking the status of the case in order to determine whether the email should be linked to the existing case or it should create a new one. You can read about it in the academy article below:

https://academy.bpmonline.com/documents/service-enterprise/7-13/how-con…

You can change case stages to the 'final' stage and all emails that contain the following case number will still create new cases. 

Best regards,

Matt

Thanks Matt. I noticed in the article, it refers to case #s in the subject of the email. However this occurred for us when a case # was in the body of the email. Does that mean there was an issue? It was not expected?

Hello!

It does mention the subject, however the email body as well as the email thread is being parsed for the case number and this is the intentional behavior. We will pass the info to the academy team in order to improve the mentioned article.

Best regards,

Matt

Matt Watts,

 thank you!!

Show all comments