Configuração da tabela

O arquivo abaixo exibe a configuração SD_C para um sistema de banco de dados SQL:

...

<configuration name="SD_C">

<docspec>

<docreftable name="VBAK">

<booleancondition>

<condition fieldname="ERDATCHAR#-#ERZETCHAR"

logicaloperator="char_creationtimestamp">

<value>yyyyMMdd</value>

<value>HHmmss</value>

</condition>

<condition fieldname="ERDAT#-#ERZET"

logicaloperator="date_creationtimestamp">

<value>DATE</value>

<value>TIME</value>

</condition>

<condition fieldname="VBTYP" logicaloperator="eq">

<value>C</value>

</condition>

</booleancondition>

<pkfield name="VBELN" />

</docreftable>

<doctable name="Orders" tablename="VBAP">

<pkfield name="VBELN" fktablename="VBAK"

fkfieldname="VBELN"/>

<pkfield name="POSNR" />

<fieldtoread name="VBELN"/>

<fieldtoread name="POSNR"/>

<fieldtoread name="ERDAT"/>

<fieldtoread name="ERZET"/>

<fieldtoread name="MATNR">

<textref tablename="MAKT" reffieldname="MATNR"

textfieldname="MAKTX" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="KONDM">

<textref tablename="T178T" reffieldname="KONDM"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="SPART">

<textref tablename="TSPAT" reffieldname="SPART"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="WERKS">

<textref tablename="T001W" reffieldname="WERKS"

textfieldname="NAME1"/>

</fieldtoread>

<fieldtoread name="CHARG"/>

<fieldtoread name="PSTYV"/>

<fieldtoread name="ERNAM"/>

<fieldtoread name="NETWR"/>

</doctable>

</docspec>

<table name="VBAK">

<pkfield name="VBELN" fktablename="Orders"

fkfieldname="VBELN"/>

<fieldtoread name="VTWEG">

<textref tablename="TVTWT" reffieldname="VTWEG"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VKORG">

<textref tablename="TVKOT" reffieldname="VKORG"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VDATU"/>

<fieldtoread name="VKBUR">

<textref tablename="TVKBT" reffieldname="VKBUR"

textfieldname="BEZEI" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VKGRP">

<textref tablename="TVGRT" reffieldname="VKGRP"

textfieldname="BEZEI" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VBTYP"/>

<fieldtoread name="AUART"/>

</table>

<table name="MARA">

<pkfield name="MATNR" fktablename="Orders"

fkfieldname="MATNR"/>

<fieldtoread name="MATNR"/>

<fieldtoread name="MTART">

<textref tablename="T134T" reffieldname="MTART"

textfieldname="MTBEZ" langfieldname="SPRAS"/>

</fieldtoread>

</table>

</configuration>

Tabela de chave estrangeira

...

<docreftable name="VBAK">

<booleancondition>

<condition fieldname="ERDATCHAR#-#ERZETCHAR"

logicaloperator="char_creationtimestamp">

<value>yyyyMMdd</value>

<value>HHmmss</value>

</condition>

<condition fieldname="ERDAT#-#ERZET"

logicaloperator="date_creationtimestamp">

<value>DATE</value>

<value>TIME</value>

</condition>

<condition fieldname="ERDAT_DATE"

logicaloperator="date_geq">

<value>05.12.2001</value>

</condition>

<condition fieldname="ERZET_TIME"

logicaloperator="time_gt">

<value>22:27:13</value>

</condition>

<condition fieldname="VBTYP"

logicaloperator="eq">

<value>C</value>

</condition>

</booleancondition>

<pkfield name="VBELN" />

</docreftable>

...

O identificador e o nome da tabela de chave estrangeira do sistema de banco de dados SQL é VBAK. São extraídos todos os documentos de encomenda do tipo VBTYP=C. Os elementos value do operador de condição char_creationtimestamp especificam o formato do carimbo de data/hora a ser gerado a partir dos campos correspondentes do banco de dados. Os elementos value do operador de condição date_creationtimestamp especificam os tipos de dados dos campos extraídos. Os valores da coluna da tabela ERDAT são do tipo DATE e os da coluna ERZET são do tipo TIME.

Apenas as linhas da tabela nas quais os valores dos atributos ERDAT_DATE e ERZET_TIME são maiores do que/iguais a ou maiores do que os valores especificados com value (05.12.2001 ou 22:27:13).

O nome da coluna da tabela de chave primária é VBELN. Para cada valor de campo VBELN diferente, os registros de dados são extraídos da tabela do evento de sistema vinculado para a qual VBELN apresenta o mesmo valor que a tabela de chave estrangeira.

Tabela do evento de sistema

...

<doctable name="Orders" tablename="VBAP">

<pkfield name="VBELN" fktablename="VBAK"

fkfieldname="VBELN"/>

<pkfield name="POSNR" />

<fieldtoread name="VBELN"/>

<fieldtoread name="POSNR"/>

<fieldtoread name="ERDAT"/>

<fieldtoread name="ERZET"/>

<fieldtoread name="MATNR">

<textref tablename="MAKT" reffieldname="MATNR"

textfieldname="MAKTX" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="KONDM">

<textref tablename="T178T" reffieldname="KONDM"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="SPART">

<textref tablename="TSPAT" reffieldname="SPART"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="WERKS">

<textref tablename="T001W"

reffieldname="WERKS" textfieldname="NAME1"/>

</fieldtoread>

<fieldtoread name="CHARG"/>

<fieldtoread name="PSTYV"/>

<fieldtoread name="ERNAM"/>

<fieldtoread name="NETWR"/>

</doctable>

...

A tabela do evento de sistema VBAP está associada ao identificador Orders. A relação de chave estrangeira especificada na linha

<pkfield name="VBELN" fktablename="VBAK"
fkfieldname="VBELN"/>

vincula a tabela à tabela de chave estrangeira VBAK. A chave primária consiste nas colunas VBELN e POSNR.

Um evento de sistema (elemento XML event) é criado no arquivo de saída XML para cada linha extraída da tabela. Para cada elemento XML fieldtoread, uma linha do formulário

<attribute type="...">...</attribute>

é gravada no arquivo de saída. Para alguns elementos fieldtoread, o valor extraído da tabela referenciada (elemento XML textref) é gravado em conjunto com o valor do campo de dados extraído. O elemento opcional langfieldname extrai o texto específico do idioma do campo de dados.
O tipo de atributo do sistema de origem completo é composto pelo identificador da tabela do evento de sistema (doctable name), nome do campo (fieldtoread name) e nome do campo de texto referenciado (textref ... textfieldname). O tipo de atributo do sistema de origem para o primeiro elemento fieldtoread extraído com uma tabela referenciada é semelhante a:

<attribute type="Orders-MATNR-MAKTX">...</attribute>

Tabela de dados

...

<table name="VBAK">

<pkfield name="VBELN" fktablename="Orders"

fkfieldname="VBELN"/>

<fieldtoread name="VTWEG">

<textref tablename="TVTWT" reffieldname="VTWEG"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VKORG">

<textref tablename="TVKOT" reffieldname="VKORG"

textfieldname="VTEXT" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VDATU"/>

<fieldtoread name="VKBUR">

<textref tablename="TVKBT" reffieldname="VKBUR"

textfieldname="BEZEI" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VKGRP">

<textref tablename="TVGRT" reffieldname="VKGRP"

textfieldname="BEZEI" langfieldname="SPRAS"/>

</fieldtoread>

<fieldtoread name="VBTYP"/>

<fieldtoread name="AUART"/>

</table>

<table name="MARA">

<pkfield name="MATNR" fktablename="Orders"

fkfieldname="MATNR"/>

<fieldtoread name="MATNR"/>

<fieldtoread name="MTART">

<textref tablename="T134T" reffieldname="MTART"

textfieldname="MTBEZ" langfieldname="SPRAS"/>

</fieldtoread>

</table>

...

As relações de chave estrangeira com os campos de chave primária VBELN e MATNR na tabela Ordens são usadas para extrair informações suplementares das tabelas de dados VBAK e MARA.