Incluindo atributos estendidos no modelo API

É possível incluir atributos estendidos no modelo de API; no entanto, você deve se assegurar que eles sejam salvos no local correto e no formato correto.

Os atributos estendidos aparecem como um elemento <Extn> separado sob o elemento primário.

Por exemplo, no modelo de XML de saída padrão da API getItemDetails(), os atributos Item têm a seguinte estrutura:

<?xml version="1.0" encoding="UTF-8"?>
 <Item .. Item attributes >
    <PrimaryInformation .... PrimaryInformation attributes />
    <ItemServiceSkillList .. ItemServiceSkillList attributes/>
    <ItemAliasList ... ItemAliasList attributes />
   .
   .
 </Item>

Após estender o cabeçalho de Item, a API getItemDetails() pode emitir como saída o seguinte XML:

<?xml version="1.0" encoding="UTF-8"?>
 <Item .. Item attributes >
   <PrimaryInformation .... PrimaryInformation attributes />
   <Extn ExtnAltQty="200408201034469490" ..... extnded attributes />
   <YFSPersonInfo .... PersonInfoKey="200408201034469490" ...../>
   <ItemServiceSkillList .. ItemServiceSkillList attributes/>
   <ItemAliasList ... ItemAliasList attributes />
   .
   .
 </Item>
Observação: as variáveis de chave estrangeira para a coluna estendida aparecem como um atributo PersonInfoKey do elemento YFSPersonInfo . O relacionamento pode ser validado se a coluna estendida e o site PersonInfoKey tiverem o mesmo valor.
Por exemplo, no arquivo extensions.xml , o trecho a seguir define um relacionamento de chave estrangeira.
<Entity TableName="YFS_ITEM">
    <Attributes>
        <Attribute ColumnName="EXTN_PERSON_INFO" DataType="Key" DefaultValue="' '" XMLGroup="Extn" XMLName="YFSPersonInfo"/>
    </Attributes>
    <ForeignKeys>
        <ForeignKey ParentTableName="YFS_PERSON_INFO" XMLName="YFSPersonInfo">
            <Attribute ColumnName="EXTN_PERSON_INFO" ParentColumnName="PERSON_INFO_KEY"/>
        </ForeignKey>
    </ForeignKeys>
</Entity>
Aqui, EXTN_PERSON_INFO em YFS_ITEM faz referência ao atributo PERSON_INFO_KEY em YFS_PERSON_INFO. Se os valores corresponderem, a saída da API getItemDetails incluirá ambos.
<Item ItemID="Item1" ...> 
     ...
     ...
     ...
    <Extn YFSPersonInfo="2025070310105179532"/> 
    <YFSPersonInfo PersonInfoKey="2025070310105179532" .../>
</Item>

O atributo estendido é recuperado do atributo XMLName do arquivo your_custome_filename.xml que você editou nas seções anteriores, ao estender uma tabela padrão. Coloque seus modelos estendidos no diretório <runtime_sandbox>/extensions/global/template/api .

Nota: os arquivos de modelo devem ser codificados no formato UTF-8 .