Répartitions mobiles : Créer

Une soumission valide

Lorsqu'une répartition mobile est créée, un nouveau rapport est également créé. Il faut donc fournir suffisamment d'information dans la section « report » pour simuler comme si vous aviez posté un nouveau rapport dans /reports, avec des champs de rapport inclus. Voici un exemple de message valide envoyé à /dispatch-tasks :

{ "customId": "200019810", "priority": "URGENT", "client":50, "report": { "reportTemplate": 28, "account": 50, "reportFields": [ {"field": 29, "value": "12:30"}, {"field": 31, "value": "Something undesirable has occurred"}, {"field": 30, "value": "Interior Patrol"} ] }, "startedOn": "20220331122600", "taskType": 9, "locationType": "ACCOUNT_ADDRESS" }

À noter :

  1. L'identifiant du site client (account) doit être inclus dans la liste racine des éléments.
  2. reportTemplate n'est pas inclus dans la liste racine des éléments, mais uniquement dans l'objet report.
  3. L'objet report contient à la fois les métadonnées d'un nouveau rapport et la liste des champs qui contiennent les données du rapport.
  4. Chaque ligne d'un reportField est composée du numéro d'index de l'ID du report-template-fields correspondant qui définit le reportTemplate (dans cet exemple, il s'agit de l'ID 28), et d'une valeur de données.
  5. La valeur de chaque champ de rapport doit correspondre au type de champ défini dans le modèle de rapport parent. Vous devrez consulter les champs /report-template-fields d'un /report-templates pour savoir à quoi vous attendre.

Pour aider à exposer les autres dépendances comme les modèles de rapport et les champs de modèle de rapport, voici à quoi elles ressemblent (ceci provient d'un environnement d'essai interne) :

Modèle de rapport et champs (obligatoire)

Voici un exemple de modèle de rapport (id 28) :

"data": { "name": "Mobile Patrol Report", "details": "Used to record the details of a completed Mobile Patrol task", "tag": "", "adminOnly": false, "id": 28, "defaultLanguage": "EN_US", "translatable": true }

Champs du modèle de rapport 28 :

"data": [ { "reportTemplate": 28, "label": "Arrival Time:", "name": "f_29", "type": "TIME", "required": false, "adminOnly": false, "displayOrder": 100, "extra": "", "list": null, "listItems": null, "isDispatcherField": false, "fieldTag": "", "confidential": false, "id": 29 }, { "reportTemplate": 28, "label": "Activity Performed:", "name": "f_30", "type": "LIST_MULTIPLE", "required": false, "adminOnly": false, "displayOrder": 98, "extra": "Interior Patrol\nExterior Patrol\nStationary Post\nLocation Inspection", "list": [ "Interior Patrol", "Exterior Patrol", "Stationary Post", "Location Inspection" ], "listItems": [ "Interior Patrol", "Exterior Patrol", "Stationary Post", "Location Inspection" ], "isDispatcherField": false, "fieldTag": "", "confidential": false, "id": 30 }, { "reportTemplate": 28, "label": "Narrative:", "name": "f_31", "type": "TEXTAREA", "required": false, "adminOnly": false, "displayOrder": 96, "extra": "", "list": null, "listItems": null, "isDispatcherField": false, "fieldTag": "", "confidential": false, "id": 31 }, ... etc.

Résultat d'un POST réussi

Voici la tâche de répartition créée à partir de l'exemple que j'ai partagé (remarquez que l'élément de rapport montre maintenant l'ID 4469 (de /reports) du rapport qui a été généré automatiquement après avoir été posté dans /dispatch-tasks) :

"data": { "customId": "200019810", "taskType": 9, "priority": "URGENT", "taskInstructions": "", "startedOn": "2022-03-31T19:26:00+00:00", "startDateTime": "2022-03-31T19:26:00+00:00", "endedOn": null, "endDateTime": null, "plannedDurationInMinutes": null, "reminderInMinutes": null, "alarmOrganization": null, "client": 50, "account": 50, "priceTier": null, "status": "OPEN", "active": "ACTIVE", "assignedUser": null, "assignedGroup": null, "assignedVendor": null, "reportTemplate": 28, "report": 4469, "workflowInstance": null, "location": null, "locationType": "ACCOUNT_ADDRESS", "closedOn": null, "id": 513 }

Exemple de ce que report-fields reçoit lorsque le rapport 4469 a été créé :

"data": [ { "fieldTag": "", "report": 4469, "templateField": 29, "value": { "type": "text", "value": "12:30" }, "archived": false, "id": 22247 }, { "fieldTag": "", "report": 4469, "templateField": 30, "value": { "type": "array", "value": [ "Interior Patrol" ] }, "archived": false, "id": 22248 }, { "fieldTag": "", "report": 4469, "templateField": 31, "value": { "type": "text", "value": "Something undesirable has occurred" }, "archived": false, "id": 22249 } ]

Les métadonnées du rapport parent créé pour les champs ci-dessus :

"data": { "reportTemplate": 28, "timeZone": "America/Los_Angeles", "account": 50, "reportDateTime": "2022-04-04T08:42:24-07:00", "submitTime": 1649086944, "submittedOn": "2022-04-04T15:42:24+00:00", "position": null, "approvedOn": null, "approvalDateTime": null, "status": "PENDING", "approvedBy": null, "checkpoint": null, "reportFlag": null, "siteLocation": null, "id": 4469 }

Comment dresser la liste des transitions disponibles

GET /dispatch-tasks/1034?extension=availableTransitions

{
        "customId": "",
        "taskType": 13,
        "priority": "LOW",
        "priorityRating": 0,
        "taskInstructions": "test",
        "scheduled": "LATER",
        "startedOn": "2025-05-20T16:38:52+00:00",
        "startDateTime": "2025-05-20T16:38:52+00:00",
        "endedOn": null,
        "endDateTime": null,
        "plannedDurationInMinutes": null,
        "reminderInMinutes": null,
        "reminderAt": null,
        "alarmOrganization": null,
        "client": 688,
        "account": 688,
        "priceTier": null,
        "status": "OPEN",
        "active": "ACTIVE",
        "assignedUser": null,
        "assignedGroup": null,
        "assignedGroupResource": null,
        "assignedVendor": null,
        "reportTemplate": 390,
        "report": 1242,
        "workflowInstance": 964,
        "location": 880,
        "locationType": "ACCOUNT_ADDRESS",
        "closedOn": null,
        "parentDispatchTask": null,
        "alarm": null,
        "id": 1034,
 ==    "availableTransitions": {
            "transitions": [
                {
                    "event": "CANCEL",
                    "eventLabel": "CANCEL",
                    "fromStatus": 45,
                    "toStatus": 52,
                    "id": 57,
                    "form": null
                },
                {
                    "event": "R_EN_ROUTE",
                    "eventLabel": "ON ROUTE",
                    "fromStatus": 45,
                    "toStatus": 47,
                    "id": 53,
                    "form": null
                },
                {
                    "event": "R_ACCEPT",
                    "eventLabel": "ACCEPT",
                    "fromStatus": 45,
                    "toStatus": 46,
                    "id": 52,
                    "form": null
                }
            ]
        }
    }
Cet article vous a-t-il été utile?
Utilisateurs qui ont trouvé cela utile : 0 sur 0

Articles dans cette section

Afficher plus