Cette page vise à présenter les fonctionnalités de diagnostic et de reprise offertes par le moteur BPM Camunda.
Surpervision
Console Cockpit
Le moteur intègre une console web de supervision et d'exploitation: cockpit - https://server:port/app/cockpit
Cette IHM donne accès à l'ensemble des processus BPMN et tables DMN déployées, en permettant de rechercher et administrer les exécutions en cours (retry, pause, resume, stop).
La doc de l'éditeur: https://docs.camunda.org/manual/7.11/webapps/cockpit/
Tableau de bord
Cet écran d’accueil présente une vue synthétique:
- des process en cours d'exécution
- des process en incident
- des tâches manuelles ouvertes sur des process en cours
Liste des process
Cet écran présente les compteurs d'incidents et exécutions en cours par type de process:
Liste des exécutions d'un process
Cet écran présente les incidents et exécutions pour un type de process:
 Nombre de process en cours sur la tâche  Nombre de process en incident sur la tâche
Détail d'une exécution de process
Cet écran permet notamment d'administrer une exécution de process, avec possibilité de relancer une tâche en erreur:
La stacktrace d'erreur est directement consultable:
Détails des workflows
| Processus | Fonction | Identifiant pour api REST (processDefinitionKey) | 
|---|---|---|
| Sous workflow - Archivage de fichier | 
 | archivage-fichier | 
| Sous workflow - Attente d'exécution exclusive | 
 | attente-execution-exclusive | 
| Sous workflow - Attente d'exécution exclusive prioritaire | 
 | attente-execution-exclusive-prioritaire | 
| Sous workflow - Attente de fichier | 
 | attente-fichier | 
| Sous workflow - Audit des soldes | 
 | audit-soldes | 
| Sous workflow - BankTransfer - Génération de virements | 
 | banktransfer-generation-virements | 
| Sous workflow - BankTransfer - Normalisation de virements entrants | 
 | banktransfer-normalisation-virements | 
| Actu commerçants | 
 | actu-commercants | 
| Calcul de Rolling Reserve | 
 | calcul-rolling-reserve | 
| Calcul de scoring KYC | 
 | calcul-scoring-kyc | 
| Déclencheur de vacations de règlement | 
 | declencheur-vacations-reglement | 
| Déclencheur de vacation de règlement des impayés Monext | 
 | declencheur-vacation-reglement-impayes-monext | 
| Sonde API Arkea | 
 | sonde-api-arkea | 
| Vacation de créances | 
 | vacation-creances | 
| Vacation financière | 
 | vacation-financiere | 
| Vacations de règlement des transactions | 
 | vacation-reglement-transactions | 
| Vacation de règlement des virements entrants | 
 | vacation-reglement-virements | 
| Vacation de règlement des impayés | 
 | vacation-reglement-impayes | 
| Vacation de règlement des impayés Monext | 
 | vacation-reglement-impayes-monext | 
| Vacation technique | 
 | vacation-technique | 
| Virements entrants - Traitement de recall | 
 | virements-entrants-traitement-recall | 
| Workflow manuel - Déverrouillage d’exécution exclusive de vacation | 
 | deverrouillage-execution-exclusive-vacation | 
| Workflow manuel - Virement sortants- Traitement erreur totale | 
 | virements-sortants-traitement-erreur-totale | 
| Workflow manuel - Demande de statut RSU | 
 | get-status-rro | 
Administration des workflows
Le moteur expose une api rest qui permet de :
- consulter les exécutions en cours
curl https://HOST:PORT/rest/process-instance/count?active=true -H 'Authorization: Basic BASE_64(LOGIN:PWD)'
Exemple: curl -k https://epa1r1.dc1lan.local:8444/rest/process-instance/count?active=true -H 'Authorization: Basic ZGVtbzpkZW1v'
 => {"count":19}
Doc: https://docs.camunda.org/manual/7.11/reference/rest/execution/
Pour l'encodage en base 64 des identifiants d'authentification: https://www.base64encode.org/
- consulter les exécutions historisées
curl -X POST https://HOST:PORT/rest/history/process-instance -H 'Authorization: Basic BASE_64(LOGIN:PWD)' -H 'Content-Type: application/json' -d 
'{
  "startedAfter": "START_TIME",
  "startedBefore": "END_TIME",
  "processDefinitionKeyNotIn":["NOT_SEARCHED"],
  "sorting":[
    {
      "sortBy": "startTime",
      "sortOrder": "asc"
    }
  ]
}'
Exemple: curl -X POST https://epa1r1.dc1lan.local:8444/rest/history/process-instance -H 'Authorization: Basic ZGVtbzpkZW1v' -H 'Content-Type: application/json' -d 
'{
  "startedAfter": "2020-01-08T00:00:00.000+0200",
  "startedBefore": "2020-01-28T23:59:59.000+0200",
  "processDefinitionKeyNotIn":["sonde-api-arkea","vacation-technique","declencheur-vacations-reglement","declencheur-vacation-reglement-impayes-monext"],
  "sorting":[
    {
      "sortBy": "startTime",
      "sortOrder": "asc"
    }
  ]
}'
=> [
    {
        "id": "00d62e10-31f0-11ea-93c5-7c2a3123212b",
        "businessKey": null,
        "processDefinitionId": "vacation-financiere:7:0a9583c2-3165-11ea-93c5-7c2a3123212b",
        "processDefinitionKey": "vacation-financiere",
        "processDefinitionName": "Vacation financière",
        "processDefinitionVersion": 7,
        "startTime": "2020-01-08T09:22:26.000+0100",
        "endTime": "2020-01-08T10:22:26.000+0100",
        "removalTime": null,
        "durationInMillis": 3600000,
        "startUserId": null,
        "startActivityId": "StartEvent_1",
        "deleteReason": null,
        "rootProcessInstanceId": "00d62e10-31f0-11ea-93c5-7c2a3123212b",
        "superProcessInstanceId": null,
        "superCaseInstanceId": null,
        "caseInstanceId": null,
        "tenantId": null,
        "state": "COMPLETED"
    }
]
- consulter les incidents techniques en cours
curl https://HOST:PORT/rest/incident/count -H 'Authorization: Basic BASE_64(LOGIN:PWD)'
Exemple: curl -k https://epa1r1.dc1lan.local:8444/rest/incident/count -H 'Authorization: Basic ZGVtbzpkZW1v' 
=> {"count":25}
Doc: https://docs.camunda.org/manual/7.11/reference/rest/incident/
- consulter les incidents techniques par workflow
Il faut séquencer 2 requêtes:
curl https://HOST:PORT/rest/process-definition/key/{processDefinitionKey} -H 'Authorization: Basic BASE_64(LOGIN:PWD)'
Exemple: curl -k https://epa1r1.dc1lan.local:8444/rest/process-definition/key/actu-commercants -H 'Authorization: Basic ZGVtbzpkZW1v' 
=> {"id":"0a913df0-3165-11ea-93c5-7c2a3123212b"...}
=> processDefinitionId = "0a913df0-3165-11ea-93c5-7c2a3123212b"
Doc: https://docs.camunda.org/manual/7.11/reference/rest/process-definition/get/
curl https://HOST:PORT/rest/incident?processDefinitionId={processDefinitionId} -H 'Authorization: Basic BASE_64(LOGIN:PWD)'
Exemple: curl -k https://epa1r1.dc1lan.local:8444/rest/incident?processDefinitionId=0a913df0-3165-11ea-93c5-7c2a3123212b -H 'Authorization: Basic ZGVtbzpkZW1v' 
Doc: https://docs.camunda.org/manual/7.11/reference/rest/incident/get-query/
- suspendre / réactiver un workflow
curl -X PUT https://HOST:PORT/rest/process-definition/key/{processDefinitionKey}/suspended -H 'Authorization: Basic BASE_64(LOGIN:PWD)' -H 'Content-Type: application/json' -d '{"suspended": true,"includeProcessInstances": true}'
Exemple: curl -X PUT https://epa1r1.dc1lan.local:8444/rest/process-definition/key/actu-commercants/suspended -H 'Authorization: Basic ZGVtbzpkZW1v' -H 'Content-Type: application/json' -d '{"suspended": true,"includeProcessInstances": true}'
Doc: https://docs.camunda.org/manual/7.11/reference/rest/process-definition/put-activate-suspend-by-key/
- forcer la reprise d'un workflow en incident à une étape particulière
curl -X POST https://HOST:PORT/rest/process-instance/{processInstanceId}/modification -H 'Authorization: Basic BASE_64(LOGIN:PWD)' -H 'Content-Type: application/json' -d '{"instructions":[{"type":"startBeforeActivity","activityId":{activityId}}]}'
Il y a possibilité de positionner des variables, cf exemple ci-dessous.
Exemple: curl -X POST https://epa1r1.dc1lan.local:8444/rest/process-instance/5f22b40d-21ad-11ea-bc34-7c2a3123212b/modification -H 'Authorization: Basic ZGVtbzpkZW1v' -H 'Content-Type: application/json' -d '{
  "instructions": [
    {
      "type": "startBeforeActivity",
      "activityId": "get-solde",
      "variables": {
        "accountId": {
          "value": "1A18380001"
        }
      }
    }
  ]
}'
Doc: https://docs.camunda.org/manual/7.11/user-guide/process-engine/process-instance-modification/
https://docs.camunda.org/manual/7.11/reference/rest/process-instance/post-modification/
Logs
Le moteur s'appuie sur log4j2 pour la génération des logs.
Le fichier de configuration se trouve à l'emplacement standard des MBSLite: jfrm-lsol-mbs-lite/conf/log4j2.xml
Il faut activer la catégorie traces.functionnal.app en INFO
Les logs remarquables:
| Niveau | Chaine textuelle | Description | 
|---|---|---|
| INFO | start-{TYPE_VACATION} - correlationId={CORRELATION_ID} | Démarrage de vacation, avec identifiant de process | 
| INFO | end-{TYPE_VACATION} - correlationId={CORRELATION_ID} | Fin de vacation, avec identifiant de process | 
| ERROR | end-with-error-{TYPE_VACATION} - correlationId={CORRELATION_ID} - errorCode={ERROR_CODE} - errorMessage={ERROR_MESSAGE} | Fin de vacation en erreur fonctionnelle qui va nécessiter une analyse approfondie | 
| ERROR | incident - correlationId={CORRELATION_ID} | Erreur technique qui va suspendre l'exécution du process et va nécessiter une relance manuelle, une fois la cause de l'erreur corrigée. Nb1: par défaut le moteur va retenter jusqu'à 2 fois d'exécuter la tâche en erreur, avec un délai d'environ 500ms Nb2: les exécutions de vacation doivent être exclusives (une seule vacation à la fois). Si l'une est en incident les autres ne pourront s'exécuter tant qu'elle n'aura pas été corrigée | 
| INFO | checkApiArkea - status:OK - averageResponseTime:250 | Check périodique (toutes les 10min) de l'accès aux soldes de l'ensemble des comptes via appel à l'api Arkea. Le status est OK ou KO si l'un des soldes n'est pas remonté Le temps de réponse moyen est en millisecondes | 
Les types de vacation:
| TYPE_VACATION | Description | 
|---|---|
| declencheur-vacations-reglement | Déclencheur de vacations de règlement | 
| vacation-reglement-virements | Vacation de règlement de virements entrants | 
| vacation-reglement-transactions | Vacation de règlement de transactions | 
| vacation-reglement-impayes | Vacation de règlement d'impayés | 
| vacation-reglement-impayes-monext | Vacation de règlement d'impayés imputables à Monext | 
| vacation-creances | Vacation de clearing de créances | 
| vacation-financiere | Vacation financière de sortie de cash | 
| vacation-technique | Vacation technique qui publie les soldes et transactions des comptes vers le puit de données | 
Les erreurs fonctionnelles:
| ERROR_CODE | Description | 
|---|---|
| no-file-after-delay | Le fichier à faire traiter par une vacation (cre mba ou virements entrants) n'a pu être trouvé dans un délai de 1h après la détection du mouvement sur le compte de règlement | 
| no-ack-banktransfer-after-delay | La réponse asynchrone en provenance du microservice BankTransfer n'a pas été reçue malgré un délai de 1h | 
| banktransfer-ack-error | La réponse asynchrone en provenance du microservice BankTransfer est en erreur | 
| inconsistent-amount | Le montant du mouvement sur le compte de règlement diffère de la somme contenue le fichier à traiter (cre mba ou virements entrants) | 
| unknown-merchant | L'un des virements entrants est à destination d'un compte inconnu du référentiel commerçant (table MERCHANT_CONTRACT) | 







Commentaire
Jerome BOUCHTER (Externe) dit :
25 mars 2021id pour déclenchement VMC: declencheur-vacations-reglement-vmc
Ajouter un commentaire