openForm (referência da API do cliente)

Abre um formulário de entidade ou um formulário de criação rápida.

Observação

Para abrir um formulário principal como uma caixa de diálogo, use o método navigateTo . Mais informações: Abrir o formulário principal num diálogo utilizando a API de cliente

Sintaxe

Xrm.Navigation.openForm(entityFormOptions, formParameters).then(successCallback, errorCallback);

Parameters

Name Tipo Obrigatória Description
entityFormOptions Objeto Yes Opções de formulário para abrir o formulário. Consulte o objeto entityFormOptions
formParameters Objeto No Um objeto de dicionário que passa parâmetros extras para o formulário. Parâmetros inválidos causam um erro.

Para obter informações sobre como passar parâmetros para um formulário, consulte Definir valores de coluna usando parâmetros passados para um formulário e Configurar um formulário para aceitar parâmetros querystring personalizados.
successCallback Função No Uma função a executar quando o registo é guardado no formulário de criação rápida. Esta função aceita um objeto como parâmetro. O objeto tem um savedEntityReference array com as seguintes propriedades para identificar os registos exibidos ou criados:
- entityType: O nome lógico da tabela.
- id: Uma representação de cadeia de caracteres de um valor GUID para o registro.
- name: O valor da coluna primária do registro exibido ou criado.

OBSERVAÇÃO:
- A successCallback função não é executada quando se abre um formulário para um registo existente ou novo.
- A successCallback função é executada somente quando você salva um registro em um formulário de criação rápida que foi aberto usando o método openForm.
errorCallback Função No Uma função a ser executada quando a operação falha.

objeto entityFormOptions

O objeto contém os seguintes valores:

Name Tipo Obrigatória Description
entityName Corda Yes Nome lógico da tabela para a qual exibir o formulário.
entityId Corda No ID do registro de tabela para exibir o formulário.
formId Corda No ID da instância do formulário a ser exibida.
cmdbar Bool No Indica se a barra de comandos deve ser exibida. Se não especificares este parâmetro, a barra de comandos é mostrada por defeito. Requer passar openInNewWindow o parâmetro como true.
createFromEntity Lookup No Designa um registo que fornece valores predefinidos com base nos valores das colunas mapeadas. O objeto de pesquisa tem as seguintes propriedades String: entityType, ide name (opcional).
openInNewWindow Bool No Indica se deve mostrar o formulário numa nova janela ou num novo separador. Se especificar true e não especificar valores para altura ou largura, o formulário aparece num novo separador. Abrir um formulário numa nova janela ou num novo separador torna a renderização do formulário lenta em comparação com abrir o formulário no mesmo separador; considere abrir um formulário no diálogo principal do formulário em vez disso. Esta propriedade atualmente não é suportada para formulários de Criação Rápida, pois não podem ser abertos numa nova janela ou separador.
height Número No Altura da janela do formulário a ser exibida em pixels. Requer passar openInNewWindow o parâmetro como true.
width Número No Largura da janela do formulário a ser exibida em pixels. Requer passar openInNewWindow o parâmetro como true.
navbar Corda No Controla se a barra de navegação é exibida e se a navegação do aplicativo está disponível usando as áreas e subáreas definidas no sitemap. Os valores válidos são: on, off, ou entity. Requer a passagem do parâmetro openInNewWindow como true.
- on: A barra de navegação é exibida. Este é o comportamento padrão se o parâmetro da barra de navegação não for usado.
- off: A barra de navegação não aparece. As pessoas podem navegar usando outros elementos da interface do usuário ou os botões Voltar e Avançar.
- entity: Em um formulário, apenas as opções de navegação para tabelas relacionadas estão disponíveis. Depois de navegar para uma tabela relacionada, um botão Voltar é exibido na barra de navegação para permitir o retorno ao registro original.
relationship Objeto No Defina um objeto de relacionamento para exibir os registros relacionados no formulário. Ver objeto de relacionamento
selectedStageId Corda No ID do estágio selecionado na instância do processo de negócios.
useQuickCreateForm Bool No Indica se um formulário de criação rápida deve ser aberto. A tabela deve ter a opção Permitir Criação Rápida habilitada para que o formulário de criação rápida seja exibido e você também deve adicionar a tabela e o formulário de criação rápida ao seu aplicativo. Se não especificar o valor de useQuickCreateForm, o padrão é definido para false.

objeto de relacionamento

O objeto tem os seguintes valores.

Name Tipo Description
attributeName Corda Nome da coluna usada para relacionamento.
name Corda Nome da coluna usada para relacionamento.
navigationPropertyName Corda Nome da coluna usada para relacionamento.
relationshipType Número Tipo de relação. Especifique um dos seguintes valores:
- 0:OneToMany
- 1: MuitosMuitos
roleType Número Tipo de função na relação. Especifique um dos seguintes valores:
- 1:Referenciação
- 2:AssociaçãoEntidade

Observações

Você deve usar esse método para abrir formulários de tabela ou criação rápida em vez dos métodos Xrm.Utility.openEntityForm e Xrm.Utility.openQuickCreate preteridos.

Use setActiveProcess para exibir um processo comercial específico e setActiveProcessInstance para exibir uma instância específica do processo comercial no formulário.

Exemplos

Exemplo 1: Abrir um formulário para registro existente

O código de exemplo a seguir abre um formulário de contato para exibir um registro de contato existente:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["entityId"] = "00aa00aa-bb11-cc22-dd33-44ee44ee44ee";

// Open the form.
Xrm.Navigation.openForm(entityFormOptions).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Exemplo 2: Abrir um formulário para um novo registo

O código de exemplo a seguir abre um formulário de contato com alguns valores pré-preenchidos para criar um novo registro:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Exemplo 3: Abrir um formulário para novo registo (pesquisa complexa)

O seguinte código de exemplo abre um formulário de atividade com alguns valores pré-preenchidos (incluindo uma pesquisa complexa) para criar um novo registo:

var entityFormOptions = {};
entityFormOptions["entityName"] = "email";

// Set default values for the Contact form
var formParameters = {};
formParameters["subject"] = "Sample";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["regardingobjectid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["regardingobjectidname"] = "Admin user"; // Name of the user.
formParameters["regardingobjectidtype"] = "systemuser"; // Table name. 
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Exemplo 4: Abrir um formulário de criação rápida

O código de exemplo a seguir abre um formulário de contato de criação rápida com alguns valores pré-preenchidos:

var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["useQuickCreateForm"] = true;

// Set default values for the Contact form
var formParameters = {};
formParameters["firstname"] = "Sample";
formParameters["lastname"] = "Contact";
formParameters["fullname"] = "Sample Contact";
formParameters["emailaddress1"] = "contact@adventure-works.com";
formParameters["jobtitle"] = "Sr. Marketing Manager";
formParameters["donotemail"] = "1";
formParameters["description"] = "Default values for this record were set programmatically.";

// Set lookup column
formParameters["preferredsystemuserid"] = "3493e403-fc0c-eb11-a813-002248e258e0"; // ID of the user.
formParameters["preferredsystemuseridname"] = "Admin user"; // Name of the user.
formParameters["preferredsystemuseridtype"] = "systemuser"; // Table name.
// End of set lookup column

// Open the form.
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
    function (success) {
        console.log(success);
    },
    function (error) {
        console.log(error);
    });

Xrm.Navigation