detail
Business Process
7.12
studio

Hi community!

How are you?

When i select a row from a detail, appear the business Process list that i can run

 

How can I hide a business process option from the list based on the condition of some field in that row?

King Regards,

Ezequiel

Like 0

Like

1 comments

The menu is bound to the "RunProcessButtonMenuItems" attribute in the "BaseGridDetailV2" module. You can override the getProcessButtonVisible method in the detail module or change the attribute after modifying a value by the mentioned condition. 

Show all comments
7.12
studio

Dear Team,

                  Here I Created one web service. Here my problem is the Web service working fine when already login with credentials. 

 My question:  How to access web service without authentication(without login)?

  Here I attached below my screen shots

 

Like 0

Like

2 comments

Bpm'online - its an asp.net application. Please deploy it on-site and modify the web service for working without authorization using Microsoft documentation. If you need to modify the application files for this, please send a list of the modifications to support@bpmonline.com and the team will apply them in the cloud. 

Please use GeneratedObjectWebFormService as an example. It doesn't require authorization. 

Thank You Eugene.

Show all comments
7.12
studio

Hi;

I run the process from button on editpage

but when i want to move to process page it doesnt work

I do it this way:

this.sandbox.publish("PushHistoryState", {hash: "ProcessCardModuleV2/AutoGeneratedPageV2/377caef9-d9ed-48ee-8458-3106e61dfdc6"});

When i Change the hash to {hash: "IntroPage/StudioIntro"} it work

by the way.

What is the syntax for this when i want to do it from c#

i try Terrasoft.Configuration.MsgChannelUtilities.PostMessage(Get("UserConnection"),"PushHistoryState","{{hash: \"IntroPage/StudioIntro\"}}"); but it dosn't work

 

Regards Tomek

 

Like 0

Like

1 comments

Dear Tomek,

Seems like the provided URL is not correct and does not exist. Please try to use https://webplatform.github.io/docs/apis/location/assign/ using relative or full path to the page. This approach will save browser history like that you're trying to use before.

What about changing the browser location from the back-end (C#) code, of course, this is impossible to do directly, but you can use web-sockets to publish message from C#, subscribe to this message on some page. And if this page will be opened when back-end message will appear, you can change window.location inside the callback function of the javascript subscribe method.

Here the example of the publishing and subscribing described in the comments:

https://community.bpmonline.com/questions/refresh-page-fields-after-pro…

Hope you will find it helpful.

Regards,

Anastasia

Show all comments
Access Rights
7.12
studio

Hi Community,

In the database where is this Access rights lets say of [Product Record] being saved?

 

 

Like 0

Like

1 comments

Dear Fulgen, 

The information about Rights for records of certain object is stored in the Sys<objectname>Right, in your case - SysProductRight. 

Best regards, 

Dennis

Show all comments
tabs manipulation
7.12
studio

Hi community!

I need that instead of navigating the tabs by means of the arrow ->, they are shown in a list below, to be able to see them all together without having to navigate. That is, they are displayed in various rows depending on the amount that exists.

 

Any idea?

King Regards,

Ezequiel

Like 0

Like

2 comments

Hello Ezequiel,

You'll need to add the following CSS:

.ts-tabpanel {
    height: auto;
}

.ts-tabpanel-items {
    overflow: visible;
    white-space: normal;
    margin: 0 !important;
}

.ts-tabpanel-scroll-left {
    display: none;
}

.ts-tabpanel-scroll-right {
    display: none;
}

This will change the tabs to wrap onto new rows if needed. If the display is wide enough it will look like this: 

If not, they will wrap like this:

Hope this helps.

Ryan

Ryan Farley,

Thank you for a very thorough explanation!

Best regards,

Matt

Show all comments
7.12
studio

Is it possible to specify date formatting when using email templates?

Like 0

Like

1 comments

Dear Carlos,

As for now there is no such functionality, 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 use either BP to modify your templarte accordingly to your business task or add macro handler into the template: https://academy.bpmonline.com/documents/technic-sdk/7-13/adding-macro-h…

Show all comments
7.12
studio

Hi;

I check value of field (attribute) on page in onRender method

sometime it work correctly and sometime it show error that this.get("usrStatus") is undifined

here is my code,

            onRender: function() {

                var that = this;

                setTimeout(function() {

                    if (that.get("UsrStatus").value === "22a42a46-1f02-46d4-8a1b-e947631a0671") {

                        that.set("justClosed", true);

                        that.sandbox.publish("UnblockManClosed");

                    }

                });

                this.callParent(arguments);

            }

 

Regards

Tomek

Like 0

Like

4 comments

Try putting the code in onEntityInitialized instead of onRender. With your setTimeout it likely sometimes gets the timing right that the entity is available and other times not. If you put the code in onEntityInitialized the object values will definitely be available.

Ryan Farley,

Thank Ryan;

That may sold muy problem

Maybe have you anny idea when this is on Preconfigured page not base on any entity?

 

Regards

Tomek

Hello Tomasz,

I'm not completely sure, but it looks like it would work the same on a preconfigured page. Looking at PreconfiguredPageV2 it does also define onEntityInitialized. PreconfiguredPage also does inherit BasePageV2 (which inherits BaseEntityPage), so I would assume it would work the same for the preconfigured page.

Ryan

Dear Tomasz,

As advised above by Ryan, please transfer your code to basic onEntityInitialized method. At the moment of its execution page model is already retrieved. onEntityInitialized method is present on PreconfiguredPageV2, since it inherits from BasePageV2, which has the method realization.

If you will have any further questions, please let us know.

Regards,

Anastasia

Show all comments
script task
c#
get current user
7.12
studio

Hi Community,

This code below gets the Guid of the current user in client side code

Terrasoft.SysValue.CURRENT_USER.value

How about in script task, using C# code what is its equivalent?

 

 

Like 0

Like

4 comments

In a script task you have access to UserConnection. This exposes a  CurrentUser property (which provides an object of type SysUserInfo). 

var currentUser = UserConnection.CurrentUser;
var userId = currentUser.Id;
var userName = currentUser.Name;

BTW If this was code in a source code schema/configuration service, you'd need to get the UserConnection via the AppConnection first:

var appConnection = HttpContext.Current.Application["AppConnection"] as AppConnection;
var currentUser = appConnection.SystemUserConnection.CurrentUser;

 

Ryan Farley,

Thanks Ryan,

Is there any documentation about CurrentUser. I want to know everything about its properties and attributes for future use.

Thanks.

Fulgen Ninofranco,

I don't know of any documentation, it is in Terrasoft.Core.dll, however, the SysUserInfo object inherits from the SysAdminUnit object. This object you can see in the configuration. Search for SysAdminUnit in the configuration and you'll see what is available in the SysUserInfo. The SysUserInfo object itself only adds 5 additional properties for TimeZone, PageRowsCounr, Culture, ClientIP, and DateTimeFormatCode.

Dear Fulgen,

Please use the example mentioned by Ryan, it covers the way you work with UserConnection in Script Task. 

var currentUser = UserConnection.CurrentUser;

For more information on all .Net classes used in the system please see this article:

https://academy.bpmonline.com/api/netcoreapi/7.13.0/index.html#GeneralS…

Also, as for examples of UserConnection usage in web services you can check the examples here:

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

 Regards,

Anastasia

Show all comments

Is it possible to create a printable for an entity without a section? I looked into source code of ReportService and it seems it should be possible to generate documents for this kind of entities (either by C# or by calling the service from JavaScript) but I'm unable to define the printable, because the wizard allows me to choose only sections as the template source of data.

What I'm doing now, is creating dummy sections where I copy data from the my normal entities, just for the purpose of defining a printable. I hope there's a better way.

Like 0

Like

1 comments

Dear Carlos,

Indeed, you can create a printable without a section and call it by custom development. However, there is no way to add such printable without a section to the printable lookup. 

Therefore, in order to use printable lookup functionality you need to create a section based on the object. You may hide it from all workplaces, so it won't be in the view, but just exist in the configuration for printable purposes. 

Nevertheless, we are grateful for your comment, as it is a idea for the product improvement, which will be transferred to our developers team for their revision.

Regards, 

Anastasia

Show all comments

Hi Team,

I am implementing the approval in my custom section with three stages in a case as attached. User was able to edit the record field when the approval is in progress. I have made the approval step as required in the stage but no success. Please suggest. I have tried adding a new approval record and approval task in business process and linked the business process in my stage but no success. 

Thanks,

Venkat.

File attachments
Like 0

Like

1 comments

Hello.



The approval itself does not lock the record, it is just a step needed to go to the next stage. Your idea with the access rights element would be the best way to achieve the desired outcome. You can add a change access rights element along with the approval element (you can make both required for the same stage), that will remove edit access rights from all users except from the owner, for example. Then you can add another change access rights element, that will distribute the edit rights to the users, once the approval is received.

 

Best regards,

Matt

Show all comments