

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Registro do tipo de fluxo de trabalho e atividade
<a name="features.registration"></a>

O Amazon SWF exige que os tipos de atividade e fluxo de trabalho sejam registrados antes de poderem ser usados. A estrutura registra automaticamente os fluxos de trabalho e as atividades nas implementações adicionadas ao operador. A estrutura procura por tipos que implementam fluxos de trabalho e atividades e os registra no Amazon SWF. Por padrão, a estrutura usa as definições de interface para inferir as opções de registro para os tipos de fluxo de trabalho e de atividade. Todas as interfaces de fluxo de trabalho precisam ter a anotação `@WorkflowRegistrationOptions` ou a anotação `@SkipRegistration`. O operador do fluxo de trabalho registra todos os tipos de fluxos de trabalho com os quais está configurado que possuem a anotação `@WorkflowRegistrationOptions`. Do mesmo modo, cada método de atividade precisa estar anotado com a anotação `@ActivityRegistrationOptions` ou a anotação `@SkipRegistration`, ou uma dessas anotações deve estar presente na interface `@Activities`. O operador da atividade registra todos os tipos de atividades com as quais está configurado e que possuem uma anotação `@ActivityRegistrationOptions`. O registro é realizado automaticamente ao iniciar um dos operadores. Tipos de fluxos de trabalho e de atividades que têm a anotação `@SkipRegistration` não são registrados. As anotações `@ActivityRegistrationOptions` e `@SkipRegistration` têm semântica de substituição e o mais específico é aplicado a um tipo de atividade. 

Observe que o Amazon SWF não permite que você registre novamente ou modifique o tipo depois que ele foi registrado. A estrutura tentará registrar todos os tipos, mas se o tipo já está registrado ele não será registrado novamente e nenhum erro será relatado.

Se precisar modificar as configurações registadas, é necessário registrar uma nova versão do tipo. Você também pode substituir as configurações registradas ao iniciar uma nova execução ou ao chamar uma atividade que usa os clientes gerados.

O registro exige um nome do tipo e outras opções de registro. A implementação padrão determina as seguintes:

## Nome e versão do tipo de fluxo de trabalho
<a name="features.registration.workflow"></a>

A estrutura determina o nome do tipo de fluxo de trabalho a partir da interface do fluxo de trabalho. A forma do nome do tipo de fluxo de trabalho padrão é {{{prefix}}} {{{name}}}. O {{{prefix}}} é definido com o nome da `@Workflow` interface seguido por um '.' e o {{{name}}} é definido com o nome do `@Execute` método. O nome padrão do tipo de fluxo de trabalho no exemplo anterior é `MyWorkflow.startMyWF`. Você pode substituir o nome padrão usando o parâmetro nome do método `@Execute`. O nome padrão do tipo de fluxo de trabalho no exemplo é `startMyWF`. O nome não pode ser uma string vazia. Observe que ao substituir o nome usando `@Execute`, a estrutura não adiciona um prefixo automaticamente. Você está livre para usar o seu próprio esquema de nomenclatura. 

A versão do fluxo de trabalho é especificada usando o parâmetro `version` da anotação `@Execute`. Não há um padrão para `version` e ele deve ser explicitamente especificado. O `version` é uma string de formato livre e você pode usar o seu próprio esquema de versionamento. 

## Nome do sinal
<a name="features.registration.signal"></a>

O nome do sinal pode ser especificado usando o parâmetro de nome da anotação `@Signal`. Se não especificado, ele assume o nome do método do sinal como padrão.

## Nome e versão do tipo de atividade
<a name="features.registration.activity"></a>

A estrutura determina o nome do tipo de atividade a partir da interface de atividades. A forma do nome do tipo de atividade padrão é {{{prefix}}} {{{name}}}. O {{{prefix}}} é definido com o nome da `@Activities` interface seguido por um '.' e o {{{name}}} é definido com o nome do método. O padrão {{{prefix}}} pode ser substituído na `@Activities` anotação na interface de atividades. Também é possível especificar o nome do tipo de atividade usando a anotação `@Activity` no método da atividade. Observe que ao substituir o nome usando `@Activity`, a estrutura não adicionará um prefixo automaticamente. Você está livre para usar o seu próprio esquema de nomenclatura.

 A versão da atividade é especificada usando o parâmetro de versão da anotação `@Activities`. Essa versão é usada como padrão para todas as atividades definidas na interface e pode ser substituída para cada atividade usando a anotação `@Activity`. 

## Lista de tarefas padrão
<a name="features.registration.defaulttasklist"></a>

A lista de tarefas padrão pode ser configurada usando as anotações `@WorkflowRegistrationOptions` e `@ActivityRegistrationOptions` e definindo o parâmetro `defaultTaskList`. Por padrão, ele é definido como `USE_WORKER_TASK_LIST`. Este é um valor especial que instrui a estrutura a usar a lista de tarefas que está configurada no objeto do operador usado para registrar o tipo de atividade ou de fluxo de trabalho. Você pode optar por não registrar uma lista de tarefas padrão configurando a lista de tarefas padrão como `NO_DEFAULT_TASK_LIST` usando essas anotações. Isso pode ser usada em casos onde deseja exigir que a lista de tarefas seja especificada durante o tempo de execução. Se nenhuma lista de tarefas padrão foi registrada, é necessário especificar a lista de tarefas ao iniciar o fluxo de trabalho ou ao chamar o método da atividade usando os parâmetros `StartWorkflowOptions` e `ActivitySchedulingOptions` na respectiva sobrecarga de método do cliente gerado. 

## Outras opções de registro
<a name="features.registration.other"></a>

Todas as opções de registro de fluxo de trabalho e tipo de atividade permitidas pela API do Amazon SWF podem ser especificadas por meio da estrutura.

Para obter uma lista completa das opções de registro de *fluxo de trabalho*, consulte os seguintes:
+ [@Fluxo de trabalho](annotations.md#annotations-workflow)
+ [@Execute](annotations.md#annotations-execute)
+ [@WorkflowRegistrationOptions](annotations.md#annotations-workflowregistrationoptions)
+ [@Signal](annotations.md#annotations-signal)

Para obter uma lista completa das opções de registro de *atividade*, consulte os seguintes:
+ [@Atividades](annotations.md#annotations-activity)
+ [@Atividades](annotations.md#annotations-activities)
+ [@ActivityRegistrationOptions](annotations.md#annotations-activityregistration)

Se desejar ter controle total sobre o registro de tipo, consulte [Extensibilidade de operadores](running.md#running.workerextend).