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

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

How could I customized the Call action in the action panel (Lead) to be able to select a date the call was completed?

Like 0

Like

1 comments

I would create a replacing client module for the CallMessagePublisherPage module with the code specified below. 

http://prntscr.com/pk8yt6

define("CallMessagePublisherPage", ["ConfigurationConstants", "LookupQuickAddMixin",

        "css!CallMessagePublisherModule"],

    function(ConfigurationConstants) {

        return {

            entitySchemaName: "Activity",

            mixins: {},

            attributes: {},

            methods: {},

            diff: /**SCHEMA_DIFF*/[

                {

                    "operation": "insert",

                    "parentName": "MainGridLayout",

                    "propertyName": "items",

                    "name": "StartDate",

                    "values": {

                        "bindTo": "StartDate",

                        "layout": {"column": 0, "row": 2, "colSpan": 24}

                    }

                },

                {

                    "operation": "insert",

                    "parentName": "MainGridLayout",

                    "propertyName": "items",

                    "name": "DueDate",

                    "values": {

                        "bindTo": "DueDate",

                        "layout": {"column": 0, "row": 3, "colSpan": 24},

                    }

                }

            ]/**SCHEMA_DIFF*/

        };

    }

);

 

Show all comments

Hi,

I'm using Orders and Order Items section with a 1:N relationship. On the Order Item I maintain a re-order date for that specific item. When the Current Date equals the Re-Order Date I want to send emails to customers for all the records where this condition applies.

The email should contain Order Item details but also information from the Parent Order, the associated Account and the Contact associated with the Order.

Below is the workflow as I have it so far. I'm unsure how to read the associated data from the Orders, Account and Contacts related to the initial collection of records of Order Items and then how to use all of it to send one email per Order to the Primary Email of the Account and Cc to the contact on the Order. The email body should include the Product Name from Order Item, Order Number and Date. 

Thanks for your help.

 

 

 

 

 

  

 

 

Like 0

Like

2 comments

Unfortunately, it's not possible to send an email to a collection of users in a business process. The functionality is planned by the bpm'online development team.

Ad for now, please try to check the marketing campaigns and trigger mass mailings functionality. It might help.

https://academy.bpmonline.com/documents/marketing/7-15/campaigns-section#HT_section_campaigns

https://academy.bpmonline.com/documents/marketing/7-15/email-section#HT_section_email

One option I just made use of is Tags.  You can read an object, with or without a tag, then either send the email or tag the object and send the email, then delete the tag and cycle around, or just cycle around.

Let's say you have not tagged anything yet:

1. Read the first item from an object where a tag does not exist, and it meets your other filter criteria.  The Tag needs to exist as an option, so you would need to manually create the tag, or tag a record once (so the tag exists) and untag it.

2. XOR condition that the ID from step 1 is !=Guid.Empty.  Default flow is to end or go somewhere else.

3. Tag that record (insert a section record tag, for example Contact Section Record Tag).  This will denote that the object has the tag and will not be read again in step 1.

4. Send the email.

(You could probably switch steps 3 and 4 as desired)

5. Cycle back around to step 1 and read the next item where the tag does not exist.

OR you can do the opposite, where in step 1 you are searching for records that are already tagged, then you later delete the tag before cycling back around to search again.

Hope this helps!

Chris

 

Show all comments
Question

Hi,

How do we enable hybrid mode on Mobile? The system setting "Mobile application operation mode" allows only two options - "Online" and "Offline".

Thanks in advance...

Like 0

Like

1 comments

Hello,

Hybrid mode cannot be set manually. It is automatically enabled if the Internet connection is lost and you are using "Online" operation mode. It is also described in the Academy article here.

Please also note that hybrid mode is not present for bpm'online application versions that are less than 7.14.0.

Best regards,

Oscar

Show all comments

Hello,

I have developed one service which inserts contact and contact-address from the third party to bpm'online. I have written below code to add contact and its Address simultaneously:

var insertContactQuery = new InsertQuery()

{

                    // Root schema name.

                    RootSchemaName = "Contact",

                    OperationType = QueryOperationType.Insert,

                    // New column values.

                    ColumnValues = new ColumnValues()

                    {

                        // Key-value collection.

                        Items = new Dictionary()

                                 {

                                     {

                                         "Account",

                                         new ColumnExpression()

                                         {

                                             ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                             ColumnPath = "Account",

                                             Parameter = new Terrasoft.Nui.ServiceModel.DataContract.Parameter()

                                             {

                                                 Value = item.AccountId,

                                                 DataValueType = DataValueType.Lookup

                                             }

                                         }

                                     },

                                     {

                                         "Name",

                                         new ColumnExpression()

                                         {

                                             ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                             ColumnPath = "Name",

                                             Parameter = new Terrasoft.Nui.ServiceModel.DataContract.Parameter()

                                             {

                                                 Value = item.StoreContactFirstName + " " + item.StoreContactLastName,

                                                 DataValueType = DataValueType.Text

                                             }

                                         }

                                     },

                                     {

                                         "MobilePhone",

                                         new ColumnExpression()

                                         {

                                             ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                             ColumnPath = "MobilePhone",

                                             Parameter = new Terrasoft.Nui.ServiceModel.DataContract.Parameter()

                                             {

                                                 Value = item.StorePhoneNumber,

                                                 DataValueType = DataValueType.Text

                                             }

                                         }

                                     },

                                     {

                                         "ContactAddress",

                                         new ColumnExpression()

                                         {

                                             ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                             ColumnPath = "Address",

                                             Parameter = new Terrasoft.Nui.ServiceModel.DataContract.Parameter()

                                             {

                                                 Value = item.StoreStreetAddress,

                                                 DataValueType = DataValueType.Text

                                             }

                                         }

                                     },

                                     {

                                         "ContactCity",

                                         new ColumnExpression()

                                         {

                                             ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                             ColumnPath = "City",

                                             Parameter = new Terrasoft.Nui.ServiceModel.DataContract.Parameter()

                                             {

                                                 Value = item.StoreCityName,

                                                 DataValueType = DataValueType.Text

                                             }

                                         }

                                     },

                                     {

                                         "ContactZip",

                                         new ColumnExpression()

                                         {

                                             ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                             ColumnPath = "Zip",

                                             Parameter = new Terrasoft.Nui.ServiceModel.DataContract.Parameter()

                                             {

                                                 Value = item.StoreZipCode,

                                                 DataValueType = DataValueType.Text

                                             }

                                         }

                                     }

                                 }

                    }

                };

am I doing something wrong? Please guide.

Like 0

Like

4 comments

Dear Riddhi,

Unfortunately, it is not possible to add data to the “Contact” and “ContactAddress” tables simultaneously using the approach that was described early. However, we can offer two ways solving the issue:

1. In order to add data via DataService please do the following:

-Create custom columns in the “Contact” object for storing the corresponding address values.

-Create a business process that will take the values from these columns and add them to the corresponding columns from the “ContactAddress” table.

Please note that we do not recommend using DataService for adding data to the database.

2. Create a web service for adding data. This approach is recommended for solving such types of the issues.

Best regards,

Norton

Norton Lingard,

Thanks, Norton. Can you please provide any reference link or example for adding records with web service? It would be really grateful.

Dear Riddhi,

Please find more information by link below:

https://academy.bpmonline.com/documents/technic-sdk/7-14/how-run-bpmonline-processes-web-service

Best regards,

Norton

Norton Lingard,

Thanks

Show all comments

Hi,

When trying to fill in the profile details, I am trying to provide some information in the details.

But only provide few info and save it and as i have filled in few details, percentage of the profile completion increases but is there way that the profile completion doesn't increases until i provide all the information in the details

Like 0

Like

1 comments

Dear Amritha,

You can change the data population percentage using the 'Data entry compliance' lookup. You can decrease the percentage for some particular parameters so that the user would need to fill more fields to get the completion increased.

Best regards,

Dean

Show all comments

I have this Email template using Lead object as base.

The macro for the Owner Email will not work, but the MobilePhone and other will work perfectly.

Template

Result:

Like 0

Like

1 comments

Dear Julius.

Indeed, such macros doesn't work in the out of the box version of the application. To resolve this issue, you need to perform these steps:

1.Replace Lead object to the Custom package

2. Fill in the value of the column Owner and set it 'Owner' http://prntscr.com/pbotc9

3. Publish the object and compile the system.

Best regards,

Dean

Show all comments

As far as I've been able to determine with my testing, importing City information into a record will simply take the first record in the database by that name, regardless of whether it matches Country and State/Province information also present in the record, and if none are found, will create a City record with blank Country and State/Province fields.

Before I go and duplicate the lengthy business process I wrote to handle these imports more elegantly for every object one might import address information into, I just wanted to confirm:

Is this the expected behaviour, and is there no way in the system to have imports take country and region into account when matching cities, or am I missing something?

Like 0

Like

4 comments

Dear Darian,

Can you please specify what mapping are you using for such import? 

I've imported a lot of Country, State, Cities through Excel successfully.

Angela Reyes,

I'm mapping directly to City, State/province, and Country.  As I said, the imports do function, but the City field doesn't appear to take into account the contents of the other two when matching, which can lead to some rather nonsensical records.  I just wanted to confirm whether or not there's a workaround to that aside from a separate business process for each object type.

Darian Lewis,

If importing directly to "City" object - records will be created successfully if they meet duplicates search while import rules conditions. Correspondent records will be created in state/province and country lookups (but my tests showed that "Country" field value doesn't populate in "State/province" lookup when importing data into "Cities" lookup). Generally you should see new records and new records will be created in related objects. The only data that is not filled in as I said is "Country" field value in "State/province" lookup. I will report this problem to our R&D team so they could modify import process logic so it could also import this field value when importing to cities.

Show all comments

Can we assign multiple objects like leads, contacts to same lookup?

Like 0

Like

1 comments

Hello Nagaraju,

You can create a multi-lookup in the same way as it is created in an out-of-the-box version of the application for "Customer" field on an opportunity edit page (here is the screenshot of this field http://prntscr.com/p5ns1j) and achieve your business task in such a way. The code example can be found in OpportunityPageV2 (in Opportunity package) http://prntscr.com/p5nto6. Please analyze it and create the same logic for needed field.

Best regards,

Oscar

Show all comments