×

Please give details of the problem

Docs

Find

    Developer Guide

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

    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:

    User experience:

    • 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 drafts are not synchronized (documents aren’t accessible during online mode).
    • Custom icons remain visible whilst offline, the default icons do not.

    Access to online resources:

    • Listeners launched from a web interface are not supported (CAPI, WS) : Process listener are.
    • Ajax calls do not function.

    Data availability:

    • 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.
    • Uploaded files are not available: not to be confused with versioned files or File upload widget in a Web Interface.
    • File ids generated by Uploaded file widget are local and temporary: its do not reflect the file ids that will be created on the server when going online
    • 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.

    Project versioning:

    • If a subproject is included in several offlined versioned projects, only one version of the subproject is possible. So, if a parent project is updated, then the version of the subproject will be updated for all the projects.