openForm (referência da API do cliente)

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

Note

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 em uma caixa de diálogo usando a API do cliente

Sintaxe

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

Parameters

Name Tipo Obrigatório 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 de querystring personalizados.
successCallback Função No Uma função a ser executada quando o registro é salvo no formulário de criação rápida. Essa função aceita um objeto como um parâmetro. O objeto tem uma savedEntityReference matriz com as seguintes propriedades para identificar os registros 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 você abre um formulário para um registro 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 falhar.

Objeto entityFormOptions

O objeto contém os seguintes valores:

Name Tipo Obrigatório Description
entityName String Yes Nome lógico da tabela para a qual exibir o formulário.
entityId String No ID do registro de tabela para o qual exibir o formulário.
formId String No ID da instância de formulário a ser exibida.
cmdbar Bool No Indica se a barra de comandos deve ser exibida. Se você não especificar esse parâmetro, a barra de comandos será exibida por padrão. Requer a passagem openInNewWindow de parâmetro como true.
createFromEntity Pesquisa No Designa um registro que fornece valores padrão com base em valores de coluna mapeados. O objeto de pesquisa tem as seguintes propriedades string: entityType, ide name (opcional).
openInNewWindow Bool No Indica se o formulário deve ser exibido em uma nova janela ou em uma nova guia. Se você especificar true e não especificar valores para altura ou largura, o formulário será exibido em uma nova guia. Abrir um formulário em uma nova janela ou uma nova guia torna a renderização do formulário lenta em comparação com a abertura do formulário na mesma guia; considere abrir um formulário na caixa de diálogo de formulário principal. No momento, essa propriedade não tem suporte para formulários de Criação Rápida, pois eles não podem ser abertos em uma nova janela ou guia.
height Número No Altura da janela do formulário a ser exibida em pixels. Requer a passagem openInNewWindow de parâmetro como true.
width Número No Largura da janela do formulário a ser exibida em pixels. Requer a passagem openInNewWindow de parâmetro como true.
navbar String 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 mapa do site. Os valores válidos são: on, offou entity. Requer a passagem do parâmetro openInNewWindow como true.
- on: a barra de navegação é exibida. Esse é o comportamento padrão se o parâmetro de barra de navegação não for usado.
- off: a barra de navegação não é exibida. 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, somente as opções de navegação para tabelas relacionadas estão disponíveis. Depois de navegar até 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 relação para exibir os registros relacionados no formulário. Ver objeto de relação
selectedStageId String No ID do estágio selecionado na instância do processo empresarial.
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 você não especificar o valor, useQuickCreateFormo padrão será definido como false.

objeto relationship

O objeto tem os seguintes valores.

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

Comentários

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 definirActiveProcessInstance para exibir uma instância de processo comercial específica 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 novo registro

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 registro (pesquisa complexa)

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

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