Lancer un traitement

Les tâches de type T et U permettent d’effectuer des traitements sur les données (recalcul, synchronisation, etc.) sans produire d’output.

Lancer un traitement

La syntaxe permettant de lancer un traitement est la suivante:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     --json '' \
     -X POST \
     'https://<host>/api/v1/<taskId>'

La méthode HTTP doit être POST afin de pouvoir fournir les paramètres de l’écran en tant que body de la requête. Le Content-Type du body doit être application/json (ce qui est automatiquement fait par cURL avec l’option --json).

Si le code de retour HTTP est 200, la réponse est un objet JSON structuré contenant le résultat du traitement:

{
  "metadata": {
    "apiVersion": "1.0",
    "taskId": "GTP51",
    "taskType": "T",
    "domainId": "ORT"
  },
  "data": {
    "screen": {
      "FIRST_DATE": "2026-01-01T00:00:00+0100",
      "LAST_DATE": "2026-12-31T00:00:00+0100"
    }
  }
}
Clé Description
processId Identifiant du processus (uniquement pour les traitements longs - type U).
screen Contient les champs de l’écran retourné par la tâche après exécution, incluant les paramètres soumis et les valeurs calculées.

Note: par défaut, le système attend que le traitement soit terminé avant de retourner la réponse, que ce soit pour un traitement court (type T) ou long (type U). Ce comportement ne peut pas être modifié pour les traitements courts, mais il est possible de récupérer la main directement en utilisant le paramètre wait dans un traitement long afin de pouvoir suivre (par polling) l’avancement du traitement via l’état du processus.

Paramètres de lancement

Afin de lancer le traitement, il est nécessaire de passer les paramètres de l’écran. Les champs possibles sont décrits dans le descripteur OpenAPI et dépendent de chaque tâche.

Traitements longs (Type U)

Les tâches de traitement longues (type U) fonctionnent de manière asynchrone. Elles démarrent un processus et retournent un identifiant de processus (processId).

Il y a deux possibilités:

  • garder la connexion ouverte en attendant le résultat (exécution synchrone).
  • lancer le processus de manière non bloquante, vérifier l’avancement du processus (polling) et récupérer le résultat une fois terminé (exécution asynchrone).
Paramètre Type Description
wait Boolean Permet de ne pas attendre le résultat et de reprendre la main. true par défaut pour une utilisation synchrone.

Exécution synchrone

Par défaut, la connexion reste ouverte jusqu’à la fin du processus:

curl --insecure --silent --max-time 600 \
     -H "Authorization: Bearer <bearer_token>" \
     --json '{"CODETIMERID":"CLEANUP_TEMPFILES"}' \
     -X POST \
     'https://<host>/api/v1/SYS88'

La réponse contient un objet JSON avec l’identifiant du processus et les champs de l’écran retourné après exécution:

{
  "metadata": {
    "apiVersion": "1.0",
    "taskId": "SYS88",
    "taskType": "U",
    "domainId": "ORT"
  },
  "data": {
    "processId": "019D906B-6086-752F-A747-802F458A2471",
    "screen": {
      "CODETIMERID": "CLEANUP_TEMPFILES"
    }
  }
}
Clé Description
processId Identifiant du processus.
screen Contient les champs de l’écran retourné par la tâche après exécution (wait=true).

Récupérer le résultat

Une fois que le processus est terminé (vérifiable via l’endpoint des processus), le résultat peut être récupéré via son processId:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     'https://<host>/api/v1/SYS88/processes/<processId>/result'

La réponse est un objet JSON contenant les champs de l’écran retourné par la tâche dans le champ screen de l’objet data.

Exécution asynchrone (polling)

Il est possible d’utiliser le paramètre wait pour lancer le processus et reprendre la main:

curl --insecure --silent \
     -H "Authorization: Bearer <bearer_token>" \
     --json '{"CODETIMERID":"CLEANUP_TEMPFILES"}' \
     -X POST \
     'https://<host>/api/v1/SYS88?wait=false'

Lorsque wait=false, le champ screen contient les paramètres soumis (y compris ceux chargés par défaut par le système) mais pas encore le résultat du traitement car le processus n’est pas terminé. Ensuite, le processId peut être utilisé pour vérifier l’état d’avancement du processus et récupérer le résultat une fois terminé.