Hello Community,

I’d like to implement a drawable component on a record page in the mobile application. I’m familiar with using external JavaScript libraries that provide drawing functionality, but I’m unsure how to integrate this into the mobile app. Could someone guide me on how to make this work properly?

Thank you!

Like 0

Like

1 comments

To add an external JavaScript library to the Creatio mobile app, follow these steps:
 

1.Upload the Library to Creatio:

Navigate to the Configuration section in Creatio.
Create a new Resource and upload the JavaScript file.


2.Include the Library in the Mobile Application:

Go to the Mobile Application Wizard.
Open the Mobile Application Manifest.
Add a reference to the uploaded JavaScript file in the manifest.


3.Use the Library in Your Mobile Application:

In your mobile application code, you can now reference and use the functions provided by the external JavaScript library.

Also you can use this addon to add JS scripts globally: https://marketplace.creatio.com/app/experceo-global-jscss-editor-creatio
Go to System Settings -> ExpGlobalJSValue to update the global JavaScript script.

Show all comments

Hi Team,

We are currently working on adding a filter to a custom section within our mobile application. The object has a lookup column named "Community," and our goal is to filter the records such that the "Community" value matches the current user's associated community. The relevant field on the "Contact" object is the "Primary Community."

 

We are familiar with the process of applying filters to mobile app sections by leveraging the out-of-the-box (OOTB) features of Creatio to configure the web page and then merging the generated code into the mobile app page. However, the specific condition involving the current user’s community seems to present a more complex challenge.

We would greatly appreciate any guidance or suggestions you may have for implementing this filter condition efficiently.

Like 0

Like

2 comments

Hello,


Could you tell me if your question is about the Freedom UI or Classic UI section?

Serhii Parfentiev,
Hi Serhii,

Thank you for your response! 

My question is related to the Freedom UI section.

Show all comments

Dear Creatio Community,

I am writing to request guidance regarding the utilization of the @creatio/mobile-common library for extending the Creatio mobile application within the Freedom UI framework. Specifically, I am working with Creatio version 8.2.7 (APK).

While the index.d.ts file for @creatio/mobile-common is available on the official npm repository, I am encountering significant challenges due to the absence of comprehensive documentation and practical, live examples demonstrating its use in the context of Creatio mobile app customization.

My objectives involve leveraging this library to achieve advanced customizations and integrations within the mobile platform.

I would greatly appreciate any assistance in the form of:

  • Comprehensive code examples demonstrating the use of @creatio/mobile-common in real-world scenarios.
  • Detailed explanations of the library's architecture and functionality.
  • Guidance on best practices for integrating custom components with the Creatio mobile platform.
  • Information on how to debug and test code that utilizes the @creatio/mobile-common library.

 

Like 0

Like

1 comments

Hello Pranshu,

Our Academy team is currently working on creating articles that present the full information regarding all the questions mentioned.

Please follow for updates on the Academy site to receive all the answers.

Show all comments

Dear Creatio Community,

I am writing to seek assistance with mobile app development within the Freedom UI environment. I am encountering significant challenges extending the mobile app's functionality, particularly due to the current lack of comprehensive documentation and practical examples.

Specifically, I am facing the following issues:

1. Auto-Numbering Issue on Record Page:

  • I have observed that the auto-numbering functionality within the Creatio mobile app behaves inconsistently.
  • When an auto-numbering field is displayed on a record page, the automatic number generation fails.
  • However, if the auto-numbering field is removed from the record page layout, it functions correctly within the list page.
  • I require guidance on how to resolve this conflict and ensure auto-numbering works consistently across both list and record pages within the Freedom UI mobile app. Ideally, a code example demonstrating the correct implementation would be invaluable.

2. Implementing a Resizable Image Component:

  • I need to add a custom image component to the mobile app that allows users to upload images from their native phone's API, similar to an attachment.
  • This component should be resizable to accommodate various image dimensions and screen sizes.
  • I am struggling to find any documentation or examples on how to implement such a component within the Freedom UI mobile framework.
  • I would be very grateful for a working example of how to implement a resizable image component, that interacts with the native phones OS to retrive images.

The current documentation lacks detailed explanations and practical examples for mobile app development in Freedom UI. This makes it challenging to extend the mobile app's functionality effectively.

Any assistance, code examples, or pointers to relevant resources would be greatly appreciated.

Like 0

Like

1 comments

Hello Pranshu,

1. Autonumbering is supported, and there were no registered issues with it before. Please create a case for Creatio Support to review the specific issue that you've faced.

2. Unfortunately, there is currently no mobile component that can display images in a given size, as on the web. At the moment, only attachments are suitable for downloading/uploading images. 
 

Show all comments

The academy has an example of creating a custom UI component

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/front-end-development/freedom-ui/remote-module/implement-a-remote-module/examples/add-the-remote-module-to-the-library-of-the-freedom-ui-designer 

There is also a code for the Creatio application that demonstrates how this component works.
 

Question: How can I display this button and the associated field in a mobile app?
What changes need to be made to the app manifest and mobile form code?
 

Like 0

Like

1 comments

Hello,
 

Unfortunately, this approach will not work for you, as the web application and the mobile application use different frameworks for UI components: Angular and Flutter.


We also encourage you to refer to the actual Creatio mobile application development documentation - https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/category/mobile-app-development .

Show all comments

Hello Community,

Do you know if it is possible to add a new view in a mobile application that would display a map with multiple markers (where the address would be retrieved from accounts)?
And is there a way to display a custom tooltip on the map containing some information?

Thanks!

Like 0

Like

1 comments

Hello Monika,

 

We don't have any examples available for this. The only example available with maps in the mobile app is the account addresses detail and maps on it (see this community thread).

Show all comments

Hi Team,
I am currently working on creatio mobile app and trying to get the list of roles that are being tagged to the current user in addBusinessRule.But I am not able to get it using Terrasoft.store.BaseStore.
I tried using Try catch block , the error message is empty. Can you please help me regarding this?

 

Terrasoft.sdk.Model.addBusinessRule("Activity", {
    name: "FieldForceActivityTypeRule",
    ruleType: Terrasoft.RuleTypes.Custom,
    triggeredByColumns: ["Type"],
    events: [Terrasoft.BusinessRuleEvents.Load],
    executeFn: function(record, rule, column, customData, callbackConfig, event) {
     var currentUser = Terrasoft.CurrentUserInfo.userId; 
      alert("currentUser: "+ currentUser);
    var modelName = "SysUserInRole";
    var store = Ext.create("Terrasoft.store.BaseStore", {
      model: modelName
    });
    var columns = ["SysRole", "SysUser"];
    var queryConfig = Ext.create("Terrasoft.QueryConfig", {
      modelName: modelName,
      columns: columns
    });
    var filtersConfig = {
      property: "SysUser",
      value: currentUser
    };
    store.setPageSize(Terrasoft.AllRecords);
    store.loadPage(1, {
      isCancelable: true,
      filters: Ext.create("Terrasoft.Filter", filtersConfig),
      queryConfig: queryConfig,
      callback: function(loadedRecords, operation, success) {
        if (success) {
          alert("success :"+ loadedRecords.length);
          for (var i = 0, ln = loadedRecords.length; i < ln; i++) {
            var record = loadedRecords[i];
            alert("i "+ record);
          }
        }
      },
      scope: this
    });
        Ext.callback(callbackConfig.success, callbackConfig.scope, [true]);
    }
});

 

 

 

Like 1

Like

1 comments

Hello,

 

First, you need to check if SysUserInRole and SysUser are syncing with the mobile app (correspondent records are present in the mobile application's manifest). Then check if you get any result at the callback function when you debug the code.

Show all comments

Hi Team,

 

We have a requirement for filtering the mobile application records in the freedom UI but we doesn't have the filter icon to filter the records. 
Please help us to solve the issues.

 

Note: We are using the updated mobile application version



Like 0

Like

2 comments

Hi Team,

Please help us solve the requirement.
 

Thanks,

Prem

 

Hello,
 

Unfortunately, fast filtering options on mobile devices are currently only available in Classic UI. We realize the importance of this feature and are actively working on implementing it in Freedom UI in future application releases.


Best regards,
Malika

Show all comments

Hi, i need to customize border, margin, and etc for customizing UI for my Application on Creatio Mobile, any info about how to customize border from text box, column, or detail on mobile creatio? 
Thanks

Like 1

Like

1 comments

Hello Aleksander,

Unfortunately, there is no possibility to customize the style for now.

Our R&D team is working on adding the different themes to the UI. Please follow the release updates.

Best regards,

Anhelina!

Show all comments

Hi, 

I have some hard times trying to iterate an array of object and insert/display the values one by one on this object detail named Product in Receive

 

and here is a chunk of the code:

var splitResult = decodedText
          .split("*")
          .filter((item) => item.trim() !== "");
        var doNumber = splitResult[0];
        var prodDataObj = [];
        var slocCode = doNumber.split("/")[1];
 
        for (let i = 1; i < splitResult.length; i++) {
          var prodDataSplit = splitResult[i].split("/");
          var productName = "";
          var materialcode = prodDataSplit[1] || "";
 
          if (materialcode) {
            productName = await new Promise((resolve) => {
              Terrasoft.productByMaterialCode(materialcode, (productData) => {
                if (productData && productData.Name) {
                  resolve(productData?.Name || "");
                }
              });
            });
          }
          prodDataObj.push({
            Line: prodDataSplit[0] || 0, //line number
            MaterialCode: prodDataSplit[1] || "", //mat code
            ProductName: productName,
            Quantity: prodDataSplit[2] || 0, //quantity
            UoM: prodDataSplit[3] || "", //uom
          });
        }
prodDataObj.forEach((data) => {
          const newRecord = Ext.create("Terrasoft.BaseModel", {
            modelName: "UsrEntity_93626c0",
          });
 
          newRecord.set("UsrSKUName", data.ProductName, true);
          newRecord.set("UsrQty", data.Quantity, true);
 
          Terrasoft.getUom(data.UoM, (record) => {
            newRecord.set("UsrUoM", record, true);
          });
 
          newRecord.save({
            isCancelable: false, 
            success: function (savedRecord) {
 
              const pageController = Terrasoft.PageNavigator.getLastPageController();
              pageController.refreshDirtyData();
            },
            failure: function (error) {
              console.error("Failed to create record:", error);
            },
          });
        });

i tried to iterate using forEach but when i use newRecord.save, some weird error appears, this is one of them: 

Error in Success callbackId: TSQueryExecutorPlugin1965367711 : TypeError: Cannot read properties of undefined (reading 'rule')

 

I would greatly appreciate any assistance or guidance in resolving this issue.
Thank you.

 

Like 1

Like

1 comments

Hello,
In this situation, only the full debug of the set code can tell what exactly went wrong. Based on the code alone it is impossible to tell where is the issue in it.
The error "TypeError: Cannot read properties of undefined (reading 'rule')" doesn't tell much easier, with it we can only tell that at some point the system didn't receive a correct parameter or didn't receive anything at all, either way, a debug is still needed.

Show all comments