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 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

hi,

Please find the below link that explains how to enable/disable fields based on condition in mobile app.

http://agiliztech.com/2019/06/24/agiliztechs-customization-bpmonline-enable-disable-field-mobile-app/

 

Like 0

Like

Share

0 comments
Show all comments

Hi Community,

 

I have this scenario in Mobile, I have a custom page. I added this custom page as detail in case page. I manage to add all the fields of my custom page using Mobile application wizard->page setup but aside from that, I want also to add the attachment of this page, how can i possibly do this, any idea?

Like 0

Like

5 comments

Dear Fulgen,

Could you please confirm if I understood you correctly. You've created an object and based on it you've added the detail on a case page? Now you want to be able to attach the files to this custom detail? Thank you beforehand.

Looking forward to your reply.

Dean

Dean Parrett,

Thanks Dean,



Yes Dean, this is what i meant. How can I possibly achieve this?

Thank you so much. 

Is this detail embedded or standard? I mean, this custom page is placed in case page or it has own list, own preview page, etc?

Alina Kazmirchuk,

Hi Alina,

Yes, this custom page is placed in case page.

Unfortunately, there is no opportunity to attach files to an embedded detail. However attaching the files is possible to a standard detail. So if there are no restrictions to use only embedded detail please use the standard one. Please find more information in the article below.

https://academy.bpmonline.com/documents/technic-sdkmob/7-12/adding-standard-detail-section-mobile-application

Show all comments

Hi Community,

Any idea how we can customize the BPM mobile layout, including background

Like 0

Like

1 comments

Dear Fulgen,

You can apply your custom styles to the mobile application. Styles (CSS) can be changed in the configuration. To do this, use the Terrasoft.writeStyles method. Presumably, an example is available in MobileActivityGridPageV2. 

Here is more about customization possibilities within mobile application in the thread:

https://community.bpmonline.com/questions/customization-capabilities-mobile-plataform

Regards,

Anastasia

Show all comments

Hi Community,

Just like overriding the save button save() and onsave() method in web, how we can do it in bpm mobile?

 

Like 0

Like

3 comments

Dear Fulgen,

The corresponding method for mobile application is onSaveButtonTap(). Also, you can check onDataSavedSuccessfully() method, which executes after data saved.

Regards,

Anastasia

Thank you Anastasia,

Is there any available examples in OOB?

 

Fulgen Ninofranco,

Please take a look at MobileSocialMessageEditPage schema. There you can find the realization of the onSaveButtonTap method.

 

Regards,

Anstasia

Show all comments

Setting up approvals through mobile app needs some customisation where the "approval" fields need to be conditionally hidden/displayed. The below blog explains how to do this.

http://agiliztech.com/2019/06/11/conditionally-hideshow-fields-bpmonline-mobile-app/

Like 0

Like

Share

0 comments
Show all comments

CAn portal user login to mobile application?

Like 0

Like

7 comments

Hello, 

Portal users can login to the mobile app. They would have access to the records and section for which they would have corresponding rights. Also you can create a separate workspace for portal users in mobile application wizard or distribute rights to sections and records for portal users.

The academy page on mobile application wizard below: 

https://academy.bpmonline.com/documents/mobile/7-13/mobile-application-…

Best regards,

Dennis

thanks for the reply . Iam getting an error message while logging as a portal user . Tried two instance (studio and CRM )the error message is same .

 

From: Sethuraghav N ; Sent on: 3/11/2019 11:40:49 AMTo: Bpmonline support ; Cc: Subject: Bpm'online mobile bug report (https://044762-crm-bundle.bpmonline.com/)Model Name: iPhone10,1 Platform: iOS Platform Version: 12.1.4 Resolution: 0x0 IsHybridMode: false UIVersion: UIV2 ApplicationVersion: 7.13.10 ApplicationMajorVersion: 7.13 BackgroundSyncMode: Always ServerUrl: https://044762-crm-bundle.bpmonline.com/ ContactId: 4a778dcf-15af-4bfd-b18c-8ed92354655c CultureName: en-US ApplicationRevision: null WorkplaceCode: DefaultWorkplace ProductInfo: {"ProductName":"bpm'online","ProductEdition":"service enterprise","CustomerId":"321","Version":{"Major":7,"Minor":13,"Build":4,"Revision":638,"MajorRevision":0,"MinorRevision":638}} CurrentDateTime: 2019-03-11T09:39:51.576Z Type: Terrasoft.SyncException Message: An error occurred while synchronizing Stack trace: @sencha-touch-all-debug.js:10397:31 failure@terrasoft-all-combined.js:25030:23 @sencha-touch-all-debug.js:10397:31 failure@terrasoft-all-combined.js:3739:21 @sencha-touch-all-debug.js:10397:31 requestItemFailure@terrasoft-all-combined.js:31616:25 Terrasoft.RequestManager#onRequestFailure@terrasoft-all-combined.js:31428:34 @sencha-touch-all-debug.js:10397:31 terrasoft-all-combined.js:31620:21 @sencha-touch-all-debug.js:10397:31 Terrasoft.core.CancellableOperationManager#finish@terrasoft-all-combined.js:32010:19 Terrasoft.core.mixins.Cancellable#finishCancellableOperation@terrasoft-all-combined.js:1419:49 terrasoft-all-combined.js:31606:38 [nativecode] @sencha-touch-all-debug.js:10397:31 Fn@terrasoft-all-combined.js:31660:27 failure@terrasoft-all-combined.js:31676:23 @sencha-touch-all-debug.js:10397:31 failure@terrasoft-all-combined.js:52784:27 @sencha-touch-all-debug.js:10397:31 terrasoft-all-combined.js:35722:19 FromNative@cordova.js:295:57 nc2@cordova.js:1022:39 Type: Terrasoft.ServerException Message: Server request returned error AdditionalInfo: { "responseText": "Access to non-SSP API is denied for portal users{\"responseStatus\":{\"ErrorCode\":\"SecurityException\",\"Message\":\"Current user does not have sufficient permissions to read values of system setting with code \\\"UseMobileUIV2\\\".\",\"Errors\":[]},\"rowsAffected\":-1,\"nextPrcElReady\":false,\"success\":false}", "statusCode": 403, "statusText": "Forbidden" } Stack trace: Terrasoft.util.Service#getExceptionFromResponse@terrasoft-all-combined.js:5726:45 Terrasoft.nativeApi.ExceptionParser.getException@terrasoft-all-combined…:52836:65 Terrasoft.util.DataServiceUtils#getExceptionFromError@terrasoft-all-combined.js:5771:63 terrasoft-all-combined.js:35711:71 FromNative@cordova.js:295:57 nc2@cordova.js:1022:39 Sent from my iPhone

sethuraghav,

The error says user doesn't have access rights to system settings with code 

UseMobileUIV2. Distribute the rights to the needed users for this setting and it should work. 

Best regards, 

Dennis

Dennis Hudson,

The same error comes after the access is given 

regards,

sethuraghav N

sethuraghav,

Please try to recompile and  resync your application and if it wouldn't work please write to support@bpmonline.com 

Best regards,

Dennis

Hi, I have the same problem, how to fixed it?

Nataliia,

 

Please check if the proper access is given to the portal user so that they're able to read the value of the system setting "UseMobileUIV2". 

Also, please make sure, that the user has the required license and re-sync your application. 

If the issue persists please send the mobile bug report to support@creatio.com



Best regards,

Yurii

Show all comments
Question
Dear



We have an instance of bpmOnline which has a project you have already developed and which we want to see some screens on mobile devices and of course use the modules that bpmOnline already has built-in.

The problem is that we can not develop this same project in mobile mode, and for us it is very important to achieve it. In this case, we have investigated how to activate a bpm business process signal online from an external application and thus be able to insert data through a web service. Next, the situation is plotted.

In particular, our external application (Mobile created in another language), will take the JSON, call the bpm object online and insert this data into the database.

_______________________________________________________-

 

Estimados

Tenemos una instancia de bpmOnline la cual contiene un proyecto ya desarrollado y el cual queremos ver algunas pantallas en dispositivos mobiles y por supuesto utilizar los módulos que bpmOnline ya tiene incorporado.

El problema es que no podemos desarrollar este mismo proyecto en modo Mobile, y para nosotros es muy importante lograr hacerlo. Ante esto hemos estado investigando el como activar una señal de un procesos de negocios de bpmOnline desde una aplicación externa y así poder hacer una inserción de datos mediante un servicio web. A continuación se grafica la situación.

En concreto, seria que nuestra App externa(Mobile creada en otro lenguaje), tomara el JSON, llamara al objeto de bpmOnline e insertara estos datos en la BD.

File attachments
Like 0

Like

1 comments

Hello, 



You can use ProcessEngineService.svc web service for this purposes. Please check the article below: 

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

Best regards,

Dennis

Show all comments

Case

I have a Business Process that does not work on mobile.

In my primary application on site it works OK

Solution

BPM'online application and BPM'online mobile must be set up independently of each other - and this is why your code is not working for the mobile version. You can find more about mobile development on our Academy (https://academy.bpmonline.com/documents/technic-sdkmob/7-12/bpmonline-development-guide).

Regarding Business processes: as for now there is no such functionality - user elements like "auto generated page", "open edit page", "task" do not work in mobile version.

Like 0

Like

Share

0 comments
Show all comments