Mobile Web Containers



Introduction

Web Containers are containers stored in the mobile application (iOS and Android) that can be configured to read and display data from an external source.

Access

Web containers are configured and managed in Admin at the company level. You can access it by navigating to Admin > Company > Web containers.


Configuration

The CoreSystems.WebContainer company setting is used to provide dynamic information when using webcontainer(s).


Web Container Flow


Supported Object Types

A web container can be assigned to multiple object types.

The following object types can support web containers:

  • Businesspartner
  • Activity
  • Servicecall
  • Item
  • Equipment
  • Salesopportunity
  • Salesorder
  • Salesquotation
  • Checklist
  • Contact
  • Person

A Closer Look

Screen Reference

Field Description Impact
Name The name of the web container record in the service cloud. This name is only used for record-keeping purposes.
URL The URL/endpoint of the web container. The POST request will be sent to this endpoint.
Authentication Key If applicable, the authentication key to be passed to the endpoint. This authentication key is passed in the header of the POST request.
Object Type The object type associated with the web container (example: item, business partner, etc). By selecting, the web container will be assigned to the object type.
Default Module Title The name of the web container. This name will display in the web container contained in the mobile application.
Sort Order The display order of the web container. The order in which the web container will display in relation to other object type options.

Translations

The name of the web container also supports translations:

Field Description
Locale The location and language code.
Value The translation to appear for the webcontainer from the menu.

JSON Structure

The following is an example of the credentials and additional information that is passed to the application to read and display data from an external source in the mobile application:

Example with Credentials

[
  {
        "WebContainer": "Stock Transfers",
        "URL": "http://144.76.175.239:8081/DDS-Splash/splash",
        "Default module title": "Stock Module",
        "Module title translations": {
            "en": "Stock Module",
            "de": "Lagermodul",
            "fr": "Module d'entrepot"
        },
        "authenticationKey": "MSNUWBB3H8JJ13J2",
        "order": "1",
        "objecttype": [
            "BUSINESSPARTNER",
            "EQUIPMENT"
        ]
     
    },
   {
      "WebContainer":"second web container",
     ...
   },
   ...
]

Information Passed in POST Request

Please note the following:

  • Mobile clients load URL specified in Web Container configuration using POST http method.
  • There is no custom implementation of WebViews that are used to display web content on mobile clients - it’s always used WebView from system API.
  • As a result:
    • iOS will send request with Content-Type = application/json
    • Android will send request with Content-Type = application/x-www-form-urlencoded
  • Clients sends JSON data in request body which contains: authenticationKey, userName, authToken, cloudAccount, dataCloudFullQualifiedDomainName, language, userPassword, companyName.
  • End servers that acts as Web Containers need to properly react considering above criteria

iOS

When the web container is selected from the mobile application, the following information will be included in the POST request made to the URL/endpoint in the iOS application:

Request Headers

{
  "content-length": "301",
  "origin": "null",
  "content-type": "application/json",
  "upgrade-insecure-requests": "1",
  "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
  "accept-language": "pl-pl",
  "accept-encoding": "gzip, deflate"
}

Request Body

{
  "authenticationKey" : null,
  "userName" : "admin",
  "authToken" : "16149361-0fd8-47f9-8d6e-1346d69b4d9c",
  "cloudAccount" : "Acme",
  "dataCloudFullQualifiedDomainName" : "https:\/\/et.dev.coresuite.com",
  "language" : "pl",
  "userPassword" : "acme1234",
  "companyName" : "AcmeCompany"
}

Android

When the web container is selected from the mobile application, the following information will be included in the POST request made to the URL/endpoint in the Android application:

Request Headers

{
  "content-length": "262",
  "cache-control": "max-age=0",
  "user-agent": "Mozilla/5.0 (Linux; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36",
  "upgrade-insecure-requests": "1",
  "origin": "null",
  "content-type": "application/x-www-form-urlencoded",
  "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
  "accept-encoding": "gzip, deflate",
  "accept-language": "en-IE,en-US;q=0.8",
  "x-requested-with": "com.sap.fsm"
}

Request Body

{
  "authenticationKey" : null,
  "userName" : "admin",
  "authToken" : "16149361-0fd8-47f9-8d6e-1346d69b4d9c",
  "cloudAccount" : "Acme",
  "dataCloudFullQualifiedDomainName" : "https:\/\/et.dev.coresuite.com",
  "language" : "pl",
  "userPassword" : "acme1234",
  "companyName" : "AcmeCompany"
}