Compartilhar via


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

Sintaxe

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

Parâmetros

Nome Tipo Obrigatório Description
entityFormOptions Object Yes Opções de formulário para abrir o formulário. Consulte o objeto entityFormOptions
formParameters Object Não Um objeto de dicionário que passa parâmetros extras para o formulário. Parâmetros inválidos causarão 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 Não Uma função a ser executada quando o registro é salvo no formulário de criação rápida. Essa função é passada por 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 Não Uma função a ser executada quando a operação falhar.

Objeto entityFormOptions

O objeto contém os seguintes valores:

Nome Tipo Obrigatório Description
entityName String Yes Nome lógico da tabela para a qual exibir o formulário.
entityId String Não ID do registro de tabela para o qual exibir o formulário.
formId String Não ID da instância de formulário a ser exibida.
cmdbar Bool Não 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 Busca Não Designa um registro que fornecerá 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 Não 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 de 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 Não Altura da janela do formulário a ser exibida em pixels. Requer a passagem openInNewWindow de parâmetro como true.
width Número Não Largura da janela do formulário a ser exibida em pixels. Requer a passagem openInNewWindow de parâmetro como true.
navbar String Não 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 navbar 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 Object Não Defina um objeto de relação para exibir os registros relacionados no formulário. Ver objeto de relação
selectedStageId String Não ID do estágio selecionado na instância do processo empresarial.
useQuickCreateForm Bool Não 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.

Nome 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

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