Tutorial: Criar extensão de fluxo de trabalho

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:

  1. Aceitar um parâmetro de entrada decimal
  2. 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 meta deste tutorial.

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.

O incremento por 10 etapas.

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 .

Configurando a entrada decimal.

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.

Atualize o limite de crédito.

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.

  1. Inicie Visual Studio.

  2. No menu Arquivo, clique em Novo e clique em Project.

  3. Pesquise a biblioteca de classes e selecione Biblioteca de Classes (.NET Framework).

    Procurando por biblioteca de classes (.NET Framework).

  4. Clique em Próximo.

  5. Especifique um nome e um local para a solução.

    Configure a caixa de diálogo do novo projeto no Visual Studio 2019.

    Note

    Escolha um nome de projeto que faça sentido para seu projeto. Neste exemplo, usaremos SampleWorkflowActivity.

  6. Clique em Criar.

  7. 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.

    definir propriedades do projeto.

  8. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Gerenciar Pacotes NuGet... .

    gerenciar pacotes nuget.

  9. Procure pelo pacote NuGet Microsoft.CrmSdk.Workflow e instale-o.

    Instale o pacote NuGet Microsoft.CrmSdk.Workflow Workflow.

    Note

    Verifique se o pacote que você está instalando pertence ao crmsdk. Este pacote incluirá a Microsoft.Xrm.Workflow.dll incluir uma dependência do pacote Microsoft.CrmSdk.CoreAssemblies para que o assembly necessário Microsoft.Xrm.Sdk.dll também seja incluído.

  10. Você deve clicar em Aceitar na caixa de diálogo Aceitação da Licença .

    Aceite o contrato de licença.

Renomear o arquivo de classe

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no arquivo de Class1.cs padrão e selecione Renomear.

    Renomeie o arquivo Class1.cs.

    Note

    Escolha um nome de classe que faça sentido para sua atividade. Neste exemplo, nomearemos a classe IncrementByTen.

  2. Selecione Sim na caixa de diálogo que pergunta se você também deseja renomear a classe.

    Selecione Sim para renomear a classe também.

  3. Abra o arquivo IncrementByTen.cs e adicione o seguinte usando diretivas:

    using System.Activities;
    using Microsoft.Xrm.Sdk;
    using Microsoft.Xrm.Sdk.Workflow;
    
  4. 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
        {
    
        }
    
  5. Adicione o método Execute da CodeActivity classe usando Visual Studio ações rápidas ou manualmente:

    implementar a interface CodeActivity.

  6. 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

  1. 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

  1. 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

    conjunto de sinalização.

  2. Crie a solução no modo Depurar e verifique se o SampleWorkflowActivity.dll assembly está na /bin/Debug pasta.

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

  1. Abra a ferramenta de Registro de Plug-in executando o comando PAC CLI pac tool prt.

  2. Selecione +Criar nova conexão para se conectar ao seu ambiente do Dataverse.

  3. Verifique se Office 365 está marcada.

  4. 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.

  5. Se sua conta da Microsoft fornecer acesso a vários ambientes, selecione Exibir lista de organizações disponíveis.

    Efetuar login com a ferramenta de registro de plug-in.

  6. Selecione Logon.

  7. Se você selecionou Exibir lista de organizações disponíveis, selecione a organização à qual deseja se conectar e selecione Logon.

  8. Depois de conectado, você verá todos os plug-ins registrados existentes, atividades de fluxo de trabalho personalizadas e provedores de dados.

    Exibir plug-ins existentes e atividades de fluxo de trabalho personalizadas.

Registre seu componente

  1. Selecione Registrar>Registrar nova montagem

    registrar o comando assembly.

  2. Na caixa de diálogo Registrar nova montagem, clique no botão de reticências () e navegue até SampleWorkflowActivity.dll na pasta /bin/Debug.

    caixa de diálogo de registro de assembly.

    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.

  3. Clique em Registrar Plug-ins Selecionados. Você deve ver uma caixa de diálogo de confirmação.

    caixa de diálogo do plug-in registrado.

  4. Clique em OK para fechar a caixa de diálogo Registrar nova montagem.

Configurar nomes de atividade

  1. 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.

  2. 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.

  3. Clique no botão Salvar (ícone) para salvar as alterações.

    Salve as propriedades da atividade do fluxo de trabalho.

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:

  1. Abrir Power Apps

  2. Selecione Soluções.

  3. Abra a solução Publicador Padrão do CDS.

  4. No menu, expanda o ... e escolha Alternar para clássico.

    Alterne para a interface do usuário clássica.

  5. Selecionar processos na lista De componentes

  6. 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.

    Criando um processo.

  7. Clique em OK

  8. Aplique as seguintes alterações:

    Campo Value
    Scope Organization
    Iniciar quando: registrar a alteração de campos selecionado, e o campo name especificado na caixa de diálogo.

    configuração de um fluxo de trabalho de teste.

    Note

    Definir o escopo para a organização cria um fluxo de trabalho que pode ser aplicado por qualquer pessoa na organização.

  9. Adicione a seguinte etapa:

    Adicione a etapa SampleWorkflowActivity.IncrementByTen.

  10. Defina a descrição da etapa para obter o limite de crédito de conta incrementado e clique em Definir propriedades.

  11. Defina o valor da propriedade de entrada Decimal como o Limite de Crédito da conta com um valor padrão de 0.

    Defina a propriedade de entrada decimal.

  12. Clique em Salvar e Fechar.

  13. Adicione uma etapa de Registro de Atualização :

    Adicione uma etapa de registro de atualização.

  14. 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 .

    Defina o valor do limite de crédito.

    As etapas de fluxo de trabalho devem ter esta aparência:

    O fluxo de trabalho concluído.

  15. Clique em Salvar e Fechar.

  16. Ative o fluxo de trabalho clicando em Ativar no menu...

    ativar o comando de fluxo de trabalho.

  17. E clique em Ativar na caixa de diálogo Ativar Confirmação do Processo .

    Caixa de diálogo de confirmação da ativação do processo.

  18. Navegue até um aplicativo baseado em modelo e visualize uma lista de contas.

  19. Selecione uma conta.

  20. Edite o valor do campo Nome da Conta .

  21. Salve o registro da conta.

  22. Verifique se o valor de Limite de Crédito da conta que você editou foi aumentado em 10.

    verificar o limite de crédito da conta incrementado.

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.

  1. Abra a solução não gerenciada à qual você deseja adicionar o assembly usando Power Apps

  2. Selecione Adicionar existente>Outro>Assembly de plug-in

    Adicione o assembly de plug-in existente.

  3. Pesquise o assembly do Plug-in pelo nome, nesse caso 'SampleWorkflowActivity'.

  4. 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