Hi Community,

Any idea how i can disable the tasks being created in case stages?

 

Thanks

 

Like 0

Like

1 comments

Hello Fulgen,

Such a task should appear on the records actions dashboard and in CTI panel as well (see screenshot http://prntscr.com/og1wm1). The easiest way to disable such tasks is to click on their name http://prntscr.com/og1xkw and click "Cancel activity" http://prntscr.com/og1xqv. As a result you will need to specify the result of this activity http://prntscr.com/og1xzb and click "Save".

The second way to disable such tasks is to open a task in the CTI panel and change status to "Canceled" http://prntscr.com/og1yu0. After that you will need to enter some activity results and save changes.

The third way to disable such tasks is to delete them from SysProcessElementToDo table, but it is not a good practice at all since there can be connections between deleted activity and case stages and it can lead to errors when working with the case, from which deleted task was created, in future.

If you want to remove tasks generation from case stage - you need to delete this task from case stages designer and here is an Academy article on how to delete case stage element.

Best regards,

Oscar

Show all comments

Hi Community,

Currently I was able to get data from Order object using Odata calling "OrderCollection". Order is connected to Account object. Now I want to retrieve account details also. Is it posible to achieve this by having one request only from "OrderCollection" no need of calling "OrderCollection" then "AccountCollection". Any idea how can i achieve this?

Like 0

Like

1 comments

Dear Fulgen,

Unfortunately, there is no way to retrieve account data without making a request directly to the AccountCollection. You need firstly get the Id of needed account and afterwards make a request to Account object.

Regards,

Anastasia

Show all comments

Hi Community,

Any idea in Mobile how can I add custom field in Case attachment. This custom field will be a lookup field, user is required to select value from this field before uploading the attachment. 

Like 0

Like

1 comments

Dear Fulgen,

Such business task requires advanced development in the system. We do not have a code snippet for such task, however, the algorithm for the case is the following:

1. You add a lookup filed to the CaseFile object. 

2. Add an attachment detail to the Case page via Mobile application wizard.

3. Create your custom generator for the file attachment functionality. You can take basic MobileFileAndLinksEmbeddedDetailGenerator as a reference and indicate it as a parent object for your custom schema.

4. Indicate this custom generator in the values section of detail insert diff, e.g.:

     "generator": "UsrMyControlGenerator.generateUsrMyControl",
 

5. Add filed to the case file page, make it required. You can make it required on object level, or override save method in the JS schema.

Regards,

Anastasia

Show all comments

Hi,

Please guide me on bpm'online integration with Global Navigation Satellite System (GNSS).

Thank you.

Like 0

Like

1 comments

Dear Gupta,

The application doesn't have such integration out of the box. As far as I understand you are referring to the Cargo logistics marketplace application https://marketplace.bpmonline.com/app/cargo-logistics-powered-bpmonline We suggest to approach the application developer via sales@smv-group.ru.com for further consultations on how the application is integrated with GNSS.

Best regards,

Dean

Show all comments

Hi Community,

I have this scenario that I need to achieve in mobile

- In Case page I have "Department" lookup field, this "Department" lookup field is linked to "Department" object.

- "Department" object has "PrimaryContact" lookup field which is linked to "Contact" object

- Now when creating a case, once the user selects Department, the "Assignee" field should be auto populated based on the Department's PrimaryContact value.



Any idea how can i achieve this? Thanks in Advance

Like 0

Like

3 comments

Dear Fulgen, 

Please try the MUTUALFILTRATION rule in the mobile business rules from the academy page below:

https://academy.bpmonline.com/documents/technic-sdkmob/7-12/business-rules-mobile-application

Best regards, 

Dennis 

Dennis Hudson,

Thank you Dennis



Is there a way I can manipulate using esq and set the result directly to assignee field?

Dear Fulgen,

It’s possible to create a custom business rule for adding and deleting filtration. Please, use the academy article by the link below and check the second example:

https://academy.bpmonline.com/documents/technic-sdkmob/7-12/custom-business-rules-mobile-application

In order to set a query result directly to some field please use the function set(). Please feel free to read about the function in the beginning of the page from the article by the link above. Also it possible to use esq to manipulate data. Please find code example below. (Example 2)

 In order to apply the code create an empty module and insert the code to the module. Then use mobile wizard to create a replacing module of manifest and add the name of your module to attribute “PageExtensions” of corresponding page section. Please find code example below (in my case it’s section Activity, example 1).

Example 1:

{

                "SyncOptions": {

                                "SysSettingsImportConfig": [

                                                "DefaultMessageLanguage"

                                ],

                                "ModelDataImportConfig": [

                                                {

                                                                "Name": "Contact",

                                                                "SyncColumns": [

                                                                                "City"

                                                                ]

                                                },

                                                {

                                                                "Name": "City",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "SysLanguage",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "Activity",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "ActivityPriority",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "ActivityType",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "ActivityCategory",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "ActivityStatus",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "CallDirection",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "ActivityParticipant",

                                                                "SyncColumns": [

                                                                                "Activity",

                                                                                "Participant"

                                                                ]

                                                },

                                                {

                                                                "Name": "ActivityParticipantRole",

                                                                "SyncColumns": []

                                                },

                                                {

                                                                "Name": "ParticipantResponse",

                                                                "SyncColumns": []

                                                }

                                ]

                },

                "Modules": {},

                "Models": {

                                "Contact": {

                                                "RequiredModels": [

                                                                "Contact",

                                                                "City",

                                                                "SysLanguage"

                                                ],

                                                "ModelExtensions": [],

                                                "PagesExtensions": [

                                                                "MobileContactGridPageSettingsDefaultWorkplace"

                                                ]

                                },

                                "Activity": {

                                                "RequiredModels": [

                                                                "Activity",

                                                                "ActivityPriority",

                                                                "ActivityType",

                                                                "ActivityCategory",

                                                                "ActivityStatus",

                                                                "CallDirection",

                                                                "ActivityParticipant",

                                                                "Contact",

                                                                "ActivityParticipantRole",

                                                                "ParticipantResponse"

                                                ],

                                                "ModelExtensions": [],

                                                "PagesExtensions": [

                                                                "MobileActivityRecordPageSettingsDefaultWorkplace",

                                                                "UsrMobile1"(my module)

                                                ]

                                }

                }

}

Example 2:

Terrasoft.sdk.Model.addBusinessRule("Activity", {

    name: "ActivityResultByAllowedResultFilterRule",

    position: 1,

    ruleType: Terrasoft.RuleTypes.Custom,

    triggeredByColumns: ["Result"],

    events: [Terrasoft.BusinessRuleEvents.ValueChanged, Terrasoft.BusinessRuleEvents.Load],

    executeFn: function (record, rule, column, customData, callbackConfig) {

        var store = Ext.create('Terrasoft.store.BaseStore', {

    model: 'ActivityResult'

                                });

                var queryConfig = Ext.create('Terrasoft.QueryConfig', {

    columns: ['Id'],

    modelName: 'ActivityResult'

                                                });

                store.loadPage(1, {

    queryConfig: queryConfig,

    filters: Ext.create('Terrasoft.Filter', {

        property: 'Id',

        value: '6CBD22D4-F36B-1410-5E98-00155D043204'

                }),

            callback: function (records, operation, success) {

                var loadedRecord = records[0];

                var allowedResult = record.get("AllowedResult");

                var filterName = "ActivityResultByAllowedResultFilter";

                if (!Ext.isEmpty(allowedResult)) {

                    var allowedResultIds = Ext.JSON.decode(allowedResult, true);

                    var resultIdsAreCorrect = true;

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

                        var item = allowedResultIds[i];

                        if (!Terrasoft.util.isGuid(item)) {

                            resultIdsAreCorrect = false;

                            break;

                        }

                    }

                    allowedResultIds.push(loadedRecord.get("Id").toUpperCase());

                    if (resultIdsAreCorrect) {

                        var filter = Ext.create("Terrasoft.Filter", {

                            name: filterName,

                            property: "Id",

                            funcType: Terrasoft.FilterFunctions.In,

                            funcArgs: allowedResultIds

                        });

                        record.changeProperty("Result", {

                            addFilter: filter

                        });

 

                    }

                    else {

                        record.changeProperty("Result", {

                            removeFilter: filterName

                        });

                    }

                } else {

                    record.changeProperty("Result", {

                        removeFilter: filterName

                    });

                }

                Ext.callback(callbackConfig.success, callbackConfig.scope, [true]);

            },

            scope: this

        });

    }

});

 

Best regards,

Norton

 

Show all comments

Currently in the case section, actual response time gets filled in automatically when the case moves to in progress. Similarly, actual resolution time gets filled in automatically when the stage is resolved. They INCLUDE weekends and holidays right now, so if a case gets created on a Saturday, it looks like the actual response time was two days since our office is closed until Monday.

Is there a way to exclude non working hours and have those fields only calculate based on business hours?

Like 1

Like

4 comments

Hello Mitch,

To achieve your target you need to use "Working days" value for "Response/Resolution time unit" in "Services" section. Here are Academy references that describe how to set those values properly here, here and here.

Best regards,

Oscar

Oscar Dylan,

Thank you Oscar, I may not have explained my problem very well. I am looking for a metric that is 'actual response time' minus 'case registration date'. I want to show the difference between those two columns as Days:Hours. 

I understand I need to either set up a metric in the section wizard, or calculate the metric using a business process. 

For example, if a case is registered on a Friday afternoon, and gets put 'in progress' on a Monday morning, my metric should say a couple hours instead of a couple days.

I will continue searching for a solution, any advice would be appreciated! Thanks!

 

Mitch Kaschub,

Got it. In this case I would advise you to create a business process like on the screenshot http://prntscr.com/ofit1g. It is being triggered upon status change to "In progress" and reads this case record in "Read modified case" element. The main idea is in conditional flows of a process:

1) "Case was created on a Friday afternoon?" flow should check if the incident was created on a Friday afternoon and should contain this formula

DayOfWeek([#Read modified case.First item of resulting collection.Created on#]) == 5 && Time([#Read modified case.First item of resulting collection.Created on#]) >= [#Time value.12:00#]

The process will go to a next step if it is true and if it is not - it will be terminated and base logic will work for this case record.

2) "Case status was changed on Monday?" - here we need to check if the status of this incident was changed on Monday. It can be done with the help of the next formula:

DayOfWeek([#Read modified case.First item of resulting collection.Modified on#]) == 1

And if it is true the process will go to its final stage of actual response/resolution time modification, but if it is false - the process will be terminated. The last process element modifies "Actual resolution time" and "Actual response time" columns and we need to use following formulas, for example:

[#System variable.Current Time and Date#].AddHours(3) - for actual resolution time

[#System variable.Current Time and Date#].AddHours(1) - for actual response time

You can also modify this process based on your needs, but the main logic here is to use date/time functions and modify needed columns in such a way.

Best regards,

Oscar

This is fantastic! Thank you so much Oscar Dylan!

 

Show all comments

Hi Community,

Any idea how can i disable all tasks and notification created during lead stages?

Thanks

Like 0

Like

1 comments

Dear Fulgen,

There are a couple of processes that can create the reminders and notifications. They are: 'Lead qualification 7.8.0', 'Lead distribution 7.8.0', 'Handoff to sales 7.8.0' and 'Awaiting sale' 

All these processes are sub-processes of the parent process 'Lead management 7.8.0'

There are 2 options. You can either deactivate the parent process that runs all the sub-processes or edit all sub-processes so that the would not create any activities and reminders.

Best regards,

Dean

 

Show all comments

I'm trying to have an email process element say the case number in the body. My challenge is I want the PortalMessage object to trigger start the process. If I read all columns of the Portal Message record, Case number is not one of them. 

Is there a way to add a column for case number to the Portal Message object? How do you connect it?

Like 0

Like

2 comments

Dear Mitch, 

The column connecting Portal Message to case already exists. The column is called Object Instance. You can read a case out of the portal message like that (http://prntscr.com/ocum1y)

Best regards,

Dennis 

Dennis Hudson,

That worked perfect. Thanks!

Show all comments

Hi Community,

I have a 2 workflow in case page, the first workflow will show if type is incident, the second workflow will show if type is complain.

Now here is my scenario

1. When i create a case, then select type incident the first workflow is showing - correct

2. I change the value of type from incident to complain, the workflow also changes from first workflow to second workflow - correct

But when I change again the value of type from complain to incident, the workflow is not changing anymore, until such time you reload the page. Any idea how to fix this issue?

 

 

 

Like 0

Like

1 comments

Hello Fulgen,

This is an out-of-the-box behavior of the application and we've created a problem to our R&D team so they could fix it in one of future versions of the application. This is a very interesting problem and thank you for reporting it to us. Currently we assume that it cannot be changed sine it is a hard coded behavior of the application in base schemas and fix needs to be applied by our R&D team. Once this fix is applied - we will notify all our users in Academy release notes that can be accessed here.

Thank you for helping us to make our application better!

Best regards,

Oscar

Show all comments

Hi Community,

Any idea how can i enable the status field in mobile case page. I already tried to modify the MobileCaseRecordPageSettingsDefaultWorkplace file and add enable = true under Status but still it is disabled.

 

 

Like 0

Like

6 comments

Dear Fulgen,

You do not have to modify MobileCaseRecordPageSettingsDefaultWorkplace schema. The reading mode is set up in MobileCaseModuleConfig schema. You need to modify the readOnly default value to false to make the status field editable http://prntscr.com/oby661

Best regards,

Dean

Dean Parrett,

Thanks Dean,



I am now trying to create a custom config file for mobile case which uses 

MobileCaseModuleConfig as parent in order for me to modify the readOnly property of status field, but I am getting error "Substitution of modules is not allowed".

 

Dear Fulgen,

It seems like you are trying to replace the module. It is no longer possible to do in the system.. In order to change an out-of-the-box module, please create your own module and connect it to the place where the out-of-the-box module was connected in order to force the system to use the new module instead of the old one. 

Best regards,

Dean

Dean Parrett,

Thanks Dean,

I have already created my custom usrmobilecasemoduleconfig inside this i have already set the readonly property of status field to false. In MobileApplicationManifestDefaultWorkplace i have already added the usrmobilecasemoduleconfig as part of PagesExtensions, but still the status field is disabled.



Dear Fulgen,

Have you tried to synchronize with the mobile application after schema modifications? I've modified the property so now my status can be changed. http://prntscr.com/obz6kahttp://prntscr.com/obz6ok

Dean

Dean Parrett,

Hi Dean,



After synchronize still it did not work. What I did, I compiled first the configuration the after compiling I synchronize the mobile. Now the changes I did for enabling the status field for case page is already working on mobile.



Thank you so much Dean

Show all comments