A classe Java com.idsscheer.ppm.xmlextractortools.
extractor.sap2ppm.ZSortWithInteger_sap2ppm a ser usada extrai registros de dados de tabelas, classifica-os usando os critérios de classificação especificados e grava o primeiro ou último registro de dados nos eventos de sistema a serem gerados. A classe tem de ser especificada no atributo classtouse do elemento XML table.
Exemplo
Os documentos de histórico do estado representam um tipo de documento especial do sistema SAP R/3. Estes documentos são armazenados na tabela JCDS. A classe deve determinar a última alteração relacionada com um tipo de estado específico e gravar essa alteração nos eventos do sistema correspondentes. Para isso, todos os números de pedido são extraídos da tabela AUFK. Além disso, para cada número de pedido com informações de estado, todas as entradas desse número de pedido com o prefixo OR e o estado I0043 (campo STAT) são extraídas da tabela JCDS. Estes são classificados por hora de criação (UDATE, UTIME) e o último registro de dados criado deve ser extraído. Todos os valores de campo pertencentes a este registro de dados são gravados no evento de sistema relevante.
O extrato de arquivo abaixo ilustra a configuração para extrair informações de estado da tabela JCDS, nas condições especificadas:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xmlextractor_tableconfiguration SYSTEM
'xmlextractor_tableconfiguration.dtd'>
<xmlextractor_tableconfiguration>
<configuration name="AUFK_JCDS">
<docspec>
<doctable name="AUFK">
<pkfield name="AUFNR"/>
</doctable>
</docspec>
<table name="JCDS_I0043" tablename="JCDS"
classtouse="com.idsscheer.ppm.
xmlextractortools.extractor.
sap2ppm.ZSortWithInteger_sap2ppm">
<parameter name="SORTCRITERION">
<value>UDATE</value>
<value>UTIME</value>
</parameter>
<parameter name="USE">
<value>MAX</value>
</parameter>
<condition fieldname="STAT"
logicaloperator="eq">
<value>I0043</value>
</condition>
<pkfield name="OBJNR" fktablename="AUFK"
fkfieldname="AUFNR">
<prefix>
<value>OR</value>
</prefix>
</pkfield>
<fieldtoread name="CDTCODE"/>
<fieldtoread name="CHGNR"/>
<fieldtoread name="CHIND"/>
<fieldtoread name="INACT"/>
<fieldtoread name="OBJNR"/>
<fieldtoread name="STAT"/>
<fieldtoread name="TCODE"/>
<fieldtoread name="USNAM"/>
</table>
</configuration>
</xmlextractor_tableconfiguration>
Um evento de sistema extraído com essa configuração poderia ter a seguinte aparência:
<event>
<attribute type="AUFK-AUFNR">000000800002</attribute>
<attribute type="JCDS_I0043-CDTCODE"></attribute>
<attribute type="JCDS_I0043-CHGNR">002</attribute>
<attribute type="JCDS_I0043-CHIND">U</attribute>
<attribute type="JCDS_I0043-INACT">X</attribute>
<attribute type="JCDS_I0043-OBJNR">
OR000000800002
</attribute>
<attribute type="JCDS_I0043-STAT">I0043</attribute>
<attribute type="JCDS_I0043-TCODE">KOK2</attribute>
<attribute type="JCDS_I0043-UDATE">19961217</attribute>
<attribute type="JCDS_I0043-USNAM">MUELLERJ</attribute>
<attribute type="JCDS_I0043-UTIME">192122</attribute>
</event>
Os critérios de classificação (neste caso UDATE, UTIME) são automaticamente incluídos na especificação do evento de sistema.
O modelo para criar a configuração exibida é semelhante a isso (os elementos e atributos XML que são opcionais estão destacados na tabela abaixo):
<table name="..." tablename="..." classtouse=
"com.idsscheer.ppm.
xmlextractortools.extractor.
sap2ppm.ZSortWithInteger_sap2ppm">
<parameter name="SORTCRITERION">
<value>...</value>
<value>...</value>
...
</parameter>
<parameter name="USE">
<value>...</value>
</parameter>
...
Ver o capítulo
Configuração da tabela R3 (especificação de evento do sistema)
...
</table>
A tabela abaixo reitera as entradas de configuração mais importantes para a definição table acima:
Elemento/atributo XML |
Valor: Descrição |
---|---|
name |
O nome especificado é adicionado como um prefixo aos atributos do sistema de origem extraídos |
tablename |
Tabela da qual a informação deve ser extraída. Valor padrão: Valor do atributo XML name |
classtouse |
com.idsscheer.ppm.xmlextractortools. Classe Java a ser usada |
nome do parâmetro |
|
SORTCRITERION |
Primeiro parâmetro a ser especificado. Tem de ser especificado pelo menos um elemento XML value (nome de campo do critério de classificação). Os campos especificados apenas podem incluir valores inteiros. Se vários critérios de classificação forem especificados, eles serão priorizados de cima para baixo, ou seja, os registros de dados serão comparados em primeiro lugar com o primeiro critério (superior) e depois com o segundo critério, se nenhuma classificação completa tiver sido criada, e assim por diante. |
USE |
Segundo a ser especificado. Tem de ser especificado um único elemento XML value. Valores válidos: O primeiro ou o último registro de dados da lista gerada com base nos critérios de classificação especificados é selecionado para ser extraído. |
Deve usar essa classe para extrair a primeira ou a última linha de uma classificação com moderação, pois as operações de classificação e seleção resultam em perda de desempenho e memória.