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 exemplo do PowerShell demonstra como criar e usar colunas de pesquisa de várias tabelas, às vezes chamadas de pesquisas polimórficas, usando a API Web do Dataverse.
Este exemplo demonstra as operações descritas em Usar colunas de pesquisa de várias tabelas e usa as funções auxiliares do PowerShell da API Web do Dataverse para gerenciar a autenticação e fornecer funções reutilizáveis para executar operações comuns. O exemplo faz referência a esses scripts usando dot sourcing.
. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
. $PSScriptRoot\..\MetadataOperations.ps1
Observação
Este exemplo deve funcionar com Windows, Linux e macOS, mas o autor o testou apenas em Windows.
Pré-requisitos
Antes de executar este exemplo, você deve ler estes artigos que explicam os conceitos e padrões usados por estes exemplos:
- Quick Start Web API com o PowerShell e Visual Studio Code
- Use o PowerShell e Visual Studio Code com a API Web do Dataverse
Esses artigos têm os mesmos pré-requisitos.
Instalar ou verificar se os seguintes estão instalados
Instale Visual Studio Code. Consulte Download Visual Studio Code
Instale a extensão do PowerShell para Visual Studio Code. Consulte PowerShell para Visual Studio Code
Instale o PowerShell 7.4 ou superior. Consulte Instalar o PowerShell em Windows, Linux e macOS
Instale o módulo do Az PowerShell versão 11.1.0 ou superior. Consulte How to install Azure PowerShell
Para atualizar uma instalação existente para a versão mais recente, use
Update-Module -Name Az -Force
Verifique a instalação
Abra Visual Studio Code.
No menu Terminal, selecione Novo Terminal.
No painel de navegação Visual Studio Code, selecione o ícone
para a extensão do PowerShell.Copie e cole o seguinte script na janela do terminal Visual Studio Code:
Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString() Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).VersionPressione Enter. O resultado deve ser assim:
PowerShell Version: 7.4.0 PowerShell Az version: 11.1.0
Se você não vir resultados como este, instale ou atualize os pré-requisitos.
Você também precisará
- Uma conta de usuário válida para um ambiente do Dataverse
- A URL para o ambiente do Dataverse ao qual você deseja se conectar. Veja Exibir recursos do desenvolvedor para saber como encontrá-lo. Parece algo assim:
https://yourorg.crm.dynamics.com/, ondeyourorg.crmé diferente. - Compreensão básica da linguagem de script do PowerShell
Como executar este exemplo
Clone ou baixe o repositório PowerApps-Samples .
Abra o arquivo
/dataverse/webapi/PS/PolymorphicLookup/PolymorphicLookupSample.ps1usando Visual Studio Code.Edite a seguinte linha para usar a URL do ambiente ao qual você deseja se conectar:
Connect 'https://yourorg.crm.dynamics.com/' # change this(Opcional) Defina a
$deleteCreatedRecordsvariável para$falsese você não quiser excluir os registros que este exemplo cria.Pressione F5 para executar o exemplo.
Na primeira vez que você executar o exemplo, uma janela do navegador será aberta. Na janela do navegador, insira ou selecione as credenciais que você deseja usar para autenticar.
Para se conectar como um usuário diferente, execute o comandoDisconnect-AzAccount e tente novamente.
Code
O código deste exemplo está em: PowerApps-Samples/dataverse/webapi/PS/PolymorphicLookup/PolymorphicLookupSample.ps1
Demonstra
Este exemplo tem nove seções:
Seção 0: Criar Publicador e Solução
Operações:
- Consulte um publicador existente com o
examplepublishernome exclusivo enviando uma solicitaçãoGETpara/publishers. - Crie o publicador se ele ainda não existir enviando uma solicitação
POSTpara/publishers. - Consultar uma solução existente nomeada
polymorphiclookupexamplesolutionenviando uma solicitaçãoGETpara/solutions. - Crie a solução se ela ainda não existir enviando uma solicitação
POSTpara/solutions.
Observação
Você pode exportar todos os componentes da solução criados neste exemplo associando-os à solução. Para operações sem uma mensagem nomeada, configure o cabeçalho de solicitação MSCRM.SolutionUniqueName para o nome único da solução, a fim de criar essa associação.
Prefixe todos os nomes de componentes da solução usando o prefixo de personalização do publicador.
Seção 1: Criar tabelas referenciadas
Operações:
- Crie uma
sample_Booktabela enviando umaPOSTsolicitação para/EntityDefinitions, se ela ainda não existir. Esta tabela inclui um atributo primáriosample_namee uma coluna de cadeiasample_CallNumberde caracteres. - Crie uma
sample_Audiotabela enviando umaPOSTsolicitação para/EntityDefinitions, se ela ainda não existir. Esta tabela inclui um atributo primáriosample_namee uma coluna de cadeiasample_AudioFormatde caracteres. - Crie uma
sample_Videotabela enviando umaPOSTsolicitação para/EntityDefinitions, se ela ainda não existir. Esta tabela inclui um atributo primáriosample_namee uma coluna de cadeiasample_VideoFormatde caracteres.
Essas três tabelas servem como tabelas referenciadas para as quais a coluna de pesquisa polimórfica pode apontar.
Seção 2: Criar Tabela de Referência
Operações: crie uma sample_Media tabela enviando uma POST solicitação para /EntityDefinitions, se ela ainda não existir. Esta tabela inclui um atributo primário sample_name e hospeda a coluna de pesquisa polimórfica.
A sample_Media tabela serve como a tabela de referência – a tabela que contém a coluna de pesquisa de várias tabelas.
Seção 3: Criar atributo de pesquisa polimórfica
Operações:
- Crie uma coluna de pesquisa na tabela
sample_MediaPolymorphicLookupjuntamente com relações um para muitos para cada uma das três tabelas referenciadas (sample_Media,sample_Bookesample_Audio) usando a açãosample_Video. Essa única ação cria o atributo e todas as três relações ao mesmo tempo. - Recupere o
ReferencingEntityNavigationPropertyNamepara cada uma das três relações (sample_media_sample_book,sample_media_sample_audio,sample_media_sample_video) enviando solicitaçõesGETpara/RelationshipDefinitions. Você precisa desses nomes de propriedade de navegação para associar registros usando a sintaxe@odata.bind.
Seção 4: Criar registros de dados de exemplo
Operações:
- Recupere o
EntitySetNamepara cada uma das quatro tabelas enviandoGETsolicitações para/EntityDefinitions. - Crie dois
sample_Bookregistros enviandoPOSTsolicitações parasample_books. - Crie dois
sample_Audioregistros enviandoPOSTsolicitações parasample_audios. - Crie dois
sample_Videoregistros enviandoPOSTsolicitações parasample_videos. - Crie quatro
sample_Mediaregistros enviandoPOSTsolicitações parasample_medias. Cada registro de mídia usa o nome da propriedade de navegação recuperado na Seção 3 e a sintaxe@odata.bindpara definir que a pesquisa polimórfica aponte para um registro de uma das três tabelas referenciadas.
Seção 5: Recuperar dados de exemplo
Operações:
- Consultar todos os registros
sample_Media, selecionando as colunassample_namee_sample_mediapolymorphiclookup_valueenviando uma solicitaçãoGETpara/sample_medias. A consulta usa as anotações ODataMicrosoft.Dynamics.CRM.lookuplogicalnameeOData.Community.Display.V1.FormattedValuepara exibir o tipo de entidade e o nome formatado de cada valor de pesquisa. - Filtrar
sample_Mediaregistros em que a pesquisa polimórfica aponta para um registro específicosample_Bookenviando uma solicitaçãoGETpara/sample_mediascom um$filterapropriado. - Filtrar
sample_Mediaregistros em que a pesquisa polimórfica aponta para um registro específicosample_Audioenviando uma solicitaçãoGETpara/sample_mediascom um$filterapropriado.
Seção 6: Exportar solução gerenciada
Operações: exporte a solução que você criou na Seção 0: Criar Publicador e Solução como um pacote de solução gerenciada usando a ação ExportSolution. Salve o arquivo exportado .zip localmente para uso na Seção 8.
Seção 7: Excluir tabelas de exemplo e solução
Operações:
- Exclua a
sample_Mediatabela enviando umaDELETEsolicitação para/EntityDefinitions. Você deve excluir a tabela de referência antes das tabelas referenciadas. - Exclua as tabelas
sample_Book,sample_Audioesample_Videoenviando solicitaçõesDELETEpara/EntityDefinitions. - Consulte a solução não gerenciada enviando uma solicitação
GETpara/solutionsfiltrada por nome exclusivo. - Exclua a solução não gerenciada enviando uma solicitação
DELETEpara/solutions(<solutionid>).
Seção 8: Importar e excluir solução gerenciada
Operações:
- Importe a solução gerenciada exportada na Seção 6: Exportar solução gerenciada usando a ação ImportSolution.
- Consulte a solução importada enviando uma solicitação
GETpara/solutionsfiltrada por nome exclusivo. - Exclua a solução gerenciada importada enviando uma solicitação
DELETEpara/solutions(<solutionid>).
Limpeza
Por padrão, esse exemplo exclui todos os registros que ele cria. Se você quiser exibir os registros criados após a conclusão do exemplo, altere a $deleteCreatedRecords variável para $false. Em seguida, você será solicitado a decidir se deseja excluir os registros.
Consulte também
Utilizar colunas de pesquisa em várias tabelas
Utilizar a API Web do Dataverse
Usar a API Web com definições de tabela
Exemplos de API Web
Exemplo de operações de esquema de tabela da API Web (PowerShell)