Hi.

Our intention is create a console app (C#) using EntitySchemaQuery  that query an entity (like Account or Contact) and gets its rows to populate a local table. 

We are trying to connect our bpmonline using this example:

source: https://www.bpmonline.cz/bpmonlinesdken/UsingEntitySchemaQuery.html

//////////
// Creating a query instance, adding columns and a data source in the query.
Select selectQuery = new Select(UserConnection)
                    .Column("Id")
                    .Column("Name")
                    .From("Contact");
// Executing a database query and getting the resulting dataset.
using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
{
    using (IDataReader reader = selectQuery.ExecuteReader(dbExecutor))
    {
        while (reader.Read())
        {
            // Handling the query results.
        }
    }
} 

/////////////

The problem is we do not know how to create the connection string (UserConnection) to our cloud services, https://mycompany.bpmonline.com.

 

How to create this UserConnection? Someone has an example or may guide us?

 

 

Like 0

Like

3 comments

Theoretically, it's possible to use bpm'online local .dll-s and create the connection. However, it's very hard and usually pointless. If you need to get data from bpm'online, please create a web service in bpm'online. The service should get the needed data and give it to the requested.

This is how to create a service. 

https://academy.bpmonline.com/documents/technic-sdk/7-14/creating-configuration-service

This is how to log in and call it

https://academy.bpmonline.com/documents/technic-sdk/7-14/executing-odata-queries-using-fiddler

Eugene Podkovka writes:

However, it's very hard and usually pointless.

I don't think it's useless.

I'm trying to achieve the same goal to increase our developers' productivity.

We usually use task script in the process designer to manipulate data using EntitySchemaQuery.

Each time, we have to update the process, run it and check the log or attach visual studio debugger (which is painful) to verify our code.

Imagine if we are able to get a UserConnection instance directly into a standalone app. we can test our functions faster and increase the overall productivity.

 @Eugene Podkovka: can you please help us!

Thank you

Mohamed

Show all comments

Whether or not a System User is Active can be read from System administration object.  However, when the state of Active is changed in System Users, no Signal is caught using Record Modified if the Active flag was changed manually in System Users.  The Signal only triggers a process if the Active status is changed by another process.

How can a process be started when changing the Active status of a System User manually?

Like 0

Like

1 comments

In order to create the functionality please use object "Users/roles (view)" instead of "System administration object" (https://prnt.sc/pj03qp).

Show all comments

Hello

How to find Employee Manager by Process.

 

Regards

Like 0

Like

3 comments

Hi!

You can use read element to find employee record and ther read manager value from it: http://prntscr.com/pi74m7. Then you can use second read data element to find contact of this manager. 

Best regards,

Angela

Hi Angela

Thanks for your reply.

I did read manager of the employee succesfully, as shown below:

https://drive.google.com/open?id=11oYSOU6VcYFTfe93iUZVA2FYV3XX-Ih7

Regarding second read data to find the contact of this manager, I am doing as below, but it does not return manager contact, what should be the correct filter here.

https://drive.google.com/open?id=14aK6QaF4K1eK7ZPKPoXb2cPTCzVw_Ldp

 

Best Regards

Saif

sdeen@isb-me.com,

Use Employee object for second read data (http://prntscr.com/pix585) and then you can take needed contact from it (http://prntscr.com/pix5r3). Since manager is also part of Employee object it cannot find such contact. 

Show all comments

Can I make details records editable based on conditions? For example, records with colA=1 can be modified, but records with colA<>1 cannot.

Like 0

Like

2 comments

Try to add async validators into the edit page linked to the detail. 

Please investigate the asyncValidate in the BaseEntityPage and the asyncValidate method in the AccountPageV2. 

You'll probably need "messages" to get information from the detail main page. 

https://academy.bpmonline.com/documents/technic-sdk/7-14/messages-messages-property

Show all comments

I figured out how to get the link for an attachment, but when I include it in a Send email system action, the link is automatically converted to an attachment, which is undesirable because the attachment is too large.  How do I include a link to an attachment in an email and have it remain text or a hyperlink?

Like 0

Like

2 comments

Dear Janine, 

According to the [Send email] element logic, your hyperlinks to bpm'online attachments will be automatically converted to actual attached files in the email, there is no way you can leave them as text links.

Regards, 

Svetlana

S.Kobizka,

The really annoying part is even if I remove https:// it still converts.  I'll have to put in more space to make it unrecognizable.

Show all comments

Hi Community,

Any idea how can I show records count summary in mobile section list just like in crm (please see screenshot below).

 

Like 0

Like

1 comments

Dear Fulgen,

Such functionality is available starting from the version 7.14.4

Here is the example of the accounts section http://prntscr.com/pg7rwb

More detail are in the release notes:

https://academy.bpmonline.com/documents/bpmonline-release-notes-7-14-4

Best regards,

Dean

Show all comments

When I include an URL for an attachment in an email sent by bpm'online, the URL is converted to  cid: and an attachment is added to the URL.  However, I just want the URL displayed as text or a link to the file.  I tried including a space after https:// so that it would be recognized as an URL, but the same thing happened.  I tried using %252F for the forward slashes, but it wasn't converted back to text.  How do I stop attachment URLs from being converted to attachments when used in email templates and/or Send email actions?

Like 0

Like

1 comments

Dear Janine, 

Bpm'online R&D team has prepared a feature which will be available in the next release 7.15.1 which would allow our users to send emails with a link to attachments without getting them converted to cid format. 

Once the 7.15.1 version is released, please contact bpm'online support team in order to get this feature enabled. 

Kind regards, 

Roman

 

Show all comments

Hi Community,

In mobile application we can show/hide field using business rule but how we can configure that field will only show in edit page and it will be hidden in preview page.

 

Thanks

 

Like 0

Like

1 comments

Hello Fulgen,



Unfortunately, field visibility can not be changed via sdk.

All other preview page parameters can be changed by means of:

Terrasoft.sdk.RecordPage.configureColumn("Account", "primaryColumnSet", "Name", {

customPreviewConfig: {

}

})

In your case you can try to create your CardViewGenerator:

1) Create new schema of "module" type with the name UsrMobileCardViewGenerator

2) Add this code inside:

Ext.define("Terrasoft.configuration.UsrMobileCardViewGenerator", {

extend: "Terrasoft.ViewGeneration.CardViewGenerator",

generateColumnItems: function(columnSetConfig) {

var columnItems = this.callParent(arguments);

if (this.getModelName() === "Account" && this.getMode() === Terrasoft.CardViewModes.Preview) {

var newItems = [];

for (var i = 0, ln = columnItems.length; i < ln; i++) {

var columnItem = columnItems[i];

if (columnItem.name !== "Name") {

newItems.push(columnItem);

}

}

return newItems;

} else 

return columnItems;

}

}

});

Terrasoft.DefaultCardViewGeneratorClassName = "Terrasoft.configuration.UsrMobileCardViewGenerator";

3) Then add this schema into Manifest of your section:

"Models": {

"Account": {

"PagesExtensions": [

"UsrMobileCardViewGenerator"

]

}

}

Show all comments

Hi Community,

In mobile application I am getting this error "Schema CaseFile is not found" when user of type "Portal User" is previweing the attachement in Case.

Any idea how can I configure this for user of type "Portal User"? By the way for user of type "Employee" attachment preview is working fine.

 

Like 0

Like

5 comments

Dear Fulgen,

As far as I understand you are using the marketplace application. We suggest you to approach the application developer directly via bpmonlinelabs@bpmonline.com for further consultations.

 

Best regards,

Dean

Dean Parrett,

Thanks for your reply Dean

I am not using using marketplace application, I am referring to the OOB attachments in Case (Please see screenshot below). Once you click on the attachment it will allow you to preview the attachment. This is working fine for users of type "Employee" but for users of type "Portal user" i'm getting this error "Schema CaseFile is not found" is there any configuration i need to set up? I already check CaseFie object, "Portal Users" has already access rights on it but I am still getting this error. 

Dear Fulgen,

The only suggestion we have is to debug the preview finctionality using mobile application emulator, analyze the functionality logic and implement it for portal users, since the out of the box version of the application doesn't allow portal users to use mobile app.Unfortauntely, we do not have any solution examples for this reason.



Best regards,

Dean

Dean Parrett,

Thanks Dean,

I tried to debug the preview functionality using mobile application. Both users of type 'Employee' and of type 'Portal users' has the same logic.  It is doing  select query in VwSysEntitySchemaInWorkspace object where filter is 'Name' is 'CaseFile'. This query is returning error "Schema CaseFile is not found" for users of type 'Portal Users'. Case File is already added in the List of objects available for portal users but still this error occurs. Is there any other configuration to where I need to add the 'CaseFile' schema  aside from List of objects available for portal users for this to work?

Dear Fulgen,

Since the portal users are not able to access the mobile app by default, we cannot debug the system and tell you exactly how the portal user should preview the files. Developing the mobile application for portal users purposes might be followed by multiple pitfalls. That is why this option is not available in out of the box version and we do not have any examples for the solution.

Best regards,

Dean

Show all comments

How do I get the link to an attachment file using system actions? If I hover over the link to the file in the attachment detail of the record, I get something like https:///0/rest/FileService/GetFile/.  The GUID doesn't match the attachment record ID. How do I get the link or ID of the file from the attachment record to send the link to someone else?

Like 0

Like

8 comments

To achieve your target you need to create a link that is a sum of:

https://<instance>/0/rest/FileService/GetFile/

+

UID value from SysSchema table for the detail from which you try to get file from: OrderFile, InvoiceFile, AccountFile etc

+

ID value from the table which represents this detail.

For example I have a record in OrderFile table (order attachment) with an ID: 2AC7AA00-2E61-4AEC-8BD0-621269731DAA. To complete the link I execute:

SELECT UID FROM SysSchema WHERE Name = 'OrderFile'

and get a value of D75D815B-0B2E-4E33-973A-ED9A43601B44. So my link is:

https://<instance>/0/rest/FileService/GetFile/D75D815B-0B2E-4E33-973A-ED9A43601B44/2AC7AA00-2E61-4AEC-8BD0-621269731DAA

Please note that user that doesn't have active session in https://<instance> won't be able to download the file.

Oscar Dylan,

How do I set the system actions to that I have a process like this:

Janine White,

It is impossible to do using the process on the screenshot. You need to add an auto-generated page where you can specify file name and schema name, after that this process should read this file and schema parameters (there should be several conditional flows for different schema names). Also you need to create a lookup with all schema names so to be able to choose from lookup in this auto-generated page from the first step. Then there should be "Read data" element that reads "Schema" object so to get UID of the schema specified on the auto-generated page that we've added previously. After that the formula element should create a link for the string parameter (using the logic I've described previously) that will be used in the final auto-generated page element where this string parameter value will be placed. Feel free to use our official documentation on business process design to achieve your business task.

Oscar Dylan,

I can read the file name from the attachment record, which is available in a parameter, and I know the attachment section, "bpm'online Environments attachments".  Why would I need to select anything manually?  I know how to set up business processes in general and use Read data elements as I've done that hundreds of times. I just don't understand how to identify the Schema and UID from the attachment record from the instructions above.  When I use the following read data, the UID is returned as zeros, clearly missing. The link in the process ends up being, "https://dev-katerra.bpmonline.com/0/rest/FileService/GetFile/00000000-0…" where "abe00c37-67f4-413c-93a0-1fa4af899bdc" is the Id of the attachment.

Nevermind, I figured out that the UID is in the link for existing files, so, I don't need to look it up.  I'll just copy it from there.

Oscar Dylan,

 There is a way to preview the file in the browser if there is a image? What format is returning the method to the client?

 

this  works to show the attachment in the browser.

var endpoint = "https://"+window.location.hostname+"/0/rest/FileService/GetFile/7661a363-68f6-4c26-879c-0590c22b963a/" + responseCollection.collection.items[0].$Id;
 
 
 
fetch(endpoint)
  //                         vvvv
  .then(response =&gt; response.blob())
  .then(imageBlob =&gt; {
      // Then create a local URL for that image and print it 
      const imageObjectURL = URL.createObjectURL(imageBlob);
      console.log(imageObjectURL);
  });

 

Racheli Gins,

 

It's because these UIds are not stored in the module structure:

If you need this logic to work in classic UI you need to hardcode the values as constants in your code.

Show all comments