What is the correct way to perform the query in JSON to obtain the records that start with the letter "Y"?

The next JSON get the columns GivenName, MiddleName and Surname from "Contact":

{
    "RootSchemaName":"Contact",
    "OperationType":0,
    "Columns":{
        "Items":{
            "GivenName":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"GivenName"
                }
            },
            "MiddleName":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"MiddleName"
                }
            },
            "Surname":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"Surname"
                }
            }
        }
    },
    "AllColumns":1
}

And return all que records from "Contact".

When I apply the filter GivenName = Yxyxyx

{
    "RootSchemaName":"Contact",
    "OperationType":0,
    "Columns":{
        "Items":{
            "GivenName":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"GivenName"
                }
            },
            "MiddleName":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"MiddleName"
                }
            },
            "Surname":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"Surname"
                }
            }
        }
    },
    "AllColumns":1,
    "Filters":{
        "RootSchemaName":"Contact",
        "FilterType":1,
        "ComparisonType":3,
        "LeftExpression":{
            "ExpressionType":0,
            "ColumnPath":"GivenName"
        },
        "RightExpression":{
            "ExpressionType":2,
            "Parameter":{
                "DataValueType":1,
                "Value":"Yxyxyx"
            }
        }
    }
}

Returns all records with the name GivenName equal to "Yxyxyx"

But an error returned when I sent the query GivenName starts with "Y", like this:

{
    "RootSchemaName":"Contact",
    "OperationType":0,
    "Columns":{
        "Items":{
            "GivenName":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"GivenName"
                }
            },
            "MiddleName":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"MiddleName"
                }
            },
            "Surname":{
                "Expression":{
                    "ExpressionType":0,
                    "ColumnPath":"Surname"
                }
            }
        }
    },
    "AllColumns":1,
    "Filters":{
        "RootSchemaName":"Contact",
        "FilterType":1,
        "ComparisonType":16,
        "LeftExpression":{
            "ExpressionType":0,
            "ColumnPath":"GivenName"
        },
        "RightExpression":{
            "ExpressionType":2,
            "Parameter":{
                "DataValueType":1,
                "Value":"Y"
            }
        }
    }
}

The error return is:

{
    "responseStatus": {
        "ErrorCode": "SqlException",
        "Message": "Incorrect syntax near '@P1'.",
        "Errors": []
    },
    "rowsAffected": -1,
    "nextPrcElReady": false,
    "success": false
}

 

And, How do you filter two or more columns?

Like 0

Like

2 comments

Try changing the ComparisonType from:

"ComparisonType":16

To 

ComparisonType":9

9 = STARTS_WITH (16 = "NOT_EXISTS)

https://academy.bpmonline.com/api/jscoreapi/7.12.0/index.html#!/api/Ter…

Thank you.

It worked

Show all comments

Hi Community,

How can i make my detail editable directly on grid without opening another form to edit it?

Thanks

Like 0

Like

2 comments

Hello,

This article will provide the details you need to make the detail editable in the grid itself. https://academy.bpmonline.com/documents/technic-sdk/7-13/adding-detail-…

Ryan

Thanks Ryan, this example is what I am looking for.

Show all comments

Is it possible to search parts of names in lookup fields? If I have a record named 'XYZ 123' and I search for '123', I get no results.

Like 0

Like

2 comments

Hello.

You can use the '%' symbol in order to search for the records using only parts of words. In your case it would be %123.

From our side, we have registered a suggestion for our R&D team in order to enhance the search functionality in the upcoming releases.

Best regards,

Matt

Matt Watts,

Ok, thanks. I see it works only in the window mode though, not in dropdowns.

Show all comments

Hi,

When I am trying to send request from BPM (http://localhost:82) to external web app (https://localhost:58733) via 'call web service' system action I am getting an error:

"system.net.webexception could not establish secure channel for ssl/tls ---> system.security.authentication.authenticationexception the remote certificate is invalid"

What I am doing wrong? 'Call Web Service' system action should work with SSL/TLS without any problem?

Best regards,

Tom

 

Like 0

Like

2 comments

I've used Call Web Service with SSL without issue. That error is a general .NET error that usually relates to issues with the certificate and likely means one of the following is true:

  • The certificate doesn't match the URL.
  • The certificate is self-signed and not added as a trusted certificate.
  • The certificate is expired.
  • The certificate is signed by a root certificate that's not installed on your machine.

If the cert is ok, and since this is a local install, you can try going to the external URL in IE (on the server where Bpm'online is installed), click the lock icon then "View Certificates", then click the button to "Install Certificate" (be sure you select to install on "Local Machine" and not "Current User"

Tom,

Please use this article to troubleshoot the issue https://blogs.msdn.microsoft.com/friis/2017/10/10/troubleshooting-tls-s… and also Ryan is right. The reason is probably in certificate so that's why you need to check it firstly.

Best regards,

Oscar

Show all comments

Hi community!

How are you?

Any example for call a API Rest from c# script in a businessProcess?

 

I have a list of processes to call from a detail, one of them must call an API and process the response but I can not use the "Call Web service" element because the request needs a json structure with many nests and I can not complete it in any other way that is not a script, any suggestions?

King Regards,

 

Ezequiel

Like 0

Like

1 comments



Dear Ezequiel,

Configuring the method for "Call web service" business process parameter please use quick setup:

In this case, for example, if you provide the JSON with a nested element or even with a nested array:

The system will automatically configure correct JSON paths:

Afterward, choosing this method in "Call web service" business process parameter, you will be able to fill in any nested parameter:

The only thing that may be uncomfortable for now is that for the nested array you can fill only the first element.

In case you need to fill a bunch of the array elements please try to use any synchronous C# methods in scrip-task instead, for example, the first answer in this topic may work for you: https://stackoverflow.com/questions/9145667/how-to-post-json-to-a-server-using-c

Regards,

Anastasia

Show all comments

I see that we have in repo a couple of data packages with SysDcmSettings that were probably generated automatically and I'm wondering what's their purpose. My guess is it has something to do with some filtering but I'm not sure. Do you know the answer?

Like 0

Like

3 comments

Dear Carlos,

SysDCMSettings contains setting for section cases. It contains binding to the section, stages of the DCM, filters and default case. In UI it looks like this: http://prntscr.com/lkk1nq

Ok, thank you. So if I have something like this in the Filters column:

[{"columnUId":null}]

and my StageColumnUId has only nulls, it means I can delete those settings? It seems they were created by accident.

Carlos Zaldivar Batista,

Sure, but we recommend you to save those settings before deleting in order to restore it if something goes wrong. 

Show all comments

Hi,

I've configured Azure AD to my BPM. Other external application (web app) uses same Azure AD. I am trying to figure it out, how to do this:

1) Logged (via Azure AD) user on external web app, clicks button which will send request to BPM (to execute some process)

2) BPM should receive request and somehow assign executing process to currently logged user on external web app

Do you know the way to do this? Maybe I should do something like this:

1) Create technical user on BPM

2) Use this technical user credentials to login via BPM AuthService 

3) Send request to BPM (one of sent parameters will be username or email of currently logged user on web app)

4) BPM can somehow assign this username/email to executed process (how to do this?)

Maybe there is some better way to make it work? I saw that on BPM 7.13 there is some OAuth 2.0 integration -> https://academy.bpmonline.com/documents/technic-bpms/7-13/setting-oauth-20-application

Best regards,

Tomasz

Like 0

Like

1 comments

Hello Tomasz,

The idea is to authorize your external web app to bpmonline using user`s credentials. More about authentication by the link: 

https://academy.bpmonline.com/documents/technic-sdk/7-13/choosing-metho…

Afterwards, business processes will run under this user. Other way to run process under certain user are not available due to security reasons.



One more way to implement this is to log in as technical user e.g. Supervisor and include information about target user in request, After that it`s up to you how to process it in business process.

Regards,

Alex

Show all comments

Hi Team,

             Here I created Candidate entry section the records entered by Supervisor. and section have vendors lookup(vendor-1,vendor2,---etc) here i assign vendor to the record for example 

X- Record assign to vendor-1 

Y-Record assign to Vendor-2

My requirement is when ever Vendor-1 is login to Portal only visible X-Record in Candidate Entry Section. How to do this functionality?

Regards,

Sekhar.

 

  

Like 0

Like

5 comments

Hello Sekhar!



You can grant access rights to a group of users or organizational roles in the element itself. So the solution is to grant access to each record based on vendor.  An example is on the picture below. Also, you can change access to records via business processes: https://academy.bpmonline.com/documents/technic-bpms/7-13/change-access…



Best wishes,

Alex

Hi Alex,

           It should not work.Please explain in detail way if possible put the screen shots.

Hi Sekhar,



Could you please provide more detailed explanation of your requirements. Based on the information that you has provided the option with granting access rights to records is a solution. If the solution doesn`t work please specify why



Best wishes,

Alex

Sekhar,

Also, you can find more information about access rights if you check this link:

https://academy.bpmonline.com/documents/base/7-13/access-rights

Alex_Tim,

Thanks Alex we got it

 

Show all comments

Hi;

Where I can find the values of parameters the running process was started with?

 

Regards

Tomek

Like 0

Like

3 comments

Hello.

It is not enabled by default for the sake for performance. However, you can enable process tracing in order to see which values were passed on the every stage of the process. You can read more about it below:

https://academy.bpmonline.com/documents/technic-bpms/7-13/how-trace-pro…

Best regards,

Matt

Matt Watts,



thanks Matt;

I describe a case I have

we run the process in Call Center.

the customer Action Element is open but the connection has been broken.

New conection has been taken by another worker.

So I would like to find the old proces by proces id and input paramenter to close it.

So i would like to query Database looking for parameters for patiqular process

Regards

Tomwek

tomasz.branicki,

Unfortunately it is not possible to get the parameters of the business process that has already started without process tracing checkbox. 

Best regards, 

Dennis

Show all comments

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