Hi community,

We will integrate SAP in BPM online, In standarad .net applications to start the development we need to install SAP .Net Connector. In BPM online how we can possibly do this?

 

Like 0

Like

2 comments

Dear Fulgen

Unfortunately as for now there is no marketplace or out-of-the-box solution for your task and I will create a problem regarding this issue. As for now you can try integrating using API and here is an Academy article that may be helpful https://academy.bpmonline.com/documents/technic-sdk/7-13/javascript-api….

Best regards,

Oscar

FREREJEAN,

 

Hello,

 

Our R&D team has this problem I've created for them in "Accepted" status, but the logic of SAP entities integration is currently not implemented in the Creatio app. The only way to integrate with 3rd party entities like SAP now is to develop a custom service that will transfer data between your SAP entity and the Creatio app. Here is the link to the Creatio Academy article that describes using OData for 3rd party integrations.

 

I will also inform our R&D team about your question and ask them to increase the priority of the problem registered on their end.

 

Best regards,

Oscar

Show all comments

Hi Community,

 

Is there any existing Excel reports builder for bpm’online Development Guide?

Like 0

Like

1 comments

Dear Fulgen Ninofranco,

Here is the link to a marketplace excel report builder.

https://marketplace.bpmonline.com/app/excel-reports-builder-bpmonline

Unfortunately, we do not have any available documentation for its development. However, if you have any specific development questions concerning application functionality you are welcome to contact the application developer via email bpmonlinelabs@bpmonline.com

Best regards,

Dean

Show all comments

Hi Community,

Do you have any example on how create schema that will calculate response time just like in the cases.

 

Like 0

Like

1 comments

Hi Community,

How to configure the BPM CRM that the third party application can consume it and get data from it.

 

Like 0

Like

1 comments

Hello.

Bpmonline already has endless integration possibilities. You can find more information about that in the academy article and its child articles below:

https://academy.bpmonline.com/documents/technic-sdk/7-13/integration-bp…

Best regards,

Matt

Show all comments

Hi Community,

 

Is there an existing functionality in BPM that will identity all the modified fields.

Like 0

Like

1 comments

Hello.

The best and the simplest way to check that would be a change log. You can read more about it below:

https://academy.bpmonline.com/documents/administration/7-13/change-log-…

https://academy.bpmonline.com/documents/administration/7-13/view-all-ch…

Please note, that the change log has to be enabled for a certain object first.

Best regards,

Matt

Show all comments

Hi Community,

I'am getting this error message when adding new object to "List of Objects Available for portal Users" Lookup in our development system

 

Like 0

Like

1 comments

Dear Fulgen, 

This error occurs because there is a built-in limitation on the amount of objects that can be available for the portal users. You can avoid this limitation only with development. You can examine script 'InsertPortalUserCanReadRightsOracle' in the configuration to understand how to add more objects with the help of development tools. As a workaround you may remove extra objects and replace them with the needed ones in the  'List of objects available for portal users'. 

Also the portal set up will be reworked in 7.13.2 and you would be able to set this up in the section wizard.

https://academy.bpmonline.com/documents/bpmonline-release-notes-7-13-2

Best regards, 

Dennis

Show all comments

Hello all,

How to display Data List in Email Template ? i used bpm ver. 7.12

Thanks

Like 1

Like

8 comments

Dear Vidya,

Since templates are based on HTML you can use HTML coding to form the template as you want. Below you may find more information about tables and lists in HTML:

https://www.w3schools.com/html/html_tables.asp

https://www.w3schools.com/html/html_lists.asp

To add HTML code to your template go to template designer -> HTML code (http://prntscr.com/m1ir8g)

Best regards,

Angela

Dear Angela,

I means how to retrieve looping a data from multiple row data to email template, maybe this picture can describe what i want...

That section show 6 row data, and than i want to show that all data in email template.. and configuration email template :

But the result is only last record showed in email. please advise...

vidya.dharma,

Hello,

We can recommend you to setup a printable with the data from a detail and then send it with the help of a business process. The example of the implementation is described below:

https://community.bpmonline.com/articles/generate-printable-and-send-it…

You can modify the process ,so it meets your requirements.

Best regards,

Matt

Hi everyone,

Vidya question is very important to us... and for most of the cases, a printable it's not the solution. Can you give us some more tips on HTML?

@vidya.dharma - did you find another solution?

Thanks,

Luis

 

 

luis.goncalves@imdigital.pt,

 

You can implement you business task by the means of business process. The idea is to add read data elements, which would retrieve needed data from particular records. Afterwards, use “send email” business element to combine data into email and send it. You can add a button on the section, or action to trigger the process. 

 

Please see the following article. You can use this example to select needed records and pass this info to business process to send email.

 

https://academy.bpmonline.com/documents/technic-sdk/7-13/how-add-section-action-handling-selection-several-records

 

Regards, 

Anastasia

luis.goncalves@imdigital.pt,

One other way, although it's a bit more complicated, is by using a custom macro (https://academy.bpmonline.com/documents/technic-sdk/7-13/adding-macro-h…).

For example, I made this a while back to show a filtered list of products on an order; the HTML is very simple, as it was a demonstration, but that can easily be edited with CSS as necessary.  You can see that 'arguments' is passed the record ID if you link the template to a record; the macro is then called by including [#@Invoke.UsrEmailProducts#] in your template.

namespace Terrasoft.Configuration
{
	using System;
	using Terrasoft;
	using Terrasoft.Common;
	using Terrasoft.Core;
	using Terrasoft.Core.Entities;
	using Terrasoft.Core.DB;
	using Newtonsoft.Json;
 
	public class UsrEmailProducts : IMacrosInvokable
    {
        public UserConnection UserConnection {
            get;
            set;
        }
        public string GetMacrosValue(object arguments) {
        	var sjson = JsonConvert.SerializeObject(arguments);
        	var templ = new {Key = String.Empty, Value = String.Empty};
        	var args = JsonConvert.DeserializeAnonymousType(sjson, templ);
        	var orderId = args.Value;
        	var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "OrderProduct");
            var colCode = esq.AddColumn("Product.Code");
            var colDescription = esq.AddColumn("Product.Name");
            var colQty = esq.AddColumn("Quantity");
            var colSpecs = esq.AddColumn("UsrSpecifications");
            var colColour = esq.AddColumn("UsrColour");
            var OrderFilter = esq.CreateFilterWithParameters(
			    FilterComparisonType.Equal, "Order", orderId);
			var ModifiedFilter = esq.CreateFilterWithParameters(
			    FilterComparisonType.Equal, "UsrModified", true);
            esq.Filters.LogicalOperation = LogicalOperationStrict.And;
            esq.Filters.Add(OrderFilter);
            esq.Filters.Add(ModifiedFilter);
            EntityCollection entities = esq.GetEntityCollection(UserConnection);
            var html = "<table><tr><td>Code</td><td>Description</td><td>Quantity</td><td>Specifications</td><td>Colour</td></tr>";
            foreach (Entity entity in entities) {
            	html += "<tr>";
            	html += "<td>" + entity.GetColumnValue(colCode.Name).ToString() + "</td>";
            	html += "<td>" + entity.GetColumnValue(colDescription.Name).ToString() + "</td>";
            	html += "<td>" + entity.GetColumnValue(colQty.Name).ToString() + "</td>";
            	html += "<td>" + entity.GetColumnValue(colSpecs.Name).ToString() + "</td>";
            	html += "<td>" + entity.GetColumnValue(colColour.Name).ToString() + "</td>";
            	html += "</tr>";
            }
            html += "</table>";
            return html;
        }
    }
}

Edit: All the </> should be proper lt/gt characters, that's just the forum software replacing them.

Hi Darian Lewis,

I'm working together with Luis Gonçalves, and we finally had some time to test your sugestion.

It is actually working perfectly, the table is created in the email in the context of the record ID and there isn't even any need to replace the "</&gt".

Thank you very much.

I've got one more question for you: this works fine if I start an email from the Case and the ID is passed perfectly.

But if I try to reply to an email that was sent by a costumer and the email is linked with that same Case. Then the conection does not work and the recordID is not retrieved. Any idea how I could make the conection between the macro and the case that is linked with the email that I'm replying to?

 

Once again thanks for the help.

Luis

Luis Tinoco Azevedo,

I'm afraid that's more of a back-end BPM thing; to the best of my knowledge, the 'arguments' argument ought to hold the current record, but as I'm not a BPM employee, I don't know what the mechanics behind it are.  It may be that the 'current record' when you're replying to an email is the Activity object representing the email instead of the Case object, but that's just a guess.  I don't know to what extent you're comfortable with the code, but have you tried temporarily returning the contents of the arguments variable (instead of the table) to see what's being passed in?

Show all comments

Hi Community,

Good Day

I have a detail on my edit page which displays the records coming from another object, this records contains some duplicate records. Now I want to group these duplicate records so that only one distinct record will show on the detail list. Is there a way that I can compose my own query lets say "select distinct(code) from product" and display the result as detail list. How can I achieve this?

 

 

Like 0

Like

5 comments

Hello Fulgen,



If I understood you right, the idea is to use the custom entity schema query to get distinct values of detail. Please, check the links below:



https://academy.bpmonline.com/documents/technic-sdk/7-13/creating-detai…



https://academy.bpmonline.com/documents/technic-sdk/7-13/building-paths…



Best regards,

Alex

Alex_Tim,

 

Thanks Alex for your reply, do you have any idea how can i override the existing query of detail and put my own query?

Fulgen Ninofranco,

1. Create a replacing client module for the detail. Or just click on "Detail setup" and then click on "Save". This way the system will create the module in the custom package automatically. 

2. Override the getGridDataESQ method in the module. Please use the code below as an example.

define("OpportunityContactDetailV2", [], function() {

    return {

        entitySchemaName: "OpportunityContact",

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

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

        methods: {

            getGridDataESQ: function() {

                var esq = this.callParent(arguments);

                esq.isDistinct = true;

                return esq;

            }

        }

    };

});

Please note that the "Distinct" property works for all visible columns so you need to hide the columns with different values.

 

Eugene Podkovka,

Hi Eugene, thanks for your reply,

I have alreday added the code on my detail, below is the complete code



define("UsrSchema16Detail", [], function() {

    return {

        entitySchemaName: "InvoiceProduct",

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

        diff: /**SCHEMA_DIFF*/{}/**SCHEMA_DIFF*/,

        methods: {

            getGridDataESQ: function() {

                var esq = this.callParent(arguments);

                esq.isDistinct = true;

                return esq;

            }

        }

    };

});

I already hide the columns with different values in column setup but unfortunately it does not display the unique records.

Hello Fulgen,



Unfortunately, bpmonline has no functionality that you have requested, so you can display distinct records in the detail only via developing some custom functionality.



It seems that code above is right and should work in appropriate way but if you have difficulties with that you should debug the code to understand how it works. https://academy.bpmonline.com/documents/technic-sdk/7-13/client-code-de…



If you have further questions about implementing such functionality, please send a video where it`s clear that the detail isn`t working. Please note, that it`s necessary to demonstrate entire screen and devtools with opened network tab. Also, you should find the request to the server from this detail to make sure that it`s built in right way.



In addition, if you are unable to achieve the task you can contact your account manager to use the paid service and developer will help you to implement the desired detail.



Best regards,

Alex

Show all comments

Dear Team,

                   Here, I currently working fine with any format is attached in a section. But I need to format validation example like only upload (.doc ) format. How to do this functionality?. Please guide me.

Regards,

Sekhar.

Like 0

Like

1 comments

Hello Sekhar,



To achieve it you should check extension when the file uploads. Please note on the "FileDetailV2" client module, more specifically, on methods that are responsible for file uploading. The idea is to create replacing client module where additional upload logic can be put.



In that case you will face with client code debugging:

https://academy.bpmonline.com/documents/technic-sdk/7-13/client-code-de…



Best regards,

Alex

Show all comments