Skip to main content
Version: v19 R8

On Mobile App Action

On Mobile App Action( mobileInfo : Object ) -> result : Object

ParameterTypeDescription
mobileInfoObject<-Information passed by the mobile application
resultObject<-Action status & data synchro

Description

The On Mobile App Action 4D database method is in charge of managing actions requested by the mobile application for a specific session.

note

The mobile application must have been authenticated by the On Mobile App Authentication database method.

This database method is called by 4D when a mobile application sends an action request.

The database method receives required information from the mobile application in the mobileInfo parameter (object), and must return the action status in the result parameter (object). You must declare and initialize these parameters as follows:

 //On Mobile App Action database method
#DECLARE ($mobileInfo : Object) -> $result : Object
// ...Code for the method
$result:=New object() //do not forget to create the object to return

The following properties are received in the mobileInfo object parameter:

Property nameTypeDescription
actionTextAction name
idTextUUID of the Session object on the 4D server
ipTextSession IP
parametersObjectAction parameters sent from the mobile application
contextObjectContext parameters for the requested action
dataClassText4D dataclass name
entity.primaryKeyText, Longint(optional, returned if the action is related to a selected entity). Primary key of the entity.
entity.relationNameText(optional, returned if the action is related to a linked entity). Many-to-one relation name
parent.primaryKeyText, Longint(optional, returned if the action is related to a linked entity). Primary key of the parent entity.
parent.relationNameText(optional, returned if the action is related to a linked entity). One-to-many relation name
parent.dataClassText(optional, returned if the action is related to a linked entity). Name of the parent 4D dataclass.
note

You can access the Session object automatically created on the 4D server from this database method. You can use this object to control the mobile session.

After processing information, the database method must return an object with the following properties in result:

Property nameTypeDescription
successBooleanTrue if action has been successfully processed, False otherwise.
statusTextText(Optional) Message to display on the mobile application. If success=true, display message; if success=false, can be used to provide user with an explanation.
errorsCollection of objects(Optional) Each object contains a pair of 'parameter'/'message' keys to display in the mobile application for rejected entries.
dataSynchroBooleanTrue if the entity or table selection needs to be refreshed, false otherwise. If True, the mobile application will automatically trigger a data synchronization

Example

  // On Mobile App Action
// 2 actions are defined: "done" and "postponeAll"

#DECLARE ($request : Object) -> $result : Object

var $o;$context : Object

$context:=$request.context

Case of

:($request.action="done")
$o:=New object(\
"dataClass";$context.dataClass;\
"ID";$context.entity.primaryKey;\
"CompletePercentage";100)

$result:=modifyStatus($o) //call your project method to modify the status of the entity

:($request.action="postponeAll")
$o:=New object("dataClass";$context.dataClass)

$result:=postponeAll($o) //call your project method to postpone all entities of the dataClass

Else //Unknown request
$result:=New object("success";False)

End case