I have a process including approvals, where I want if the Creator of the object is in the approver role, then the object skips the approval process. How do I use System Actions to get the functional roles of the Creator, which I know how to get using Read data, and determine if any of them are the approver role?

 

 

 

 

 

 

Like 0

Like

4 comments

Dear Janine,

If your approver is a certain role you can create conditional flows to manage the process. Please see my example below:

http://prntscr.com/mqw6gs

1) Read record that must be approved http://prntscr.com/mqw6q0

2) Read user that created this record http://prntscr.com/mqw6ub

3) Count roles that he have (I tested this case for System Administrator role - he does not need to Approve) http://prntscr.com/mqw6xu

4) If the amount of roles is greater than 0 - perform task, if 0 9default flow) - make Approval. http://prntscr.com/mqw70y

Hope it helps!

Best regards,

Angela

Angela Reyes,

Perfect.  Thanks!

What if the current user is not the creator of the record and I specifically want to look up the roles of the Creator?

Angela Reyes,

I was able to get this working by reading the User from System administration object, instead of Users/roles (view).

Show all comments

Is it possible to translate this string, for example by setting it up manually from JavaScript?

Like 0

Like

3 comments

Hello Carlos,

Generally speaking, usually to translate some strings "Translation" section is used. You can read more about it in this article: https://academy.bpmonline.com/documents/base/7-13/how-identify-translat…



Other way to achieve it is to find the resource string in table  SysLocalizableValue and change it`s value directly in the database.



Also you can create a new replacing client module where change the element`s binding to new string. Example of such binding: http://prntscr.com/mqsibp



Best regards,

Alex

Alex_Tim,

Thanks. And what if the recommendation is set up by a formula and looks something like this?

"Number of something: " + [#Read number of something.First item of resulting collection.Number#]

 

Carlos Zaldivar Batista,

You can simply change the formula and save the business process as new version.

If the string is coming from the database you can change it by sql query or via business process element "modify data".

Regards,

Alex 

Show all comments

Hi Community,

How can I change the cell color of the grid in a detail just like this example below on how to change the text and background color of section records

https://academy.bpmonline.com/documents/technic-sdk/7-13/how-highlight-…

Like 0

Like

7 comments

Hello Fulgen,

The idea is to connect your custom css styles to the desired detail. 

Here is the article which is describing it: https://academy.bpmonline.com/documents/technic-sdk/7-13/advanced-setti….



I recommend to test your styles in devtools before adding css to the schema. It is the most effective way to make cells look like you want .



Best regards,

Alex

Thank you alex,

What I need also is to put logic on every record to identify which color it will be. The same as overriding the prepareResponseCollectionItem method in section, It will be like the code below, but I need to apply it on detail records. How can I do that with detail? repareResponseCollectionItem: function(item) {

                // Calling the base method.
                this.callParent(arguments);
                item.customStyle = null;
                // Determining the order status.
                var running = item.get("Status");
                //If the status of the order is "In progress", the record style changes.
                if (running.value === OrderConfigurationConstants.Order.OrderStatus.Running) {
                    item.customStyle = {
                        // The text color is white.
                        "color": "white",
                        // The background color is green.
                        "background": "8ecb60"
                    };
                }
            }

 

Fulgen Ninofranco,

Actually, the grid details are using same method, so you should override it in detail schema. For example, I added this method to my detail  

http://prntscr.com/mpw1qy

and now items where quantity = 1 have red text color http://prntscr.com/mpw48t



Best regards,

Alex

Thank you Alex, overriding this method also works for detail grid.

Do you have any idea how to do this, one of our client requirements is to change only the color of status column, not all the columns in a row?

Hello!



We  have tried to apply this in editable detail. But colors are not changed when record is changed and saved.

Colors are applied only when the page is reopened or refreshed

 

What can we do with that?



Thank you!

Vladimir Sokolov,

The only way I could get that to work was a bit hacky. Add a saveDataRow method to override the existing one and do something like this (using Ext to reapply the styles). The code I used looked something like this (this is a shortened version)

saveDataRow: function(row, callback, scope) {
	// this returns something like { "background-color": "#080808" } etc
	var style = this.getRowStyle(row); 
 
	setTimeout(function() {
		Ext.select("div[id$=item-" + row.get(row.primaryColumnName) + "].grid-row-selected").applyStyles(style);
	}, 1000);
 
	this.mixins.ConfigurationGridUtilities.saveDataRow.apply(this, arguments);
},

The problem is that depending on how long for the row to get actually saved could make this not work. I plan on revisiting this to apply the styles once the update is complete (instead of when the save starts) boy replacing the callback arg passed, but sharing this now so maybe it gets you in the right direction.

Ryan

Show all comments

Hi community,

 

How we can filter the section records in client code

Like 0

Like

1 comments

Hello Fulgen,



To perform some filtration in section via client code you should note on "getFilters" method. Actually, you should create a new replacing client module for your section and override this method. 

The example can be found in "ActivitySectionV2" schema in "NUI" package.



Best regards,

Alex

Show all comments

I created a web service reference in GUI so I can call it from processes. I want to, depending on some settings, call a test version of this web service or a production version. Only their addresses differ. Is it possible to choose the address dynamically?

Like 0

Like

2 comments

Dear Carlos,

You can create two web services in the system, one with test version URL, other with productive version URL.

Create a system setting, based on which you will decide test or production. Other solution is to use an Exclusive Gateway element, which wold determine which pass to choose. Each of the passes would lead to one Web Services Call element. 

The diagram should look somewhat like this:

Regards,

Anastasia

Anastasia Botezat,

Thank you. I hoped that I could avoid adding two web services but if that's the only option then I'll have to do that.

Show all comments

Hello,

 

How can we commit menus which we create in workplace to SVN and how can column configurations in all sections be transfered to SVN also ?

 

Thanks,

Like 0

Like

1 comments

Dear Ayman,

Firstly, all personalized settings like column setup in sections and details are stored in the SysProfileData table. The [key] column stores the name of section/detail for grid setup. ContactId cloumn stores the Id of the user, whom settings belong.

The menus for workplaces and workplaces themselves are stored in the SysModuleInWorkplace and SysWorplace tables respectively. 

In order to transfer these settings you need to bind data to the package, which would be committed to SVN. Please see the following article on how to bind data within the system:

https://academy.bpmonline.com/documents/technic-sdk/7-13/binding-data-p…

Regarads,

Anastasia

Show all comments

How can you copy the Out of Box section page setups to create different views?  For example, I want to have two views of cases depending on if it's an Incident or Service request.  I want to maintain most of the out of box fields (i.e. auto numbering and tab setups) for both and only want to change a couple fields. Also, I want to do this with Contacts and Accounts if there's a different way depending on the section.

Like 0

Like

1 comments

Dear Melanie,

To do that you need to have your account or contact page in "Custom" package (in other words you need to have it customized) and find the schema of the edit page in configuration (System designer->Advanced settings->Configurations). The schema should be named like Account1Page or UsrAccount1Page (Contact1Page/UsrContact1Page). Open the schema and change parent object to "Account edit page" (for accounts) or "Contact edit page" (for contacts) http://prntscr.com/mo3dgw and save the schema. After that go to the section and refresh the page and open a record after that. As a result you will have all your customizations on both edit pages.

Best regards,

Oscar

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

Good day.

I am new to BPM Online(And C#). I just registered a 14 day free account to try it out.

I want to use the sub process to create a case number when a new record is created on a section. Please see the image below:

When the new record is saved the process starts and reads the zone filed from the request record as depicted below:

Upon reading the zone field I then assign the zone filed to the zone process variable using the formular task as depicted below:

I then use the zone process variable to formulate the case number in the code script as depicted below:

string unique_numer =  DateTime.Now.ToString("yyMMddhhmmss");
string  zone_val = Get<Guid>("zone").ToString();
string case_number=(zone_val+"-"+unique_numer)
 
Set("case_number",case_number);
return true;

The challenge I am facing is to get the value of the selected lookup zone field to store the value into zone_val string filed.

How to get the selected value from the zone lookup filed using C# code. The value that I get is a Guid data type and cannot get the value of the lookup.

I need to store the generated CaseNumber to the case_number field in the database as depicted below:

You help will be highly appreciated as I am currently stuck.

 

Like 0

Like

4 comments

Dear Tebogo,

You may create a system setting that will store this number and use it in the future number generation. You can find detailed example here: https://academy.bpmonline.com/documents/technic-sdk/7-13/how-add-auto-n…

Best regards,

Angela

Assuming you want the field name in the Zone Table : 

var uc = Get&lt;UserConnection&gt;("UserConnection");
 
Guid zoneId = Get&lt;Guid&gt;("zone");
 
var esq = new EntitySchemaQuery(uc.EntitySchemaManager.GetInstanceByName("Zone"));
esq.AddColumn("Name");
var entity = esq.GetEntity(uc, zoneId );
string zoneName = entity.GetTypedColumnValue&lt;string&gt;("Name");

 

Angela Reyes,

Thank you very much Angela.

Jerome BERGES,

Thank you very much Jerome, highly appreciate it!

Show all comments

Hi, I create editable detail.

It contain two drop down list one depends on other.

is it posible to filter one based on other value?

 

Regards

Tomek

Like 0

Like

1 comments

Hello tomasz,



It can be achieved via triggering some method for filtering when the field is changing. You will need to create new attribute with dependencies properties where column and method should be specified. For example:

 

"OnColumnNameChange":{
    "dependencies":[
        {
         "columns":["columnName"],
         "methodName":"methodThatTriggersWhenColumnNameChanges"
         }]
}

Also please note on these articles: 

https://community.bpmonline.com/questions/filter-detail

https://community.bpmonline.com/articles/filtering-details-several-fiel…

Show all comments