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 .