×

Please give details of the problem

Docs

Find

    Developer Guide

    1. Composite API Example
      1. Scripted Lanes
      2. Compound Organization Hierarchy
      3. Dynamic Lanes
      4. Delegation
      5. Access Rights
      6. Runtime Lanes
        1. Todo Validation
      1. Release Your User Login
      1. Collections To Array
      2. Collections To List
      3. Collections BackOffice
      4. Collection JS Freemarker
          1. Composite API Design Tab
          2. Composite API Configuration Tab
          1. Providers
          2. Connectors
          3. Processes
          1. Roles entities
          2. Organization
        1. Collections
          1. Project Files Tab
          2. Project Definition Tab
          3. Project Versioned Files Tab
          4. Project Version Tab
          5. Project Description Tab
          6. Version
          7. Project Rights Tab
          8. Project Collection Tab
          1. Web Interface JS Tab
          2. Web Interface Design Tab
            1. Image Widget
            2. FileUpload Widget
            3. StaticText Widget
            4. ProgressBar Widget
            5. TextInput Widget
            6. JavaScript Widget
            7. Section Widget
            8. Geolocation Widget
            9. Checkbox Widget
            10. RadioButton Widget
            11. Tree Widget
            12. Spinner Widget
            13. History Widget
            14. URLInput Widget
            15. Tab Widget
            16. List Widget
            17. Array Widget
            18. HTML Editor Widget
            19. Report Widget
            20. Button Widget
            21. Custom Widget
            22. Captcha Widget
            23. HTML Widget
            24. Multi Checkbox Widget
          3. Web Interface Analytics Tab
          4. Web Interface Collection Tab
          5. Web Interface Implementation Tab
          6. Web Interface API Tab
          7. Web Interface Stylesheet Tab
        2. Revision
        3. Custom Lists
          1. Process Variables Tab
          2. Process Measures Tab
              1. Process Timer Event
              2. Process Start Event
              3. Process Intermediary Event
            1. Gate
              1. Process Task Loop Tab
              2. Process Task Manual Tab
              3. Process Task Email Tab
              4. Process Task Connector Tab
              5. Process Task SubProcess Tab
              6. Process Task Functional Tab
              7. Process Task Script Tab
            2. Process Step Output Variables
            3. Process Step Testing Variables
            4. Process Step Input Variables
          3. Process General Tab
          4. Process Design
          5. Process Input Tab
        1. Home
        2. My Applications
        3. Files
      1. Customer Management
        1. Messages
        2. Scheduled Process
        1. Process Examples
        2. Connectors
        1. Users
        2. Configuration
        3. Usage
        1. Web Interface Reports
          1. Measuring
          2. Runtime Users
          3. Execution Path
          4. Parameters
        1. CSS Examples
        2. CSS Personalization
      1. Performance
        1. Logout
        2. Redirection ExecutionMode
        3. Information Tags
        4. Basket
        5. Menu Bar
        6. Header
        7. Custom Login Page
        8. Mobile Devices
          1. homepage.css
          2. homepage.js
        1. Inject JSONObject
        2. Google Tables
        3. ArrayJSON to JSONArray
        4. Label Modification
        5. Number Currency Format
        6. Launch Process JQuery
        7. Date
        8. JQuery
        9. Round
        10. Holidays
        11. Array From WS
        12. Column Inactivation
        13. Print JSONObject
        14. Initialization Widget Date
        15. Invalid Fields
        16. List Reinitialization
        1. Tags
        2. Dialog Window
        3. Dynamic List
        4. User Lane Picker
          1. Report Chart
          2. Google Visualization
          3. Chart Dashboard
          4. Chart Dashboard Collection
        5. API Listener
        6. JavaScript Report
        7. Retrieving Variables Values
        8. Collection
        9. File Preview
        10. Autocomplete Widget
        11. Summing Array
      1. Trigger
      2. Markdown Template
        1. Task Reminder Email
        2. JavaScript Inclusion
        3. PDF
        4. SubProcess
        5. Backloop
        6. Variable Mapping
        1. Salesforce Computation
        2. Number Currency Format
        3. List Hash Sequence
        4. JSONObject Creation
        5. Freemarker Container Test
        6. JSONObject Concatenation
        7. Metadata
        8. Special Freemarker Characters
        9. List 1000+ Objects
        10. Dynamic Variable
        11. File Visibility
        12. Number Test
        13. JSONObject Keys Values
        14. Lock
        15. JSONArray Conversion
        16. Error Handling
        17. Loop
        18. Array To List
      1. Process Reporting API
      1. Offline
      2. Mobile

    Developer Guide for offline applications

    Availaible on RunMyApp for Android & iOS

    This guide offers advice to developers considering making their applications available in offline mode on mobile devices.

    1 Overview

    RunMyApp is RunMyProcess’s mobile application. RunMyApp allows users to use some applications whilst offline, provided that the application has been designed and configured to enable this feature. This guide offers advice to developers considering making their applications available in offline mode on mobile devices.

    2 Configuration & data download

    When an application is deployed on a mobile device, the following project resources held locally will be synchronized with the ones on the central RunMyProcess platform:

    • Web interfaces
    • Custom lists
    • Versioned Files: JS & CSS files used in web interfaces
    • Collections
    • Included sub projects

    3 Designing an offline application

    If the end user opens a web interface on a mobile device while having no network connectivity, Offline mode will be activated automatically. When in offline mode, “OFFLINE MODE” is displayed at the top of the screen and the basket is replaced with a list of saved documents and queued requests.

    3.1 Querying the current mode

    Within the web interface, you can check whether RunMyApp is in offline mode by using the Javascript function RMP_RunMyApp.isInOfflineMode() which will return true if offline mode is enabled.

    Please note this is NOT the device’s current network status. A web interface can be opened in offline mode whilst the device is online e.g. when opening a saved document.

    3.2 Offline functionality

    In Offline mode, the end user can:

    • Fill in a new form, save and submit. Submitted requests will be queued for sending to the server, which will take place when an online connection is established. Saved documents will not be synchronized.
    • Open their saved documents. Please note that the web interface will be launched in offline mode regardless of the device’s network status.
    • Use the file upload widget. Files will be uploaded to the server when the requests are being sent.
    • Display the collection content through a Collection report.
    • Query collections held locally (see section 3.3).
    • Update and save any collections held on the mobile device (see section 3.3).

    3.3 Local collections

    Whilst in offline mode the downloaded collections can be queried using any method (e.g. Collection reports, Javascript API e.g. listCallback, aggregateCallback, autocomplete text widget,...).

    Also, it is possible to update and save any local collections using :

    • updateCallback
    • updateMultiCallback
    • saveCallback

    The supported operators for update are $set and $unset.

    Please note that local updates are not synchronized with the server. When synchronization occurs, local collection data will be replaced with server data.

    3.4 Available Internal Parameters

    It is possible to use the following Internal parameter whilst in offline mode. They will be replaced during the downloading process :

    • ${context}
    • ${P_mode}
    • ${P_version}
    • ${P_user.xxx}
    • ${P_connected_user.xxx}
    • ${P_initiator.xxx}

    3.5 Mongo DB operators

    The following Mongo database operators are supported through javascript APIs and Collection reports :

    • $match, $group, $project, $sort
    • $sum, $avg, $max, $min, $first, $last, $push, $addToSet
    • $eq, $ne, $gt, $lt, $gte, $lte, $in, $nin
    • $regex, $options
    • $and, $or, $not
    • $add, $subtract, $multiply, $divide, $mod

    4 Known limitations

    The following are known limitations of offline mode:

    • Listeners launched from a web interface are not supported (CAPI, WS) : Process listner are.
    • The results of Freemarker functions (user context, metadata, preferences, etc…) are determined at the time of the latest synchronization.
    • The list of lanes a user belongs to cannot be accessed.
    • The list of the users belonging to an account or to a lane cannot be accessed (no user picker).
    • Web interface and Process reports are not functional.
    • Ajax calls do not function.
    • Uploaded Files (not to be confused with versioned files) are not available offline.
    • The task basket is not available.
    • Collections are editable but local changes will not be synchronized with the master copy held on the RunMYProcess server. During the synchronization process, local collection data will be overwritten.
    • Not all Mongo DB operators are supported.
    • You cannot switch between online and offline mode. To exit offline mode, close the web interface then reopen it while the device is online.
    • Widget history does not function when a request is saved as a draft
    • Saved documents are not synchronized (documents aren’t accessible during online mode).
    • Only collections defined in offline projects can be synchronized (not collections of subprojects).
    • Custom icons remain visible whilst offline, the default icons do not.
    • Updating a LIVE version of a main project will retrieve the current LIVE version, while the version of the subprojects will remain the same