Incluindo entidades hang-off e customizadas no modelo da API

As APIs padrão podem ser estendidas para fornecer informações das tabelas customizadas e hang-off. Uma ferramenta fornecida especificamente para gerar o XML do modelo, templateXmlGen.xml , está localizada no diretório <runtime_sandbox>/bin

Sobre esta tarefa

Para incluir entidades customizadas e hang-off no modelo da API:

Procedimento

  1. Execute a ferramenta de geração XML de modelo a partir do diretório <runtime_sandbox> usando o comando a seguir:
    sci_ant.sh -Dtable=TABLE_NAME -f bin/templateXmlGen.xml
  2. Quando o comando for executado, os arquivos XML de amostra serão colocados no diretório <runtime_sandbox>/extn/sampleXML como TABLE_NAME_sample.xml.

    Por exemplo, considere que HF_Order_Header é um hang-off da tabela YFS_Order_Header. O HF_Order_Header_sample.xml gerado é como a seguir:

    <HFOrderHeader Createprogid=" " Description=" " DocumentType=" " EnterpriseKey=" " OrderHeaderKey=" " OrderName=" " OrderNo=" " .... > </HFOrderHeader>

  3. Um XML de amostra para incluir os atributos acima em uma API padrão pode ser gerado passando a tabela YFS que tem um relacionamento com a tabela hang-off na qual você está interessado.

    Por exemplo, suponha que HF_Order_Header é uma tabela filha com um relacionamento para a tabela YFS_Order_Header. O modelo XML gerado pela ferramenta quando TABLE_NAME=YFS_Order_Header é passado:

    <Order>
      <OrderLines>
         <OrderLine ........>
           <Extn extended attributes >
             <HFOrderHeaderList>
               <HFOrderHeader Createprogid=" " Description=" " .........>
               </HFOrderHeader>
             </HFOrderHeaderList>
           </Extn>
         </OrderLine>
      </OrderLines> 
    </Order>
    Nota: é possível modificar os atributos somente dentro de seu elemento customizado ou hang-off.

    É possível remover esse XMl de amostra para incluir os seus atributos customizados em um modelo de API, como o modelo de saída getOrderDetails. Porém, é possível modificar qualquer um dos elementos ou atributos YFS.

    Nota: os XML de amostra também são gerados automaticamente quando você cria o arquivo jar de extensão de banco de dados e são postados no diretório <runtime_sandbox>/xapidocs/sampleXML ... Porém, se você precisar criar um modelo de amostra, você deve executar a ferramenta de geração de XML de modelo separadamente especificando o nome da tabela YFS correspondente.
  4. Uma tabela filha pode ser excluída passando um atributo Operation nas APIs de alteração ou modificação. Por exemplo, o elemento HF_Order_Header pode ser excluído em uma API changeOrder como:
    <Order>
      <OrderLines>
        <OrderLine ........>
            <Extn extended attributes >
               <HFOrderHeaderList>
                 <HFOrderHeader Operation="Delete" Createprogid=" " ....... >
                 </HFOrderHeader>
               </HFOrderHeaderList>
            </Extn>
         </OrderLine>
      </OrderLines> 
    </Order>

    As operações como Criar e Modificar são executadas por padrão. Se uma entrada para esse elemento existir, a API modifica as entradas com o valor recente. No caso em que esse elemento não exista, ela criará uma nova entrada.

  5. Os registros em uma tabela hang-off podem ser reconfigurados designando o valor de “true” para o atributo Reconfigurar no elemento de nível de lista do XML. Quando os registros são reconfigurados, todos os registros existentes para essa tabela hang off que correspondam à tabela-pai são excluídos e todos os elementos incluídos sob o elemento da lista são inseridos. Por exemplo, registros hang off no elemento HF_Order_Header_list podem ser reconfigurados usando o seguinte:
    <Order>
       <OrderLines>
         <OrderLine ........>
             <Extn extended attributes >
                <HFOrderHeaderList Reset="true">
                   <HFOrderHeader>
                   </HFOrderHeader>
                </HFOrderHeaderList>
             </Extn>
         </OrderLine>
       </OrderLines> 
     </Order>
  6. Construa e implemente as suas extensões.