[AEM Forms]{class="badge positive" title="Aplicável ao AEM Forms)."}

Trabalhar com o modelo de dados de formulário (FDM) work-with-form-data-model

Versão
Link do artigo
AEM 6.5
Clique aqui
AEM as a Cloud Service
Este artigo

O editor de Modelo de Dados de Formulário (FDM) fornece uma interface de usuário intuitiva e ferramentas integradas para criar, editar e configurar um modelo de dados de formulário (FDM) no Adobe Experience Manager (AEM) Forms. Usando o editor, você adiciona e configura objetos de modelo de dados, propriedades e serviços de fontes de dados associadas diretamente no modelo de dados de formulário (FDM).

Recursos do editor de modelo de dados de formulário

integração de dados

O editor do Modelo de dados de formulário é compatível com as seguintes tarefas principais:

  • Adicionar e configurar objetos, propriedades e serviços do modelo de dados de fontes de dados associadas no FDM.
  • Criar objetos de modelo de dados e propriedades sem fontes de dados. Você pode definir esses objetos primeiro e vinculá-los aos respectivos objetos e propriedades do modelo de dados posteriormente, o que dissocia o design da configuração de origem.
  • Gerar e editar dados de amostra para propriedades do objeto de modelo de dados. Esses dados de amostra preenchem previamente o Adaptive Forms durante a pré-visualização, de modo que os autores e testadores validam o comportamento do formulário com valores realistas antes da implantação.
  • Testar objetos e serviços de modelo de dados configurados no FDM para confirmar se estão integrados corretamente com as fontes de dados subjacentes.

Pré-requisitos

Se você é novo na integração de dados do Forms e não configurou uma fonte de dados ou criou um modelo de dados de formulário (FDM), consulte os seguintes tópicos:

Leia para obter detalhes sobre as várias tarefas e configurações que podem ser executadas usando o editor de Modelo de dados de formulário.

NOTE
Você deve ser membro dos grupos fdm-author e forms-user para criar e trabalhar com um modelo de dados de formulário (FDM). Contate o administrador do Experience Manager para se tornar um membro desses grupos.

Adicionar objetos e serviços de modelo de dados add-data-model-objects-and-services

Se você criou um Modelo de dados de formulário (FDM) com fontes de dados, poderá usar o editor de Modelo de dados de formulário para adicionar objetos de modelo de dados e serviços, configurar suas propriedades, criar associações entre objetos de modelo de dados e testar os serviços e o Modelo de dados de formulário (FDM). Isso permite montar um modelo de dados completo e funcional diretamente de suas fontes de dados conectadas em um único ambiente de edição.

Você pode adicionar objetos e serviços de modelo de dados a partir das fontes de dados disponíveis no modelo de dados de formulário (FDM). Os objetos de modelo de dados adicionados aparecem na guia Modelo, enquanto os serviços adicionados aparecem na guia Serviços, mantendo os dois tipos de objeto claramente separados para facilitar a configuração e o teste.

Para adicionar objetos e serviços de modelo de dados:

  1. Faça logon na instância do autor Experience Manager, navegue até Forms > Integrações de dados e abra o Modelo de Dados de Formulário (FDM) no qual deseja adicionar objetos de modelo de dados.

  2. No painel Fontes de dados, expanda as fontes de dados para visualizar os objetos e serviços do modelo de dados disponíveis.

  3. Selecione os objetos de modelo de dados e serviços que deseja adicionar ao Modelo de Dados de Formulário (FDM) e selecione Adicionar Selecionados. Isso adiciona os objetos e serviços selecionados ao FDM para que você possa configurar suas propriedades e criar associações entre eles.

    objetos-selecionados

    Objetos e serviços de modelo de dados selecionados

    A guia Modelo exibe uma representação gráfica de todos os objetos de modelo de dados e suas propriedades adicionadas ao modelo de dados de formulário (FDM). Cada objeto de modelo de dados é representado por uma caixa no modelo de dados de formulário (FDM), tornando a estrutura do modelo fácil de digitalizar visualmente.

    guia-modelo

    A guia Modelo exibe objetos de modelo de dados adicionados

    note
    NOTE
    É possível manter e arrastar as caixas do objeto de modelo de dados para organizá-las na área de conteúdo. Todos os objetos de modelo de dados adicionados ao Modelo de dados de formulário (FDM) ficam esmaecidos no painel Fontes de dados, indicando que já foram adicionados e evitando entradas duplicadas.

    A guia Serviços lista serviços adicionados.

    guia-serviços

    A guia Serviços exibe os serviços de modelo de dados

    note
    NOTE
    Além dos objetos e serviços do modelo de dados, o documento de metadados do serviço OData (Open Data Protocol) inclui propriedades de navegação, que definem a associação entre dois objetos do modelo de dados e permitem que os dados relacionados sejam percorridos. Para obter mais informações, consulte Trabalhando com propriedades de navegação de serviços OData.
  4. Selecione Salvar para salvar o objeto de modelo de formulário.

    note
    NOTE
    Os serviços configurados na guia Serviços de um Modelo de dados de formulário (FDM) podem ser chamados diretamente usando as regras do Formulário adaptável, permitindo que os autores de formulários acionem operações de dados, como busca ou gravação de dados em tempo de execução. Os serviços configurados estão disponíveis na ação Chamar serviços do editor de regras. Para obter mais informações sobre como usar esses serviços nas regras do Formulário adaptável, consulte Invocar serviços e Definir valor das regras no editor de regras.

Criar objetos de modelo de dados e propriedades derivadas create-data-model-objects-and-child-properties

Um modelo de dados organiza as informações em unidades estruturadas e reutilizáveis chamadas objetos, cada uma das quais pode conter propriedades filho que descrevem os atributos individuais do objeto. A criação de objetos bem definidos e o aninhamento de propriedades secundárias abaixo deles é uma etapa fundamental na criação de qualquer modelo de dados, pois estabelece uma representação clara e hierárquica das informações que seu aplicativo armazenará, validará e trocará.

O que são objetos de modelo de dados e propriedades derivadas?

  • Um objeto de modelo de dados é um contêiner nomeado que agrupa campos relacionados em uma única entidade lógica. Os objetos representam itens reais ou conceituais — como um cliente, um pedido ou um produto — e servem como a estrutura de nível superior à qual outros elementos se anexam.
  • Propriedades filho são campos individuais aninhados dentro de um objeto. Cada propriedade secundária define um atributo do objeto principal, juntamente com características como nome, tipo de dados e se o valor é obrigatório. O aninhamento de propriedades abaixo de um objeto principal mantém os dados relacionados agrupados, o que melhora a clareza e facilita a manutenção do modelo.

Essa relação pai-filho é o que fornece a um modelo de dados sua hierarquia. O objeto atua como pai e as propriedades filho herdam seu contexto dele, garantindo que cada atributo seja associado inequivocamente à entidade descrita.

Como criar um objeto de modelo de dados

Siga estas etapas para definir um novo objeto no seu modelo de dados:

  1. Nomeie o objeto. Escolha um nome claro e descritivo que identifique a entidade que o objeto representa. A nomenclatura consistente facilita a leitura e a referência do modelo posteriormente.
  2. Definir o objeto como um contêiner. Estabeleça o objeto como o elemento de nível superior que manterá suas propriedades secundárias associadas.
  3. Adicionar propriedades filho. Anexe os campos individuais que descrevem os atributos do objeto, definindo cada um por sua vez.
  4. Atribua um tipo de dados a cada propriedade. Especifique o tipo de valor que cada propriedade secundária aceita — como texto, número ou booleano — para que os dados possam ser validados corretamente.
  5. Definir regras de requisitos. Indique quais propriedades secundárias são necessárias e quais são opcionais, garantindo que o modelo aplique as restrições das quais o aplicativo depende.

Adição de Propriedades Secundárias

Ao adicionar propriedades secundárias a um objeto, defina cada propriedade com os seguintes detalhes:

  • Nome da propriedade — um rótulo descritivo exclusivo para o atributo dentro do objeto pai.
  • Tipo de dados — o tipo de valor que a propriedade armazena, que determina como o valor é validado e processado.
  • Status obrigatório ou opcional — se a propriedade deve sempre ter um valor.
  • Estrutura aninhada (se aplicável) — uma propriedade secundária pode ser um objeto com suas próprias propriedades secundárias, permitindo modelar dados complexos de vários níveis. Esse aninhamento permite que os modelos de dados representem informações profundamente estruturadas.

Aplicativos e benefícios práticos

A estruturação de um modelo de dados com objetos e propriedades secundárias oferece várias vantagens práticas:

  • Consistência — o agrupamento de campos relacionados em um objeto compartilhado garante que os dados sejam armazenados e interpretados uniformemente no aplicativo.
  • Reusabilidade — objetos bem definidos podem ser referenciados em vários locais, reduzindo a duplicação.
  • Validação — a atribuição de tipos de dados e regras de requisitos a propriedades filho permite que o sistema capture automaticamente dados inválidos ou incompletos.
  • Escalabilidade — como os objetos dão suporte a propriedades filho aninhadas, o modelo pode crescer para representar relações cada vez mais complexas sem se tornar desorganizado.

Práticas recomendadas

  • Use nomes claros e descritivos para os objetos e suas propriedades secundárias para manter o modelo autodocumentado.
  • Agrupe atributos relacionados no mesmo objeto pai em vez de espalhá-los por estruturas não relacionadas.
  • Defina tipos de dados e regras de requisitos antecipadamente, pois isso estabelece uma validação confiável desde o início.
  • Manter aninhamento proposital — aninha propriedades secundárias somente quando a hierarquia adicional reflete significativamente a estrutura dos dados.

Definindo cuidadosamente os objetos e suas propriedades secundárias, você cria um modelo de dados que é organizado, passível de manutenção e capaz de representar com precisão as entidades com as quais seu aplicativo funciona.

Criar objetos de modelo de dados create-data-model-objects

Embora seja possível adicionar objetos de modelo de dados a partir de origens de dados configuradas, você também pode criar objetos de modelo de dados — também chamados de entidades — sem origens de dados. Um objeto de modelo de dados é uma entidade estruturada dentro do Modelo de Dados de Formulário (FDM) que representa um agrupamento lógico de propriedades, que podem ser associadas a campos de fonte de dados ou usadas independentemente. Esse recurso é especialmente útil quando você ainda não configurou as fontes de dados no Modelo de dados de formulário (FDM), pois permite que você comece a projetar a estrutura de dados antes que qualquer integração de back-end esteja em vigor.

Etapas para criar um objeto de modelo de dados sem fontes de dados

Para criar um objeto de modelo de dados sem origens de dados:

  1. Faça logon na instância do autor Experience Manager, navegue até Forms > Integrações de Dados e abra o Modelo de Dados de Formulário (FDM) no qual deseja criar um objeto ou entidade de modelo de dados.

  2. Selecione Criar Entidade.

  3. Na caixa de diálogo Criar Modelo de Dados, especifique um nome para o objeto de modelo de dados e selecione Adicionar. Um objeto de modelo de dados é adicionado ao Modelo de dados de formulário (FDM). O objeto de modelo de dados recém-adicionado não está vinculado a uma fonte de dados e não tem propriedades, como mostrado na imagem a seguir. Como não está vinculado, esse objeto existe meramente como um espaço reservado estrutural até que você defina suas propriedades ou conecte-o a uma fonte de dados.

    nova-entidade

Próximas etapas next-steps-data-model-object

Depois que o objeto de modelo de dados desvinculado for criado, adicione propriedades filho para definir sua estrutura. Essas propriedades secundárias permitem especificar os campos e atributos que o objeto retém e podem ser associadas a fontes de dados posteriormente após a configuração das integrações de dados. Isso garante que o objeto de modelo de dados se torne totalmente funcional e pronto para uso em formulários.

Adicionar propriedades secundárias child-properties

O editor do Modelo de dados de formulário (FDM) permite criar propriedades secundárias em um objeto de modelo de dados. Por padrão, uma propriedade secundária recém-criada não está associada a nenhuma propriedade em uma fonte de dados. Posteriormente, você pode vincular a propriedade secundária a outra propriedade no objeto de modelo de dados contentor.

Para criar uma propriedade secundária:

  1. Em um modelo de dados de formulário, selecione um objeto de modelo de dados e selecione Criar Propriedade Filho.

  2. Na caixa de diálogo Criar Propriedade Filho, especifique um nome e um tipo de dados para a propriedade nos campos Nome e Tipo, respectivamente. Opcionalmente, você pode especificar um título e uma descrição para a propriedade.

  3. Habilite Calculado se a propriedade for uma propriedade computada—uma propriedade cujo valor é avaliado com base em uma regra ou expressão em vez de ser inserido diretamente. Para obter mais informações, consulte Editar propriedades.

  4. Se o objeto de modelo de dados estiver vinculado a uma fonte de dados, a propriedade secundária adicionada será automaticamente vinculada à propriedade do objeto de modelo de dados pai com o mesmo nome e tipo de dados. Essa associação automática corresponde ao nome e ao tipo de dados, garantindo que a propriedade secundária permaneça consistente com seu pai sem etapas manuais adicionais.

    Para vincular manualmente uma propriedade secundária a uma propriedade de objeto de modelo de dados, selecione o ícone de procura ao lado do campo Referência de associação. A caixa de diálogo Selecionar Objeto lista todas as propriedades do objeto de modelo de dados pai. Selecione uma propriedade para vincular e selecione o ícone de marca de verificação. Você só pode selecionar uma propriedade do mesmo tipo de dados que a propriedade secundária, pois uma correspondência de tipo de dados é necessária para uma associação válida.

  5. Selecione Concluído para salvar a propriedade secundária e selecione Salvar para salvar o modelo de dados de formulário (FDM). A propriedade secundária agora é adicionada ao objeto de modelo de dados.

Depois de criar objetos e propriedades do modelo de dados, você pode continuar a criar o Adaptive Forms com base no modelo de dados de formulário (FDM). Posteriormente, quando as fontes de dados estiverem disponíveis e configuradas, você poderá vincular o Modelo de dados de formulário (FDM) às fontes de dados. Como resultado, a vinculação é atualizada automaticamente em todo o Forms adaptável associado, de modo que as alterações se propagam sem reconfiguração manual. Para obter mais informações sobre como criar o Adaptive Forms usando o modelo de dados de formulário (FDM), consulte Usar modelo de dados de formulário.

Vincular objetos e propriedades do modelo de dados bind-data-model-objects-and-properties

Quando as fontes de dados que você deseja integrar ao Modelo de dados de formulário (FDM) estiverem disponíveis, você poderá adicioná-las ao Modelo de dados de formulário (FDM) conforme descrito em Atualizar fontes de dados. Um objeto ou propriedade de modelo de dados desligado é aquele que existe no Modelo de Dados de Formulário (FDM), mas ainda não está mapeado para um campo em uma fonte de dados conectada, portanto, não pode ler ou gravar dados até que uma associação seja estabelecida. Em seguida, faça o seguinte para vincular os objetos e propriedades do modelo de dados desvinculados:

  1. No modelo de dados de formulário, selecione a fonte de dados não vinculada que deseja vincular a uma fonte de dados.

  2. Selecione Editar propriedades.

  3. No painel Editar Propriedades, selecione o ícone de procura ao lado do campo Associação. O ícone de procura abre a caixa de diálogo Selecionar Objeto, que lista as fontes de dados adicionadas no modelo de dados de formulário (FDM).

    selecionar-objeto

  4. Expanda a árvore de fontes de dados, selecione um objeto de modelo de dados com o qual vincular e, em seguida, selecione o ícone de marca de verificação.

  5. Selecione Concluído para salvar as propriedades e Salvar para salvar o modelo de dados de formulário. O objeto de modelo de dados agora está vinculado a uma fonte de dados. Isso garante que o objeto possa ler e gravar na fonte de dados conectada no tempo de execução. Como resultado de salvar, o objeto de modelo de dados não é mais marcado como Não vinculado, confirmando que a vinculação foi concluída.

    objeto-modelo-associado

Configurar serviços configure-services

A configuração dos serviços de leitura e gravação permite que um objeto de modelo de dados leia e grave dados em um modelo de dados de formulário (FDM). Para configurar serviços de leitura e gravação para um objeto de modelo de dados, conclua as seguintes etapas:

  1. Marque a caixa de seleção na parte superior de um objeto de modelo de dados para selecioná-lo e selecione Editar Propriedades.

    editar-propriedades

    Editar propriedades para configurar serviços de leitura e gravação para um objeto de modelo de dados

    A caixa de diálogo Editar Propriedades é aberta.

    edit-properties-2

    Caixa de diálogo Editar propriedades

    note
    NOTE
    Além dos serviços e objetos de modelo de dados, o documento de metadados do serviço OData (Open Data Protocol) inclui propriedades de navegação que definem a associação entre dois objetos de modelo de dados. Quando você adiciona uma fonte de dados de serviço OData a um Modelo de Dados de Formulário (FDM), há um serviço disponível no Modelo de Dados de Formulário (FDM) para todas as propriedades de navegação em um objeto de modelo de dados. Você pode usar esse serviço para ler as propriedades de navegação do objeto de modelo de dados correspondente.
    Para obter mais informações sobre como usar o serviço, consulte Trabalhando com propriedades de navegação de serviços OData.
  2. Alterne Objeto de Nível Superior para especificar se o objeto de modelo de dados é um objeto de modelo de nível superior.

    Os objetos de modelo de dados configurados em um Formulário de modelo de dados (FDM) estão disponíveis para uso na guia Objetos do modelo de dados no navegador de conteúdo de um Formulário adaptável com base no modelo de dados de formulário (FDM). Quando você adiciona uma associação entre dois objetos de modelo de dados, o objeto de modelo de dados ao qual você está associando está aninhado sob o objeto de modelo de dados do qual você está associando na guia Objetos de Modelo de Dados. Se o modelo de dados aninhado for um objeto de nível superior, ele também aparecerá separadamente na guia Objetos do Modelo de Dados. Como resultado, o objeto aparece duas vezes, uma entrada dentro da hierarquia aninhada e outra fora dela, o que pode confundir os autores do formulário. Para fazer com que o objeto de modelo de dados associado apareça somente na hierarquia aninhada, desabilite a propriedade Objeto de Nível Superior. Isso garante que os autores do formulário vejam uma única entrada inequívoca, reduzindo a confusão durante a criação do formulário.

  3. Selecione os serviços Leitura e Gravação para o objeto de modelo de dados selecionado. Os argumentos para os serviços selecionados aparecem para configuração.

    serviços de leitura/gravação

    Serviços de leitura e gravação configurados para a fonte de dados do funcionário

  4. Selecione aem63edit para o argumento do serviço de leitura para vincular o argumento a um Atributo de Perfil de Usuário, Atributo de Solicitação ou valor Literal e especifique o valor da associação.

  5. Selecione Concluído para salvar o argumento, Concluído para salvar as propriedades e Salvar para salvar o modelo de dados de formulário (FDM).

Associar argumentos do serviço de leitura bindargument

Associe um argumento de serviço de leitura a um dos três tipos de associação — um Atributo de Perfil de Usuário, um Atributo de Solicitação ou um Valor literal — com base em um valor de associação. O serviço de leitura usa esse valor como argumento para buscar os detalhes associados ao valor especificado na fonte de dados. Cada tipo de vínculo determina a origem do valor do argumento: uma entrada fixa, o perfil do usuário conectado ou a solicitação recebida.

Valor literal literal-value

Selecione Literal do menu suspenso Associando a e insira um valor no campo Valor de Associação. Os detalhes associados ao valor são recuperados da fonte de dados. Use essa opção para recuperar detalhes associados a um valor estático, porque uma vinculação Literal fornece uma entrada fixa e inalterável que não depende do usuário ou da solicitação.

Neste exemplo, os detalhes associados a 4367655678, como o valor do argumento mobilenum, são recuperados da fonte de dados. Os detalhes associados retornados ao passar o valor para um argumento de número de celular podem incluir propriedades como nome do cliente, endereço do cliente e cidade.

Valor literal

Atributo do perfil do usuário user-profile-attribute

Selecione Atributo de Perfil de Usuário no menu suspenso Associando a e digite o nome do atributo no campo Valor de Associação. Os detalhes do usuário logado na instância Experience Manager são recuperados da fonte de dados com base no nome do atributo.

O nome do atributo especificado no campo Valor de Associação deve incluir o caminho de associação completo até o nome do atributo para o usuário. Abra o seguinte URL para acessar os detalhes do usuário no CRXDE:

https://[server-name]:[port]/crx/de/index.jsp#/home/users/

Perfil de usuário

Neste exemplo, especifique profile.empid no campo Valor de Ligação para o usuário grios.

Editar argumento

O argumento id retira o valor do atributo empid do perfil do usuário e o passa como um argumento para o serviço de Leitura. O serviço de Leitura lê e retorna os valores das propriedades associadas do objeto de modelo de dados de funcionário para o empid associado ao usuário conectado.

Solicitar atributo request-attribute

Use a associação de Atributo de solicitação para recuperar as propriedades associadas da origem de dados com base em um valor fornecido na solicitação recebida.

  1. Selecione Solicitar Atributo no menu suspenso Associando a e insira o nome do atributo no campo Valor de Associação.

  2. Crie uma sobreposição para o head.jsp. Para criar a sobreposição, abra o CRX DE e copie o arquivo https://<server-name>:<port number>/crx/de/index.jsp#/libs/fd/af/components/page2/afStaticTemplatePage/head.jsp para https://<server-name>:<port number>/crx/de/index.jsp#/apps/fd/af/components/page2/afStaticTemplatePage/head.jsp

    note
    NOTE
    • Se você usar um modelo estático, sobreponha o head.jsp em:
      /libs/fd/af/components/page2/afStaticTemplatePage/head.jsp
    • Se você usar um modelo editável, sobreponha o aftemplatedpage.jsp em:
      /libs/fd/af/components/page2/aftemplatedpage/aftemplatedpage.jsp
  3. Defina paramMap para o atributo de solicitação. Por exemplo, inclua o seguinte código no arquivo .jsp na pasta de aplicativos:

    code language-javascript
    <%Map paraMap = new HashMap();
     paraMap.put("<request_attribute>",request.getParameter("<request_attribute>"));
     request.setAttribute("paramMap",paraMap);
    

    Por exemplo, use o código abaixo para recuperar o valor de petId da fonte de dados:

    code language-javascript
    <%Map paraMap = new HashMap();
    paraMap.put("petId",request.getParameter("petId"));
    request.setAttribute("paramMap",paraMap);%>
    

Como resultado, o serviço de Leitura recupera os detalhes da fonte de dados com base no nome do atributo especificado na solicitação.

Por exemplo, especificar o atributo como petid=100 na solicitação recupera as propriedades associadas a esse valor de atributo da fonte de dados.

Adicionar associações add-associations

As associações normalmente são criadas entre objetos de modelo de dados em uma fonte de dados e essas associações são preservadas quando os objetos são trazidos para um modelo de dados de formulário (FDM). Uma associação define a relação entre dois objetos de modelo de dados e pode ser um para um ou um para muitos.

Existe uma associação de um para muitos quando um único registro está relacionado a vários registros. Por exemplo, um funcionário pode ter vários dependentes associados ao registro do funcionário. Essa relação é chamada de associação um para muitos e é representada por 1:n na linha que conecta os objetos de modelo de dados associados. Existe uma associação de um para um quando um relacionamento retorna exatamente um registro correspondente. Por exemplo, quando uma associação retorna um nome de funcionário exclusivo para uma determinada ID de funcionário, ela é uma associação um para um.

Quando você adiciona objetos de modelo de dados associados de uma fonte de dados a um modelo de dados de formulário (FDM), suas associações são mantidas e exibidas como conectadas por linhas de seta. Você também pode adicionar associações entre objetos de modelo de dados em diferentes fontes de dados em um único modelo de dados de formulário (FDM), que permite combinar dados relacionados que se originam de diferentes sistemas de back-end.

NOTE
Associações predefinidas em uma fonte de dados Java Database Connectivity (JDBC) não são retidas no modelo de dados de formulário (FDM), pois essas relações não são transportadas automaticamente. Você deve criá-los manualmente.

Para adicionar uma associação:

  1. Marque a caixa de seleção na parte superior de um objeto de modelo de dados para selecioná-lo e selecione Adicionar Associação. A caixa de diálogo Adicionar associação é aberta.

    adicionar-associação

    note
    NOTE
    Além dos objetos e serviços do modelo de dados, um documento de metadados do serviço Open Data Protocol (OData) inclui propriedades de navegação que definem a associação entre dois objetos do modelo de dados. Você pode usar essas propriedades de navegação ao adicionar associações em um Modelo de dados de formulário (FDM). Para obter mais informações, consulte Trabalhando com propriedades de navegação de serviços OData.

    A caixa de diálogo Adicionar Associação é aberta.

    adicionar-associação-2

    Caixa de diálogo Adicionar associação

  2. No painel Adicionar associação:

    • Especifique um título para a associação.
    • Selecione o tipo de associação — Um para Um ou Um para Muitos.
    • Selecione o objeto de modelo de dados ao qual associar.
    • Selecione o serviço de leitura para ler dados do objeto de modelo selecionado. O argumento do serviço de leitura é exibido. Edite o argumento para alterá-lo, se necessário, e vincule-o à propriedade do objeto de modelo de dados que você deseja associar.

    No exemplo a seguir, o argumento padrão para o serviço de leitura do objeto de modelo de dados Dependentes é dependentid.

    adicionar-associação-exemplo

    O argumento padrão para o serviço de leitura Dependente é dependentid

    No entanto, o argumento deve ser uma propriedade comum compartilhada entre os objetos do modelo de dados de associação, que neste exemplo é Employeeid. Portanto, como a associação depende de uma chave correspondente, o argumento Employeeid deve ser associado à propriedade id do objeto de modelo de dados Employee. Essa associação permite que o sistema busque os detalhes dos dependentes associados do objeto de modelo de dados Dependentes.

    adicionar-associação-exemplo-2

    Argumento e vinculação atualizados

    Selecione Concluído para salvar o argumento.

  3. Selecione Concluído para salvar a associação e Salvar para salvar o modelo de dados de formulário (FDM).

  4. Repita as etapas para criar associações adicionais, conforme necessário.

NOTE
A associação adicionada aparece na caixa de objeto de modelo de dados com o título especificado e uma linha que conecta os objetos de modelo de dados associados.
Você pode editar uma associação marcando a caixa de seleção correspondente e selecionando Editar Associação.

associação adicionada

Editar propriedades properties

A edição de propriedades permite configurar como os objetos de modelo de dados, suas propriedades e serviços se comportam no modelo de dados de formulário (FDM). Através do painel Editar Propriedades, você define os serviços, tipos de dados, chaves e argumentos que determinam como o FDM lê, grava e retorna dados.

Para editar propriedades:

  1. Marque a caixa de seleção ao lado de um objeto de modelo de dados, propriedade ou serviço no modelo de dados de formulário (FDM).

  2. Selecione Editar propriedades. O painel Editar Propriedades do objeto de modelo, propriedade ou serviço selecionado é aberto.

    • Objeto do modelo de dados: especifique os serviços de leitura e gravação e edite os argumentos. Esses serviços determinam como os dados são recuperados e mantidos na fonte de dados subjacente do objeto.

    • Propriedade: especifique o tipo, subtipo e formato para a propriedade. Você também pode designar a propriedade selecionada como a chave primária para o objeto de modelo de dados, que identifica exclusivamente cada registro.

    • Serviço: especifique o objeto de modelo de entrada, o tipo de saída e os argumentos para o serviço. Para um Serviço de obtenção, você pode indicar se ele retorna uma matriz, garantindo que o serviço manipule corretamente vários registros.

      editar-propriedades-serviço

    Caixa de diálogo Editar Propriedades de um serviço get

  3. Selecione Concluído para salvar a configuração da propriedade e Salvar para salvar o modelo de dados de formulário (FDM). Este salvamento final confirma todas as alterações de propriedade no FDM.

Criar propriedades computadas computed

Uma propriedade computada deriva seu valor automaticamente de uma regra ou expressão. Usando uma regra, você pode definir o valor de uma propriedade computada como uma cadeia de caracteres literal, um número, o resultado de uma expressão matemática ou o valor de outra propriedade no Modelo de Dados de Formulário (FDM). Como o valor é calculado em vez de inserido manualmente, as propriedades computadas reduzem os erros de entrada de dados e mantêm os campos dependentes consistentes à medida que os dados subjacentes são alterados.

Exemplo: criar uma propriedade computada FullName

Por exemplo, você pode criar uma propriedade computada FullName cujo valor é o resultado da concatenação das propriedades FirstName e LastName existentes. Para fazer isso, siga estas etapas:

  1. Crie uma nova propriedade com o nome FullName cujo tipo de dados é String.

  2. Habilite Calculado e selecione Concluído para criar a propriedade.

    computado

    A propriedade computada FullName foi criada. Um ícone é exibido ao lado da propriedade para indicar que ela é uma propriedade calculada.

    prop-computada

  3. Selecione a propriedade FullName e selecione Editar Regra. A janela do editor de regras é aberta.

  4. Na janela do editor de regras, selecione Criar. Uma janela de regra Definir Valor é aberta.

    No menu suspenso Selecionar opção, selecione Expressão matemática. As outras opções disponíveis são Objeto de modelo de dados de formulário e Cadeia de caracteres.

  5. Na expressão matemática, selecione FirstName como o primeiro objeto e LastName como o segundo objeto. Selecione mais como operador.

    Selecione Concluído e Fechar para fechar a janela do editor de regras. A regra concluída é semelhante ao seguinte.

    regra

  6. No Modelo de Dados de Formulário (FDM), selecione Salvar. A propriedade computada está configurada. Isso garante que o valor FullName seja atualizado automaticamente sempre que FirstName ou LastName for alterado, de modo que o nome completo concatenado sempre permaneça sincronizado com os campos de origem.

Trabalhar com propriedades de navegação de serviços OData work-with-navigation-properties-of-odata-services

As propriedades de navegação nos serviços OData definem as associações entre dois objetos de modelo de dados, estabelecendo como uma entidade se relaciona e pode atravessar para outra. Essas propriedades estão definidas em um tipo de entidade ou em um tipo complexo e são o que permite a um cliente mover de um registro para seus registros relacionados. Por exemplo, na seguinte extração do arquivo de metadados dos serviços de amostra do TripPin OData, a entidade Person contém três propriedades de navegação: Friends, BestFriend e Trips.

Para obter mais informações sobre propriedades de navegação, consulte a documentação OData.

<edmx:Edmx xmlns:edmx="https://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<script/>
<edmx:DataServices>
<Schema xmlns="https://docs.oasis-open.org/odata/ns/edm" Namespace="Microsoft.OData.Service.Sample.TrippinInMemory.Models">
<EntityType Name="Person">
<Key>
<PropertyRef Name="UserName"/>
</Key>
<Property Name="UserName" Type="Edm.String" Nullable="false"/>
<Property Name="FirstName" Type="Edm.String" Nullable="false"/>
<Property Name="LastName" Type="Edm.String"/>
<Property Name="MiddleName" Type="Edm.String"/>
<Property Name="Gender" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.PersonGender" Nullable="false"/>
<Property Name="Age" Type="Edm.Int64"/>
<Property Name="Emails" Type="Collection(Edm.String)"/>
<Property Name="AddressInfo" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location)"/>
<Property Name="HomeAddress" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location"/>
<Property Name="FavoriteFeature" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature" Nullable="false"/>
<Property Name="Features" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature)" Nullable="false"/>
<NavigationProperty Name="Friends" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person)"/>
<NavigationProperty Name="BestFriend" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person"/>
<NavigationProperty Name="Trips" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Trip)"/>
</EntityType>

Como as propriedades de navegação aparecem no Modelo de dados de formulário

Quando você configura um serviço OData em um Form Data Model (FDM), todas as propriedades de navegação em um contêiner de entidade são automaticamente disponibilizadas por meio de um único serviço no FDM. Essa consolidação significa que você não precisa de um serviço separado para cada associação, pois o FDM os exibe juntos. Neste exemplo do serviço TripPin OData, as três propriedades de navegação no contêiner de entidade Person podem ser lidas usando um serviço GET LINK no FDM.

O código a seguir destaca o serviço GET LINK of Person /People no FDM, que é um serviço combinado para as três propriedades de navegação: Amigos, MelhorAmigo e Percursos, na entidade Person do serviço TripPin OData.

nav-prop-service

Depois de adicionar o serviço GET LINK à guia Serviços no FDM, você poderá editar suas propriedades para escolher o objeto de modelo de saída e a propriedade de navegação a ser usada no serviço. Por exemplo, o seguinte serviço GET LINK of Person /People usa Trip como o objeto de modelo de saída e Trips como a propriedade de navegação.

edit-prop-nav-prop

NOTE
Os valores disponíveis no campo Valor Padrão do argumento NavigationPropertyName dependem do estado da matriz Return? botão de alternância. Quando habilitado, o campo mostra propriedades de navegação do tipo Coleção.

Neste exemplo, você também pode escolher Pessoa como o objeto de modelo de saída e definir o argumento de propriedade de navegação como Amigos ou MelhorAmigo, dependendo se Retornar matriz? está ativado ou desativado.

edit-prop-nav-prop2

Uso de propriedades de navegação em associações

Da mesma forma, você pode escolher um serviço GET LINK e configurar suas propriedades de navegação ao adicionar associações no FDM. No entanto, a seleção de uma propriedade de navegação só é possível quando o campo Associar a está definido como Literal; devido a esse requisito, as opções de propriedade de navegação não podem ser selecionadas até que essa associação seja configurada corretamente.

adicionar-associação-nav-prop

Gerar e editar dados de amostra sample

O editor do Modelo de Dados de Formulário (FDM) gera dados de amostra para todas as propriedades do objeto de modelo de dados em um modelo de dados de formulário, incluindo propriedades computadas. Estes dados de amostra consistem em um conjunto de valores aleatórios que estão em conformidade com o tipo de dados configurado para cada propriedade, fornecendo valores de teste realistas sem exigir uma conexão de fonte de dados ativa.

Sobre dados de amostra

Os dados de amostra servem como entrada de teste pronta que permite visualizar e validar como um modelo de dados de formulário se comporta antes de vinculá-lo aos dados de produção. Como cada valor gerado respeita o tipo de dados configurado de sua propriedade, o conjunto de amostras reflete a estrutura e o formato esperados dos registros reais, o que ajuda a verificar as associações, a lógica calculada e o comportamento do formulário no início do desenvolvimento.

Você também pode editar os valores gerados e salvar suas alterações. Os dados salvos são retidos mesmo que você gere novamente os dados de amostra, de modo que os casos de teste preparados manualmente persistem nas regenerações. Isso torna prático criar cenários de teste estáveis e reutilizáveis em vez de perder edições sempre que novos valores aleatórios são produzidos.

Etapas para gerar e editar dados de amostra

  1. Abra um Modelo de Dados de Formulário (FDM) e selecione Editar Dados de Exemplo. O editor do FDM gera e exibe os dados de exemplo na janela Editar Dados de Exemplo.

    Gerar Dados de Exemplo

  2. Na janela Editar Dados de Amostra, edite os dados conforme necessário e selecione Salvar. Os dados de amostra editados são salvos e mantidos, permanecendo disponíveis mesmo após a regeneração dos dados de amostra.

Testar objetos e serviços do modelo de dados test-data-model-objects-and-services

Depois que o Form Data Model (FDM) estiver configurado, teste os objetos e serviços do modelo de dados configurado antes de implantar o FDM em um formulário em tempo real para confirmar que eles funcionam conforme esperado. O teste antes da implantação verifica se cada objeto e serviço retorna os dados corretos, reduzindo o risco de erros de tempo de execução quando o formulário é colocado em produção.

Para testar objetos e serviços do modelo de dados:

  1. Selecione um objeto de modelo de dados ou um serviço no Form Data Model (FDM) e selecione Testar Objeto de Modelo ou Testar Serviço, respectivamente.

    A janela Testar modelo de dados de formulário é aberta.

    modelo-de-dados-de-teste

  2. Na janela Testar modelo de dados de formulário, selecione o serviço ou objeto de modelo de dados a ser testado no painel Entrada. Isso identifica o objeto ou serviço específico que você deseja validar.

  3. Especifique um valor de argumento no código de teste e selecione Teste. Um teste bem-sucedido retorna a saída no painel Saída, confirmando que o objeto ou serviço selecionado está configurado corretamente e pode recuperar ou processar dados conforme pretendido.

    Resultados de teste

Seguindo o mesmo procedimento, você pode validar objetos e serviços adicionais do modelo de dados no Modelo de dados de formulário (FDM) para garantir que todo o modelo seja executado de forma confiável antes do uso.

Validação automatizada dos dados de entrada automated-validation-of-input-data

O Modelo de Dados de Formulário (FDM) valida automaticamente os dados recebidos como entrada sempre que a API DermisBridge é invocada, aplicando os critérios de validação definidos no modelo de dados de formulário. Essa validação é controlada pelo sinalizador ValidationOptions definido no objeto de consulta usado para invocar a API. Por padrão, quando nenhum valor é definido para o sinalizador ValidationOptions, o FDM executa a validação BASIC nos dados de entrada.

Níveis de sinalizador ValidationOptions

O sinalizador ValidationOptions aceita qualquer um dos três valores a seguir, cada um definindo a restrição com que o FDM valida a entrada:

  • COMPLETO: o FDM valida a entrada em relação a todas as restrições definidas. Use esse nível para impor cada tipo de dados e restrição de regra de negócios antes que os dados sejam processados.
  • DESLIGADO: O FDM executa nenhuma validação. Os dados de entrada passam sem nenhuma verificação de restrição.
  • BÁSICO: o FDM valida somente as restrições required e nullable. Isso garante que campos obrigatórios estejam presentes e que as regras de manipulação nula sejam respeitadas sem avaliar o conjunto completo de restrições.

Se nenhum valor for definido para o sinalizador ValidationOptions, o FDM aplicará a validação BASIC por padrão.

Definição do sinalizador de validação

O exemplo a seguir define o sinalizador de validação como FULL, habilitando a validação em relação a todas as restrições:

operationOptions.setValidationOptions(ValidationOptions.FULL);
NOTE
O valor fornecido para um atributo nos dados de entrada deve corresponder ao tipo de dados definido para esse atributo no documento de metadados.
Como a verificação de tipo de dados é imposta independentemente do nível de validação, se o valor fornecido não corresponder ao tipo de dados definido, a API DermisBridge retornará uma exceção independentemente do valor do sinalizador ValidationOptions. Quando o nível de log é definido como Debug, a API registra o erro correspondente no arquivo error.log.

Restrições de tipo de dados por fonte de dados

O Modelo de Dados de Formulário (FDM) valida os dados de entrada em relação a uma lista definida de restrições de tipo de dados. Esta lista de restrições pode variar dependendo da fonte de dados subjacente, portanto, as restrições exatas aplicadas durante a validação são determinadas pela fonte de dados associada ao modelo de dados de formulário.

A tabela a seguir lista as restrições de tipo de dados aplicadas aos dados de entrada para cada fonte de dados compatível:

Restrições
Descrição
Fonte de dados de entrada
obrigatório
Se true, o parâmetro deve ser incluído nos dados de entrada.
Swagger, WSDL e banco de dados
anulável
Se true, o valor do parâmetro pode ser definido como Null nos dados de entrada.
WSDL, Odata e banco de dados
máximo
Especifica o limite superior para valores numéricos. O valor máximo especificado como o limite superior também pode ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
mínimo
Especifica o limite inferior para valores numéricos. O valor mínimo especificado como o limite inferior também pode ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
exclusiveMaximum
Especifica o limite superior para valores numéricos. O valor máximo especificado como o limite superior não deve ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
exclusiveMinimum
Especifica o limite inferior para valores numéricos. O valor mínimo especificado como o limite inferior não deve ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
minLength
Especifica o limite inferior para o número de caracteres incluídos em uma cadeia de caracteres. O valor mínimo especificado como o limite inferior também pode ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
maxLength
Especifica o limite superior para o número de caracteres incluídos em uma cadeia. O valor máximo especificado como o limite superior também pode ser atribuído ao parâmetro nos dados de entrada.
Swagger, WSDL, Odata e banco de dados
padrão
Especifica uma sequência fixa de caracteres. A cadeia de caracteres de entrada é validada com êxito somente se os caracteres estiverem em conformidade com o padrão especificado.
Swagger
minItems
Especifica o número mínimo de itens em uma matriz. O valor mínimo especificado como o limite inferior também pode ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
maxItems
Especifica o número máximo de itens em uma matriz. O valor máximo especificado como o limite superior também pode ser atribuído ao parâmetro nos dados de entrada.
Swagger e WSDL
uniqueItems
Se true, todos os elementos da matriz deverão ser exclusivos nos dados de entrada.
Swagger
enum (cadeia de caracteres)
Restringe o valor de um parâmetro nos dados de entrada a um conjunto fixo de valores de string. Deve ser uma matriz com pelo menos um elemento, em que cada elemento é exclusivo.
Swagger, WSDL e Odata
enum (número)
Restringe o valor de um parâmetro nos dados de entrada a um conjunto fixo de valores numéricos. Deve ser uma matriz com pelo menos um elemento, em que cada elemento é exclusivo.
WSDL

Validação de dados de entrada usando restrições do Swagger

Os dados de entrada passam na validação somente se ID da Ordem estiver presente e seu valor estiver no intervalo 1-10. Neste exemplo, os dados de entrada são validados em relação às restrições maximum, minimum e required definidas no arquivo Swagger (OpenAPI). Esses três tipos de restrição governam a entrada aceita da seguinte maneira:

  • obrigatório — o parâmetro deve ser fornecido; falha na validação de um orderId ausente.
  • mínimo — o valor não deve ser menor que 1.
  • máximo — o valor não deve exceder 10.

Como as restrições são declaradas diretamente na definição da API, a validação é imposta automaticamente no nível do schema antes da execução da operação. Isso garante que somente solicitações bem formadas atinjam o serviço subjacente.

   parameters: [
   {
   name: "orderId",
   in: "path",
   description: "ID of pet that must be fetched",
   required: true,
   type: "integer",
   maximum: 10,
   minimum: 1,
   format: "int64"
   }
   ]

Comportamento de Falha de Validação e Log de Erros

O sistema aciona uma exceção de validação quando os dados de entrada não atendem a esses critérios. Como resultado dessa falha, e quando o nível de log está definido como Depurar, um erro é gravado no arquivo error.log. Esse comportamento de registro ajuda os desenvolvedores a diagnosticar exatamente qual restrição foi violada, porque a entrada de log identifica o parâmetro que falhou, a restrição que foi violada e o valor incorreto.

Por exemplo, o envio de um orderId de 16 excede o máximo de 10 declarado, produzindo a seguinte entrada de log:

21.01.2019 17:26:37.411 *ERROR* com.adobe.aem.dermis.core.validation.JsonSchemaValidator {"errorCode":"AEM-FDM-001-044","errorMessage":"Input validations failed during operation execution.","violations":{"/orderId":["numeric instance is greater than the required maximum (maximum: 10, found: 16)"]}}

A entrada de erro captura o código de erro AEM-FDM-001-044, a mensagem "Input validations failed during operation execution." e um bloco violations apontando o campo /orderId, o máximo necessário de 10 e o valor encontrado (16). Esse detalhe estruturado facilita a identificação e a correção de entradas fora do intervalo.

Próximas etapas next-steps

Você tem um Modelo de Dados de Formulário (FDM) de trabalho que agora está pronto para uso em fluxos de trabalho adaptáveis do Forms. Um Modelo de dados de formulário representa a estrutura e os relacionamentos dos dados que seus formulários capturam e trocam com fontes de dados conectadas, fornecendo um esquema unificado e reutilizável que o Adaptive Forms pode vincular diretamente. Como o modelo abstrai os serviços de dados subjacentes em uma única camada consistente, ele permite que os formulários leiam e gravem nessas fontes sem exigir que a lógica de integração seja recriada para cada novo formulário.

Com o modelo em vigor, agora é possível aplicá-lo às tarefas de criação de formulários. As próximas etapas comuns incluem:

  • Associe campos de formulário ao modelo para que os componentes do Formulário adaptável mapeiem diretamente para os atributos de dados definidos no FDM, garantindo uma captura e envio consistentes de dados.
  • Preencha previamente os formulários com dados existentes recuperados por meio do modelo, o que melhora a experiência do usuário, reduzindo a entrada manual de dados.
  • Configure o envio do formulário para gravar os dados capturados de volta nas fontes de dados conectadas por meio do modelo, mantendo os registros sincronizados.
  • Reutilize o modelo em vários formulários para manter a consistência e reduzir o esforço de configuração duplicado.

A reutilização de um único modelo de dados de formulário em todos os fluxos de trabalho promove a consistência e reduz a manutenção contínua, pois as atualizações do modelo se propagam para todos os formulários que dependem dele. Para obter orientações detalhadas sobre como aplicar o modelo no Adaptive Forms, consulte Usar modelo de dados de formulário (FDM).

recommendation-more-help
experience-manager-cloud-service-help-main-toc