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

Similar to excel, is it possible to sort multiple columns in the list view of bpm? For example, we would like to be able to sort cases by registration date first, then we would like to sort by priority and within the records in the same priority, the records should still be sorted with the most recent registration dates at the top. 

Like 0

Like

2 comments

The only way to do it is to create another column with the sort order you want that is updated by scripting or process, then sort on it.

https://community.bpmonline.com/ideas/sort-sections-based-multiple-columns

Dear Mitch,

This idea has been already accepted by our R&D team and will be available in the future application versions.

Best regards,

Dean

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

7 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);
  });

 

Show all comments

Hi there,

 

I'm trying to create a business process that sends an email with all the order's attachments.

 

Would love to know how should it be done.

 

Many thanks,

Oren

Like 0

Like

2 comments

Hello Oren, 



The mentioned functionality can be implemented in business process using a script task element and creating a correct script for it. 



For example, here is the script which will copy all attachments from lead to opportunity:



var userConnection = Get<UserConnection>("UserConnection");

Guid fromID = Get<Guid>("fromId");

Guid toID = Get<Guid>("toId");

string sql =String.Format("INSERT INTO OpportunityFile (Name, Data, TypeId, LockedById, LockedOn, Version, OpportunityId) SELECT Name, Data, TypeId, LockedById, LockedOn, Version, '{0}' FROM FileLead WHERE LeadId = '{1}'", toID, fromID); 

CustomQuery myQuery = new CustomQuery(userConnection);

myQuery.SqlText = sql;

using (DBExecutor dbExecutor = userConnection.EnsureDBConnection())

{

    dbExecutor.CommandTimeout = 0;

    myQuery.Execute();

}

return true;



You may use this script as example and create a new one with the needed functionality upon it. 



Best regards, 

Roman

Roman Brown,

Hi Roman,

is there a way to achieve such functionality by using pure workflow functionality with Script Tasks?

I have created a Lookup with nested lookup to document attachments. I want to use this attachment to add it to an email through a workflow. Is there any way to add email attachments with workflow steps without the Script Task?

Show all comments

I created a business process.

Firstly, I add a signal when a record was deleted.

Then, I read the data of that record.

Then, I read all record which was created after the deleted record.

Last, I modify the record on the previous step.

But When I active the business and do testing, I deleted a record but other records were not modified.

Can someone help me?

 

 

 

 

 

Like 0

Like

2 comments

Dear Nghiêm



Unfortunately, there is no possibility of using the information deleted to trigger the business process signal.  

This is the known issue when the process created upon deleting some object cannot use the information from the deleted object in future. 



We already have a suggestion registered for our R&D team to add the functionality which allows you to work with the deleted data in business process. 



Best regards, 

Roman. 

Hi Roman,

Thanks for your answer.

In my picture, I forget to change "Which event should trigger the signal?" to "Record deleted", but you get my issue exactly. 

Best Regards,

 

Show all comments

How to display data on the BPM Mobile without filter in early?

So, when i opening the app it's directly showing data.

 

 

Like 0

Like

5 comments

Dear Ahmad,

Starting from the version 7.14.0 you can see only recently opened records in the sections. That is why you cannot see them at once when opening the section for the first time. After surfing through the section and opening the records, they will start populating the section once you enter it later. If you want to disable this functionality, you need to add this part of the code to the MobileApplicationManifestDefaultWorkplace schema

"Models": {

      "Case": {

          "CacheConfig":

              { "Disable": true

         }

http://prntscr.com/pcswp0

Best regards,

Dean

 

Dean Parrett,

I'm already add this code on the schema, but nothing different and still not showing data.

Dear Ahamd,

I'm so sorry I did not clarify

In this part of the code http://prntscr.com/pctsw6 I've disabled the caching functionality for Cases section. Please make sure to do it for your Passenger section. Also, make sure the system setting 'Mobile application section list whose data is displayed through search results only' does not include the section as well. To make sure it works properly you can set the default value for it as '0' https://prnt.sc/oao1tn

Best regards,

Dean

Dean Parrett

Thank you dean!! work like a charm!

Dear Dean,

It is possible to disable feature "Recently Viewed" on BPM Mobile ? 

Show all comments

I want to use Auto Increment Numbering in ContactMiniPage. I have earlier implemented for Contact edit page but, for Adding a contact I have a Contact Mini Page so I tried below same code in that:

 

onEntityInitialized: function() {

                this.showInformationDialog("on Entity initialization");

                // onEntityInitialized method parent realization is called.

                this.callParent(arguments);

                // The code is generated only in case we create a new element or a copy of the existing element.

                if (this.isAddMode()) {

                    this.showInformationDialog("inside add or copy");

                    //  Call of the Terrasoft.BasePageV2.getIncrementCode base method, that generates the number 

                    // according to the previously set mask. 

                    this.getIncrementCode(function(response) {

                        // The generated number is stored in [Code] column.

                        this.set("UsrPatientID", response);

                    });

                }

            }

 

 

But, I am getting an error like:   this.getIncrementCode is not a function.

 

Please advise.

Like 0

Like

1 comments

The getIncrementCode method does not exist in the mini page. You can try to add it on your own. I would do that in the following way. 

define("AccountMiniPage", ["AccountMiniPageResources", "AddressHelperV2"],

    function() {

        return {

            entitySchemaName: "Account",

            details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,

            messages: {},

            mixins: {},

            methods: {

                getIncrementCode: function(callback, scope) {

                    var data = {

                        sysSettingName: this.entitySchemaName + this.getIncrementNumberSuffix(),

                        sysSettingMaskName: this.entitySchemaName + this.getIncrementMaskSuffix()

                    };

                    var config = {

                        serviceName: "SysSettingsService",

                        methodName: "GetIncrementValueVsMask",

                        data: data

                    };

                    this.callService(config, function(response) {

                        callback.call(this, response.GetIncrementValueVsMaskResult);

                    }, scope || this);

                },

                getIncrementNumberSuffix: function() {

                    return "LastNumber";

                },

                getIncrementMaskSuffix: function() {

                    return "CodeMask";

                },

                testMethod: function(){

                    debugger;

                    this.getIncrementCode(function(response) {

                        debugger;

                    });

                },

                onEntityInitialized: function() {

                    this.callParent(arguments);

                    this.testMethod();

                }

            },

            diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/

        };

    });

Show all comments

There is a difference between incoming and outgoing emails in the Communication Panel

But my question is if there is a parameter which separates these E-mails on the Activity object?

I can't seem to find a parameter for this.

Calls has the Direction parameter.

Activities lack this parameter

Should there be one?

 

2 comments

Dear Julius,

This option is available. If you are talking about business process, you should use Message type lookup to select the required parameter http://prntscr.com/pbnhhm This column can also be found in the activity object http://prntscr.com/pbni9r&nbsp;

Note, if you try to build the filter in the section based on this column - you will not see any activities with the Email type due to the application logic. http://prntscr.com/pbnio9

Best regards,

Dean

Dean Parrett,

There it is! Thank you so much!

Show all comments