Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial mostrará como estender o designer de fluxo de trabalho para adicionar atividades personalizadas e lógica usando um assembly de fluxo de trabalho, às vezes chamado de atividade de fluxo de trabalho. As extensões criadas dessa forma podem ser usadas em um fluxo de trabalho, uma ação personalizada ou uma caixa de diálogo.
Este tutorial usa um exemplo muito simples para se concentrar nos requisitos e no processo para:
- Criar um projeto da Biblioteca de Classes Visual Studio
- Adicionar uma classe CodeActivity
- Definir parâmetros de entrada e saída
- Adicionar sua lógica de negócios
- Assinar e compilar o assembly
- Registre seu componente
- Teste sua montagem
- Adicionar seu assembly a uma solução
Pré-requisitos
- Uma instância Microsoft Dataverse e privilégios de administrador
- Noções básicas sobre como configurar fluxos de trabalho. Mais informações: fluxos de trabalho clássicos do Dataverse
- Um aplicativo controlado por modelos que permite editar contas.
Objetivo
O exemplo a seguir criará uma atividade de fluxo de trabalho personalizada simples que pode ser usada em um fluxo de trabalho, caixa de diálogo ou processo de ação. Mais informações: Configurar estágios e etapas de fluxo de trabalho
Essa atividade de fluxo de trabalho personalizada corresponderá aos seguintes requisitos:
- Aceitar um parâmetro de entrada decimal
- Gerar um valor igual ao parâmetro de entrada mais 10.
Em um fluxo de trabalho para a entidade Conta , ele pode ser usado da seguinte maneira para incrementar o valor do limite de crédito usando duas etapas:
A etapa 1 usa a atividade de fluxo de trabalho personalizada Exemplo: Incrementar em 10 para receber o valor de Limite de Crédito da Conta e incrementá-lo em 10. A etapa 2 usa a ação Atualizar Registro para atualizar o valor do Limite de Crédito da Conta com o valor incrementado.
Etapa 1: Obter o limite de crédito de conta incrementado
Quando a primeira etapa for adicionada, a atividade de fluxo de trabalho personalizada estará disponível no grupo Exemplo e terá o nome Incrementar em 10.
Ao configurar a primeira etapa clicando no botão Definir Propriedades , a propriedade de entrada Decimal será necessária e aceitará apenas um valor decimal, como o atributo Limite de Crédito da entidade Conta .
Etapa 2: Definir novo limite de crédito da conta
Na segunda etapa, uma ação Atualizar registro usará a saída da etapa Obter limite incrementado de Crédito da Conta para atualizar o valor do limite de Crédito da Conta com o valor incrementado.
Criar um projeto da Biblioteca de Classes Visual Studio
Este projeto criará uma montagem simples de fluxo de trabalho que incrementará um valor decimal em 10 unidades.
Inicie Visual Studio.
No menu Arquivo, clique em Novo e clique em Project.
Pesquise a biblioteca de classes e selecione Biblioteca de Classes (.NET Framework).
Clique em Próximo.
Especifique um nome e um local para a solução.
Note
Escolha um nome de projeto que faça sentido para seu projeto. Neste exemplo, usaremos
SampleWorkflowActivity.Clique em Criar.
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Propriedades. Na guia Aplicativo , verifique se uma versão da estrutura com suporte está definida como a estrutura de destino.
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Gerenciar Pacotes NuGet... .
Procure pelo pacote NuGet Microsoft.CrmSdk.Workflow e instale-o.
Note
Verifique se o pacote que você está instalando pertence ao crmsdk. Este pacote incluirá a
Microsoft.Xrm.Workflow.dllincluir uma dependência do pacote Microsoft.CrmSdk.CoreAssemblies para que o assembly necessárioMicrosoft.Xrm.Sdk.dlltambém seja incluído.Você deve clicar em Aceitar na caixa de diálogo Aceitação da Licença .
Renomear o arquivo de classe
Em Gerenciador de Soluções, clique com o botão direito do mouse no arquivo de Class1.cs padrão e selecione Renomear.
Note
Escolha um nome de classe que faça sentido para sua atividade. Neste exemplo, nomearemos a classe
IncrementByTen.Selecione Sim na caixa de diálogo que pergunta se você também deseja renomear a classe.
Abra o arquivo IncrementByTen.cs e adicione o seguinte usando diretivas:
using System.Activities; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Workflow;Faça com que a classe herde da classe CodeActivity e dê a ela um modificador de acesso público, conforme mostrado aqui:
public class IncrementByTen: CodeActivity { }Adicione o método Execute da
CodeActivityclasse usando Visual Studio ações rápidas ou manualmente:
A classe agora tem esta aparência:
public class IncrementByTen : CodeActivity { protected override void Execute(CodeActivityContext context) { throw new NotImplementedException(); } }
Definir parâmetros de entrada e saída
Adicione um conjunto de parâmetros de entrada e saída em que o valor do parâmetro de saída será o valor do parâmetro de entrada incrementado em 10.
public class IncrementByTen : CodeActivity { [RequiredArgument] [Input("Decimal input")] public InArgument<decimal> DecInput { get; set; } [Output("Decimal output")] public OutArgument<decimal> DecOutput { get; set; } protected override void Execute(CodeActivityContext context) { } }Note
Observe como atributos do .NET são usados para fornecer metadados sobre os parâmetros do assembly. Mais informações: Adicionar parâmetros
Adicionar sua lógica de negócios
Adicione a lógica dentro do método Execute para aplicar a lógica para incrementar o valor de entrada em 10.
protected override void Execute(CodeActivityContext context)
{
decimal input = DecInput.Get(context);
DecOutput.Set(context, input + 10);
}
Assinar e compilar o assembly
Os conjuntos de atividade de fluxo de trabalho personalizada (e de plug-in) devem ser assinados. Nas propriedades do projeto, na guia Assinatura, selecione Assinar o assembly. Abaixo , escolha um arquivo de chave de nome forte, selecione a opção <Novo...> . Você não precisa definir uma senha para a finalidade deste tutorial. Para este exemplo, criamos um novo arquivo de chave de nome forte chamado
SampleWorkflowActivity.snk
Crie a solução no modo Depurar e verifique se o
SampleWorkflowActivity.dllassembly está na/bin/Debugpasta.
Note
Ao desenvolver um assembly, não há problema em usar a configuração de compilação Debug. Ao implantar seu assembly em um servidor de produção ou em uma solução, você deve usar a configuração de build Release.
Registre seu componente
Os conjuntos de atividades de fluxo de trabalho personalizadas são registrados usando a ferramenta de Registro de Plug-in. A ferramenta fornece uma interface gráfica do usuário e dá suporte ao registro de assemblies que contêm plug-ins ou atividades personalizadas de fluxo de trabalho. Para obter a ferramenta Registro de Plug-in, consulte: Ferramentas de desenvolvimento do Dataverse
Conectar-se usando a ferramenta de Registro de Plug-in
Abra a ferramenta de Registro de Plug-in executando o comando PAC CLI
pac tool prt.Selecione +Criar nova conexão para se conectar ao seu ambiente do Dataverse.
Verifique se Office 365 está marcada.
Se você estiver se conectando usando uma conta da Microsoft diferente de uma que você está usando no momento, selecione Mostrar Avançado e insira suas credenciais. Caso contrário, deixe Entrar como o usuário atual selecionado.
Note
Se sua conta de usuário emprega MFA (autenticação multifator), verifique se a caixa de seleção Mostrar Avançado não está marcada.
Se sua conta da Microsoft fornecer acesso a vários ambientes, selecione Exibir lista de organizações disponíveis.
Selecione Logon.
Se você selecionou Exibir lista de organizações disponíveis, selecione a organização à qual deseja se conectar e selecione Logon.
Depois de conectado, você verá todos os plug-ins registrados existentes, atividades de fluxo de trabalho personalizadas e provedores de dados.
Registre seu componente
Selecione Registrar>Registrar nova montagem
Na caixa de diálogo Registrar nova montagem, clique no botão de reticências (…) e navegue até
SampleWorkflowActivity.dllna pasta/bin/Debug.
Note
Observação: com o Dataverse, as únicas opções válidas para as Etapas 3 e 4 são selecionadas e as opções inválidas estão desabilitadas.
Clique em Registrar Plug-ins Selecionados. Você deve ver uma caixa de diálogo de confirmação.
Clique em OK para fechar a caixa de diálogo Registrar nova montagem.
Configurar nomes de atividade
Na lista de Plug-ins Registrados e Atividades de Fluxo de Trabalho Personalizadas, localize o (Assembly) SampleWorkflowActivity e expanda-o para mostrar a (Workflow Activity) SampleWorkflow.Activity.IncrementByTen - Isolatable.
Selecione o (Atividade de Fluxo de Trabalho) SampleWorkflow.Activity.IncrementByTen – Isolável e, na área Propriedades , edite as propriedades editáveis usando os valores na tabela a seguir:
Campo Editável Valor Original Novo valor Description Description Retorna o valor do parâmetro de entrada mais 10. Não está visível na interface do usuário do designer de processo, mas pode ser útil ao gerar a documentação dos dados extraídos da Entidade PluginType que armazena essas informações. Nome Amigável um valor do tipo GUID IncrementByTen Nome de fácil identificação para o plug-in. Nome SampleWorkflowActivity.IncrementByTen Incrementar por 10 O nome do menu representado Nome do Grupo de Atividades do Fluxo de Trabalho SampleWorkflowActivity (1.0.0.0) Sample O nome do submenu adicionado ao menu principal no designer de processo do Dataverse. Note
Se o Nome e o WorkflowActivityGroupName estiverem definidos como nulos, a atividade personalizada não ficará visível no designer de processo.
Clique no botão Salvar (ícone) para salvar as alterações.
Teste sua montagem
Você pode testar sua nova atividade de fluxo de trabalho criando um processo que a usará. Use estas etapas para criar o processo de fluxo de trabalho descrito na seção Meta acima:
Abrir Power Apps
Selecione Soluções.
Abra a solução Publicador Padrão do CDS.
No menu, expanda o ... e escolha Alternar para clássico.
Selecionar processos na lista De componentes
Selecione Novo e, na caixa de diálogo Criar Processo , insira o seguinte:
Campo Value Nome do processo Teste de SampleWorkflowActivity.IncrementByTen Categoria Workflow Entity Conta Execute esse fluxo de trabalho em segundo plano (recomendado) Não selecionado Note
A opção para executar esse fluxo de trabalho em segundo plano foi desativada para tornar esse fluxo de trabalho em tempo real (síncrono). Isso tornará o teste mais simples.
Clique em OK
Aplique as seguintes alterações:
Campo Value Scope Organization Iniciar quando: registrar a alteração de campos selecionado, e o campo nameespecificado na caixa de diálogo.
Note
Definir o escopo para a organização cria um fluxo de trabalho que pode ser aplicado por qualquer pessoa na organização.
Adicione a seguinte etapa:
Defina a descrição da etapa para obter o limite de crédito de conta incrementado e clique em Definir propriedades.
Defina o valor da propriedade de entrada Decimal como o Limite de Crédito da conta com um valor padrão de 0.
Clique em Salvar e Fechar.
Adicione uma etapa de Registro de Atualização :
Clique em Definir Propriedades e defina o valor do Limite de Crédito como o valor da etapa Obter limite de crédito da conta incrementada .
As etapas de fluxo de trabalho devem ter esta aparência:
Clique em Salvar e Fechar.
Ative o fluxo de trabalho clicando em Ativar no menu...
E clique em Ativar na caixa de diálogo Ativar Confirmação do Processo .
Navegue até um aplicativo baseado em modelo e visualize uma lista de contas.
Selecione uma conta.
Edite o valor do campo Nome da Conta .
Salve o registro da conta.
Verifique se o valor de Limite de Crédito da conta que você editou foi aumentado em 10.
Adicionar seu assembly a uma solução
Para distribuir uma atividade personalizada de fluxo de trabalho em uma solução, você deve adicionar a uma solução não gerenciada o assembly registrado que a contém.
Abra a solução não gerenciada à qual você deseja adicionar o assembly usando Power Apps
Selecione Adicionar existente>Outro>Assembly de plug-in
Pesquise o assembly do Plug-in pelo nome, nesse caso 'SampleWorkflowActivity'.
Selecione o assembly do plug-in e selecione Adicionar.
Consulte também
Extensões de fluxo de trabalho
Exemplo: criar uma atividade de fluxo de trabalho personalizada
Exemplo: atualizar o próximo aniversário usando uma atividade de fluxo de trabalho personalizada
Exemplo: calcular uma pontuação de crédito com uma atividade de fluxo de trabalho personalizada