

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.

# Enregistrement des types de flux de travail et d'activité
<a name="features.registration"></a>

Amazon SWF exige que les types d'activité et de flux de travail soient enregistrés avant de pouvoir être utilisés. L'infrastructure enregistre automatiquement les flux de travail et les activités dans les implémentations que vous ajoutez à l'exécuteur. Le framework recherche les types qui implémentent des flux de travail et des activités et les enregistre auprès d'Amazon SWF. Par défaut, l'infrastructure utilise les définitions d'interface pour déduire des options d'enregistrement pour les types de flux de travail et d'activité. Toutes les interfaces de flux de travail doivent avoir l'annotation `@WorkflowRegistrationOptions` ou l'annotation `@SkipRegistration`. L'exécuteur de flux de travail enregistre tous les types de flux de travail avec lesquels il est configuré qui ont l'annotation `@WorkflowRegistrationOptions`. De même, chaque méthode d'activité doit être annotée avec l'annotation `@ActivityRegistrationOptions` ou l'annotation `@SkipRegistration`, ou l'une de ces annotations doivent être présente dans l'interface `@Activities`. L'exécuteur d'activité enregistre tous les types d'activité avec lesquelles il est configuré auxquelles une annotation `@ActivityRegistrationOptions` s'applique. L'enregistrement est effectué automatiquement lorsque vous démarrez l'un des exécuteurs. Les flux de travail et types d'activité ayant l'annotation `@SkipRegistration` ne sont pas enregistrés. Les annotations `@ActivityRegistrationOptions` et `@SkipRegistration` remplacent les annotations sémantiques et la plus spécifique est appliquée à un type d'activité. 

Notez qu'Amazon SWF ne vous permet pas de réenregistrer ou de modifier le type une fois celui-ci enregistré. L'infrastructure tente d'enregistrer tous les types, mais si le type est déjà enregistré, celui-ci n'est pas réenregistré et aucune erreur n'est signalée.

Si vous devez modifier des paramètres enregistrés, vous devez enregistrer une nouvelle version du type. Vous pouvez également remplacer des paramètres enregistrés quand vous démarrez une nouvelle exécution ou quand vous appelez une activité qui utilise les clients générés.

L'enregistrement nécessite un nom de type et d'autres options d'enregistrement. L'implémentation par défaut détermine ces options comme suit :

## Nom et version de type de flux de travail
<a name="features.registration.workflow"></a>

L'infrastructure détermine le nom du type de flux de travail à partir de l'interface de flux de travail. La forme du nom du type de flux de travail par défaut est \$1*prefix*\$1 \$1*name*\$1. Le \$1*prefix*\$1 est défini sur le nom de l'`@Workflow`interface suivi d'un «. » et le \$1*name*\$1 est défini sur le nom de la `@Execute` méthode. Le nom par défaut du type de flux de travail dans l'exemple précédent est `MyWorkflow.startMyWF`. Vous pouvez remplacer le nom par défaut à l'aide du paramètre de nom de la méthode `@Execute`. Le nom par défaut du type de flux de travail dans l'exemple est `startMyWF`. Le nom ne doit pas être une chaîne vide. Notez que lorsque vous remplacez le nom à l'aide de la méthode `@Execute`, l'infrastructure ne le fait pas précéder automatiquement par une préfixe. Vous êtes libre d'utiliser votre propre schéma d'attribution de noms. 

La version de flux de travail est spécifiée à l'aide du paramètre `version` de l'annotation `@Execute`. Il n'existe pas de valeur par défaut pour `version` et celle-ci doit être spécifiée explicitement ; `version` est une chaîne de forme libre, et vous pouvez utiliser votre propre schéma de gestion des versions. 

## Nom du signal
<a name="features.registration.signal"></a>

La nom du signal peut être spécifié à l'aide du paramètre de nom de l'annotation `@Signal`. S'il n'est pas spécifié, il prend par défaut le nom de la méthode signal.

## Nom et version de type de flux d'activité
<a name="features.registration.activity"></a>

L'infrastructure détermine le nom du type d'activité à partir de l'interface d'activités. La forme du nom du type d'activité par défaut est \$1*prefix*\$1 \$1*name*\$1. Le \$1*prefix*\$1 est défini sur le nom de l'`@Activities`interface suivi d'un «. » et le \$1*name*\$1 est défini sur le nom de la méthode. La valeur par défaut \$1*prefix*\$1 peut être remplacée dans l'`@Activities`annotation de l'interface des activités. Vous pouvez également spécifier le nom de type d'activité à l'aide de l'annotation `@Activity` sur la méthode d'activité. Notez que lorsque vous remplacez le nom à l'aide de la méthode `@Activity`, l'infrastructure ne le fera pas précéder automatiquement par une préfixe. Vous êtes libre d'utiliser votre propre schéma d'attribution de noms.

 La version d'activité est spécifiée à l'aide du paramètre de version de l'annotation `@Activities`. Cette version est utilisée comme version par défaut pour toutes les activités définies dans l'interface et peut être remplacée pour une activité individuelle à l'aide de l'annotation `@Activity`. 

## Default Task List
<a name="features.registration.defaulttasklist"></a>

La liste de tâches par défaut peut être configurée en utilisant les annotations `@WorkflowRegistrationOptions` et `@ActivityRegistrationOptions`, et en définissant le paramètre `defaultTaskList`. Par défaut, l’attribut est défini sur `USE_WORKER_TASK_LIST`. Il s'agit d'une valeur spéciale qui demande à l'infrastructure d'utiliser la liste de tâches configurée sur l'exécuteur qui est utilisé pour enregistrer le type d'activité ou de flux de travail. Vous pouvez également choisir de ne pas enregistrer de liste de tâches par défaut en définissant la liste de tâches par défaut sur `NO_DEFAULT_TASK_LIST` à l'aide de ces annotations. Vous pouvez utiliser cette option si vous souhaitez que la liste de tâches soit spécifiée lors de l'exécution. Si aucune liste de tâches n'a été enregistrée, vous devez spécifier la liste de tâches lorsque vous démarrez le flux de travail ou que vous appelez la méthode d'activité à l'aide des paramètres `StartWorkflowOptions` et `ActivitySchedulingOptions` sur la surcharge des méthodes respectives du client généré. 

## Autres options d'enregistrement
<a name="features.registration.other"></a>

Toutes les options d'enregistrement des flux de travail et des types d'activités autorisées par l'API Amazon SWF peuvent être spécifiées via le framework.

Pour accéder à une liste complète des options d'enregistrement de *flux de travail*, consultez les sections suivantes :
+ [@Flux de travail](annotations.md#annotations-workflow)
+ [@Execute](annotations.md#annotations-execute)
+ [@WorkflowRegistrationOptions](annotations.md#annotations-workflowregistrationoptions)
+ [@Signal](annotations.md#annotations-signal)

Pour accéder à une liste complète des options d'enregistrement d'*activité*, consultez les sections suivantes :
+ [@Activité](annotations.md#annotations-activity)
+ [@Activités](annotations.md#annotations-activities)
+ [@ActivityRegistrationOptions](annotations.md#annotations-activityregistration)

Si vous voulez exercer un contrôle complet sur le type d'enregistrement, consultez [Extensibilité de l'exécuteur](running.md#running.workerextend).