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 tópico faz parte da documentação de pré-lançamento e está sujeito a alterações.]
O objetivo destes exemplos de plug-ins é ajudar você a integrá-los aos seus aplicativos. Você vai entender que a experiência inclui criação de APIs personalizadas do Microsoft Dataverse com respaldo de expressões do Power Fx, que podem disparar ações internas ou externas no Dataverse.
Importante
- Os plug-ins instantâneos de low-code não são priorizados e não estão sendo entregues como um recurso. Os plug-ins instantâneos de low-code são substituídos por funções. Mais informações: Funções no Microsoft Dataverse (versão preliminar)
- Este é um recurso em versão preliminar.
- Os recursos de versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.
Pré-requisito
Para usar um dos exemplos de plug-ins para o evento de dados, o aplicativo de acelerador do Dataverse deve estar instalado no ambiente. Mais informações: Pré-requisitos para criar um plug-in low-code
Observação
Os modelos de email estão disponíveis apenas para determinadas tabelas. Mais informações: Criar modelos para email
Retornar um valor não negativo
Este exemplo usa a função Abs para retornar o valor não negativo de seu argumento. Se o número for negativo, a função Abs retorna o equivalente positivo.
Execute aplicativo de acelerador do Dataverse, na barra de comandos, e selecione Nova ação>Plug-in instantâneo.
Dê um nome de exibição, como o nome da fórmula e a descrição.
Criar um parâmetro
Outpara validar o comportamento esperado mais apropriado, como uma string. Como opção, use parâmetros de entrada para facilitar o teste, algo que combine com a fórmula.No editor de fórmulas, coloque o parâmetro
Outentre chaves:{Out: "" }Insira uma expressão que teste a fórmula:
- Valide se o Intellisense aceita a fórmula (o texto ficará azul claro).
- Implemente uma expressão que forneça uma saída para ajudar a validar o resultado, por exemplo.
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }Selecione Próximo e Salvar.
Selecione Testar para testar a fórmula. Use o parâmetro de saída para validar o resultado.
Validação de entrada e erros de personalização
Detecção de duplicidades
Implemente a validação de entrada no servidor, como detecção de erro de duplicidade, que gera uma mensagem de erro personalizada.
- Execute aplicativo de acelerador do Dataverse, na barra de comandos, e selecione Nova ação>Plug-in automatizado.
- Na caixa Nome, insira Verificação de duplicidade.
- Em Tabela, selecione Contato.
- Em Executar este plug-in quando a linha for, selecione Criada.
- Na caixa Fórmula, insira esta fórmula:
If( !IsBlank(LookUp([@Contacts],'Last Name'=ThisRecord.'Last Name' && 'First Name'=ThisRecord.'First Name')),
Error("You have existing contacts with the same first name and last name")
)
- Selecione Salvar.
Testar o plug-in
- Para testar o plug-in, crie um aplicativo de tela usando a tabela de contatos seguindo as etapas aqui: Especificar uma tabela.
- Crie uma linha de contato.
- Crie outro contato com o mesmo nome da etapa anterior.
- Uma mensagem é exibida indicando registros duplicados encontrados. Selecione Ignorar e salvar no prompt da mensagem de erro.
Esta mensagem de erro personalizada é exibida: Você tem dois contatos com nome e sobrenome iguais.
Validação de dados
Exiba tipos específicos de erros usando a enumeração ErrorKind.
Crie um novo plug-in automatizado.
Forneça os seguintes valores:
- Nome: validação de entrada
- Descrição: verifica se a data é válida e gera um erro se for inválida
- Tabela: Compromisso
- Executar este plug-in quando a linha for: Atualizada
Insira a fórmula abaixo:
If(ThisRecord.'Due Date' < Now(), Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" }) );Em Opções avançadas, defina Quando executar como Pré-operação; você vai executar essa regra antes que os dados sejam salvos para evitar dados inválidos.
Selecione Salvar.
Acesse Error() function para saber mais sobre erros de personalização.
Enviar email com base em um evento de dados
Pré-requisitos:
- Sincronização no servidor configurada no seu ambiente. Mais informações: Configurar sincronização no servidor de emails, compromissos, contatos e tarefas
- Como modelo de email.
Exemplo de modelo de email
Aqui está um exemplo de modelo de email que você pode criar para o evento de dados baseado em SenMail:
- Tipo de modelo: Global
- Nome: Agradecimento pelo pedido
- Descrição: Use este modelo para agradecer a um cliente por fazer um pedido com você.
-
Assunto:
Thank you for your order <orderconfirmation-{!salesorder:Order Number; }> - Corpo: use este código.
Hello {!Sales Order:First Name;},
Order Type: {! Sales Order: Order Type;},
Location Type: {! Sales Order: Location Type;},
Address1: {! Sales Order: Address 1;},
Address2: {! Sales Order: Address 2;},
Preferred Service Start Date 1: {! Sales Order: Preferred Service Start Date;},
Next Step- We take upto 48 hrs to schedule an in-person and will notify you as soon as we have a In-person Technician allocated at your site. For any questions, please contact us at 1-800-CON-SOLAR
Yours Sincerely,
Contoso Sales
Criar o plug-in automatizado
- Execute o aplicativo de acelerador do Dataverse e selecione +Novo plug-in em Plug-ins automatizados.
- Digite as seguintes informações:
Nome: SendEmailUponCreate
Tabela: selecione o nome lógica da tabela dos pedidos de venda, que é SalesOrder. Este evento é baseado na tabela Pedidos de venda.
Executar este plug-in quando a linha for: Criada
Fórmula: cole o código abaixo na caixa Fórmula. Para obter mais informações sobre a função SendEmailFromTemplate, consulte Ação SendEmailFromTemplate.
XSendEmailFromTemplate( LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template', ThisRecord, LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email] )
- Selecione Avançado>Pós-operação.
- Selecione Salvar.
A mensagem de confirmação Plug-in salvo com sucesso aparece.
Enviar notificações no aplicativo com base em uma ação instantânea
As notificações no aplicativo permitem que os desenvolvedores configurem notificações contextuais e acionáveis para os usuários em aplicativos baseados em modelo.
Criar o plug-in low-code que envia uma notificação no aplicativo
- Execute o aplicativo acelerador do Dataverse e selecione +Novo plug-in em Plug-ins instantâneos.
- Insira as seguintes informações e selecione Próximo:
- Nome: NotifyTechnican1
- Descrição: Este plug-in instantâneo notifica o usuário do aplicativo.
- Na página Definições , crie parâmetros de entrada com estes tipos de dados:
- OrderID: Cadeia de caracteres
- TechnicalEmail: Cadeia de caracteres
-
Fórmula. Na caixa Fórmula, cole o seguinte código. Para obter mais informações sobre essa função, acesse SendAppNotification Action.
XSendAppNotification( "New service", LookUp(Users,'Primary Email'=TechnicianEmail), "You have a new solar panel installation scheduled on "& LookUp('Scheduling Results','OrderId'=OrderID).'ServiceDate'&" in "& LookUp('Service Orders','Order Number'=OrderID).City &". Contact the coordinator with any questions.", [ XCreateSidePaneActionForEntity( "View order", OrderID, "Sales Order", "cr8b8_serviceorder1", LookUp('Service Orders','Order Number'=OrderID).'Service Order' ) ] ) - Selecione Avançar.
- Selecione Salvar na página Resumo.
Chamar a ação instantânea de notificação no aplicativo
- Selecione um aplicativo de tela e, depois, a opção Editar na barra de comando (ou crie uma).
- Selecione a tela no painel de navegação esquerdo ou crie uma nova.
- No menu Inserir, adicione um Botão à página usando o TextoNotificar técnico.
- Selecione o botão e digite o seguinte na barra de fórmulas fx, onde DataCardValue17 é a coluna que contém o ID do pedido e DataCardValue15 é a coluna que contém o endereço de email do técnico. Neste exemplo, um aplicativo de tela chamado Service Order App é usado.
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- Salve e publique suas alterações.
Quando a ação de notificar técnico é selecionada no aplicativo, uma notificação no aplicativo é enviada ao técnico atribuído à ordem de serviço. Uma ação na notificação abre os detalhes da ordem de serviço em um painel lateral.
Exemplo de plug-in instantâneo com conector MSN Weather
Este plug-in retorna o clima atual de um local específico usando o conector MSN Weather.
Pré-requisitos:
- Pré-requisitos para criar um plug-in low-code
- O conector MSN Weather é permitido no ambiente
Crie uma referência de conexão para o MSN Clima, se ainda não estiver disponível no ambiente:
Copiar trecho:
Conclua a edição da fórmula usando o intellisense e consuma as propriedades de resposta do conector, conforme necessário:
Salvar
Dica
Use a função With() para capturar a resposta inteira de uma ação se você quiser acessar propriedades diferentes que a resposta possa ter. No exemplo abaixo, há um parâmetro de entrada Location (cadeia de caracteres) e um parâmetro de saída Out (cadeia de caracteres).
With({ /* Capture current weather response from connector */
c: new_MsnWeather.CurrentWeather( Location, "Imperial" ).responses.weather.current
},{ /* Return concatenated weather details */
Out: "Current temp: " & c.temp & " degrees. Feels like " & c.feels & " degrees. Wind speed is " & c.windSpd & " mph."
})
Práticas recomendadas
Lidando com erros de loop infinito em plug-ins low-code automatizados
Não escreva uma instrução de patch em um plug-in automatizado no evento 'Atualizar', em que o patch está acontecendo na mesma tabela do plug-in. Isso leva a loops infinitos e falhas na execução do plug-in.
Padrão problemático: o uso da fórmula Patch() desencadeia outra atualização.
Padrão recomendado: use a fórmula Set() para evitar esse problema.