

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Historique du flux de travail dans Amazon SWF
<a name="swf-dev-about-workflow-history"></a>

Amazon SWF enregistre la progression de chaque exécution du flux de travail dans l'*historique du flux* de travail, c'est-à-dire un enregistrement détaillé, complet et cohérent de chaque événement survenu depuis le début de l'exécution du flux de travail. 

Un *événement* représente un changement discret de l'état d'exécution de votre flux de travail, tel qu'une nouvelle activité planifiée ou la fin d'une activité en cours. L'historique du flux de travail contient tous les événements qui entraînent la modification de l'état de l'exécution du flux de travail, telle que les activités planifiées et terminées, l'expiration des tâches et les signaux.

Généralement, les opérations qui ne modifient pas l'état de l'exécution du flux de travail n'apparaissent pas dans l'historique de ce dernier. Par exemple, l'historique du flux de travail ne montre pas les tentatives de recherche de tâches ni l'utilisation des opérations de visibilité.

L'historique du flux de travail présente plusieurs avantages clés :
+ Les applications peuvent être apatrides, car toutes les informations relatives à l'exécution d'un flux de travail sont stockées dans l'historique du flux de travail.
+ Pour chaque exécution de flux de travail, l'historique fournit un enregistrement des activités qui ont été planifiées, de leur état actuel et de leurs résultats. L'exécution du flux de travail utilise ces informations pour déterminer les étapes suivantes.
+ L'historique fournit une piste d'audit détaillée que vous pouvez utiliser pour surveiller les exécutions de flux de travail en cours et pour vérifier les exécutions de flux de travail terminées.

Voici une vue conceptuelle de l'historique de flux de travail du commerce en ligne :

```
Invoice0001

Start Workflow Execution

Schedule Verify Order
Start Verify Order Activity
Complete Verify Order Activity

Schedule Charge Credit Card
Start Charge Credit Card Activity
Complete Charge Credit Card Activity

Schedule Ship Order
Start Ship Order Activity
```

Dans l'exemple précédent, la commande est en attente d'envoi. Dans l'exemple suivant, la commande est terminée. Comme l'historique du flux de travail est cumulé, les événements les plus récents s'ajoutent :

```
Invoice0001

Start Workflow Execution

Schedule Verify Order
Start Verify Order Activity
Complete Verify Order Activity

Schedule Charge Credit Card
Start Charge Credit Card Activity
Complete Charge Credit Card Activity

Schedule Ship Order
Start Ship Order Activity

Complete Ship Order Activity

Schedule Record Order Completion
Start Record Order Completion Activity
Complete Record Order Completion Activity

Close Workflow
```

Du point de vue de la programmation, les événements de l'historique d'exécution du flux de travail sont représentés sous forme d'objets JSON ( JavaScript Object Notation). L'historique lui-même est un tableau JSON de ces objets. Chaque événement comporte les éléments suivants :
+ Un type, tel que [WorkflowExecutionStarted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_WorkflowExecutionStartedEventAttributes.html)ou [ActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskCompletedEventAttributes.html)
+ Un horodatage au format horaire Unix
+ Un ID qui identifie l'événement de manière unique

En outre, chaque type d'événement inclut un ensemble distinct d'attributs descriptifs qui lui sont spécifiques. Par exemple, l'`ActivityTaskCompleted`événement possède des attributs qui contiennent les IDs événements correspondant à l'heure à laquelle la tâche d'activité a été planifiée et à laquelle elle a été démarrée, ainsi qu'un attribut contenant les données de résultat.

Vous pouvez obtenir une copie de l'état actuel de l'historique d'exécution du flux de travail en utilisant cette [GetWorkflowExecutionHistory](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_GetWorkflowExecutionHistory.html)action. En outre, dans le cadre de l'interaction entre Amazon SWF et le décideur de votre flux de travail, celui-ci reçoit régulièrement des copies de l'historique.

Voici un extrait d'historique d'exécution du flux de travail au format JSON.

```
[  {
      "eventId": 11,
      "eventTimestamp": 1326671603.102,
      "eventType": "WorkflowExecutionTimedOut",
      "workflowExecutionTimedOutEventAttributes": {
         "childPolicy": "TERMINATE",
         "timeoutType": "START_TO_CLOSE"
      }
   }, {
      "decisionTaskScheduledEventAttributes": {
         "startToCloseTimeout": "600",
         "taskList": {
            "name": "specialTaskList"
         }
      },
      "eventId": 10,
      "eventTimestamp": 1326670566.124,
      "eventType": "DecisionTaskScheduled"
   }, {
      "activityTaskTimedOutEventAttributes": {
         "details": "Waiting for confirmation",
         "scheduledEventId": 8,
         "startedEventId": 0,
         "timeoutType": "SCHEDULE_TO_START"
      },
      "eventId": 9,
      "eventTimestamp": 1326670566.124,
      "eventType": "ActivityTaskTimedOut"
   }, {
      "activityTaskScheduledEventAttributes": {
         "activityId": "verification-27",
         "activityType": {
            "name": "activityVerify",
            "version": "1.0"
         },
         "control": "digital music",
         "decisionTaskCompletedEventId": 7,
         "heartbeatTimeout": "120",
         "input": "5634-0056-4367-0923,12/12,437",
         "scheduleToCloseTimeout": "900",
         "scheduleToStartTimeout": "300",
         "startToCloseTimeout": "600",
         "taskList": {
            "name": "specialTaskList"
         }
      },
      "eventId": 8,
      "eventTimestamp": 1326670266.115,
      "eventType": "ActivityTaskScheduled"
   }, {
      "decisionTaskCompletedEventAttributes": {
         "executionContext": "Black Friday",
         "scheduledEventId": 5,
         "startedEventId": 6
      },
      "eventId": 7,
      "eventTimestamp": 1326670266.103,
      "eventType": "DecisionTaskCompleted"
   }, {
      "decisionTaskStartedEventAttributes": {
         "identity": "Decider01",
         "scheduledEventId": 5
      },
      "eventId": 6,
      "eventTimestamp": 1326670161.497,
      "eventType": "DecisionTaskStarted"
   }, {
      "decisionTaskScheduledEventAttributes": {
         "startToCloseTimeout": "600",
         "taskList": {
            "name": "specialTaskList"
         }
      },
      "eventId": 5,
      "eventTimestamp": 1326668752.66,
      "eventType": "DecisionTaskScheduled"
   }, {
      "decisionTaskTimedOutEventAttributes": {
         "scheduledEventId": 2,
         "startedEventId": 3,
         "timeoutType": "START_TO_CLOSE"
      },
      "eventId": 4,
      "eventTimestamp": 1326668752.66,
      "eventType": "DecisionTaskTimedOut"
   }, {
      "decisionTaskStartedEventAttributes": {
         "identity": "Decider01",
         "scheduledEventId": 2
      },
      "eventId": 3,
      "eventTimestamp": 1326668152.648,
      "eventType": "DecisionTaskStarted"
   }, {
      "decisionTaskScheduledEventAttributes": {
         "startToCloseTimeout": "600",
         "taskList": {
            "name": "specialTaskList"
         }
      },
      "eventId": 2,
      "eventTimestamp": 1326668003.094,
      "eventType": "DecisionTaskScheduled"
   }
]
```

Pour obtenir une liste détaillée des différents types d'événements pouvant apparaître dans l'historique d'exécution du flux de travail, consultez le type de [HistoryEvent](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_HistoryEvent.html)données dans le manuel *Amazon Simple Workflow Service API Reference*.

Amazon SWF stocke l'historique complet de toutes les exécutions de flux de travail pendant un nombre de jours configurable après la fin de l'exécution. Cette période, qui est appelée la période de conservation de l'historique du flux de travail, est spécifiée lorsque vous enregistrez un *domaine* pour votre flux de travail. Nous aborderons les domaines plus en détail ultérieurement dans cette section.