Hallo Hans-Joachim,
ich habe etwas rumprobiert und eine Lösung gefunden, die funktioniert. Bei den Optionen habe ich noch countprefix=cnt_ datasubf=data eingefügt.
Die Debug-Daten
PHP-Code:
DATA.TEILE_NR.FIELDNAME = 'NFT_IDNR '
DATA.TEILE_NR.DATA = '20411 '
DATA.HGNA.KEYGROUP.GROUPNAME = 'Blechschraube '
DATA.HGNA.KEYGROUP.CNT_KEYCHARACTERISTIC = 6
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(1) = 'ugna '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(1) = 'Blechschraube '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(2) = 'ugna_056 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(2) = '4,8 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(3) = 'ugna_107 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(3) = '38 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(4) = 'ugna_401 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(4) = 'DIN EN ISO 7049 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(5) = 'ugna_208 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(5) = 'C '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(6) = 'ugna_150 '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(6) = 'verzinkt '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(7) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(7) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(8) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(8) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(9) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(9) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(10) = ' '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.DATA(10) = ' '
DATA.ERSTELLER.FIELDNAME = 'NFT_KON '
DATA.ERSTELLER.DATA = 'BizTalkImport '
DATA.ERSTELLDATUM.FIELDNAME = 'NFT_DAT '
DATA.ERSTELLDATUM.DATA = '2018-05-24T16:07:12 '
DATA.WORKFLOW_STATUS.FIELDNAME = 'NFT_ZUST '
DATA.WORKFLOW_STATUS.DATA = '20000 '
DATA.AENDERUNGSDATUM.FIELDNAME = 'NFT_MDAT '
DATA.AENDERUNGSDATUM.DATA = '0001-01-01T01:00:00 '
Die korrigierte und modifizierte XML-Datei, statt Workflow-Status -> Workflow_Status
HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<DATA>
<Teile_Nr FIELDNAME="NFT_IDNR">20411</Teile_Nr>
<hgna FIELDNAME="NFT_NAM1">Schraube
<KEYGROUP GROUPNAME="Blechschraube">
<KEYCHARACTERISTIC NAME="ugna">Blechschraube</KEYCHARACTERISTIC>
<KEYCHARACTERISTIC NAME="ugna_056">4,8</KEYCHARACTERISTIC>
<KEYCHARACTERISTIC NAME="ugna_107">38</KEYCHARACTERISTIC>
<KEYCHARACTERISTIC NAME="ugna_401">DIN EN ISO 7049</KEYCHARACTERISTIC>
<KEYCHARACTERISTIC NAME="ugna_208">C</KEYCHARACTERISTIC>
<KEYCHARACTERISTIC NAME="ugna_150">verzinkt</KEYCHARACTERISTIC>
</KEYGROUP>
</hgna>
<Ersteller FIELDNAME="NFT_KON">BizTalkImport</Ersteller>
<Erstelldatum FIELDNAME="NFT_DAT">2018-05-24T16:07:12</Erstelldatum>
<Workflow_Status FIELDNAME="NFT_ZUST">20000</Workflow_Status>
<Aenderungsdatum FIELDNAME="NFT_MDAT">0001-01-01T01:00:00</Aenderungsdatum>
<Aenderer FIELDNAME="NFT_MKON"></Aenderer>
<meeh FIELDNAME="NFT_STK2">01</meeh>
<diart FIELDNAME="NFT_STK3">K</diart>
<bez1 FIELDNAME="NFT_STL0">Blechschraube</bez1>
<bez2 FIELDNAME="NFT_STL1">Linsen mit Kreuzschlitz</bez2>
<bez3 FIELDNAME="NFT_STL2"></bez3>
<herna FIELDNAME="NFT_STL3"></herna>
<hernr FIELDNAME="NFT_STL4"></hernr>
<cnnr FIELDNAME="NFT_STL5"></cnnr>
<ulfilenr FIELDNAME="NFT_STL6"></ulfilenr>
<csanr FIELDNAME="NFT_STL7"></csanr>
<arstk_ FIELDNAME="NFT_STL8">DIN EN ISO 7049</arstk_>
<arart_ FIELDNAME="NFT_STL9">2002523</arart_>
<herty FIELDNAME="NFT_STH0"></herty>
<csanorm FIELDNAME="NFT_STH1"></csanorm>
<Bemerkung FIELDNAME="ML_STRING"></Bemerkung>
<Spezifikation FIELDNAME="ML_STRING"></Spezifikation>
</DATA>
Das RPG-Programm
PHP-Code:
ctl-opt dftactgrp(*no);
//------------------------------------------------------------------//
// //
// Parsen XML-DATEN - CCSID DER XML-DATEI MUSS 1208 SEIN //
// //
//----------------- //
// R.Ross 12.2018 * //
//------------------------------------------------------------------//
// XML-Array - Root //
//------------------------------------------------------------------//
dcl-ds Data qualified;
dcl-ds Teile_Nr;
Fieldname char(10);
Data char(20);
end-ds;
hgna likeds(hgna);
dcl-ds Ersteller;
Fieldname char(10);
Data char(20);
end-ds;
dcl-ds Erstelldatum;
Fieldname char(10);
Data char(20);
end-ds;
dcl-ds Workflow_Status;
Fieldname char(10);
Data char(20);
end-ds;
dcl-ds Aenderungsdatum;
Fieldname char(10);
Data char(20);
end-ds;
end-ds;
//------------------------------------------------------------------//
// Element hgna //
//------------------------------------------------------------------//
dcl-ds hgna qualified;
Keygroup likeds(Keygroup);
end-ds;
//------------------------------------------------------------------//
// Element Keygroup //
//------------------------------------------------------------------//
dcl-ds Keygroup qualified;
Groupname char(40);
cnt_Keycharacteristic uns(10);
Keycharacteristic likeds(Keycharacteristic)dim(10);
end-ds;
//------------------------------------------------------------------//
// Element Keycharacteristic //
//------------------------------------------------------------------//
dcl-ds Keycharacteristic qualified;
Name char(10);
Data char(20);
end-ds;
//------------------------------------------------------------------//
// Processing //
//------------------------------------------------------------------//
main();
*inlr = *on;
//------------------------------------------------------------------//
// Main //
//------------------------------------------------------------------//
dcl-proc Main;
dcl-s LocOpt varchar(256); // XML-Options
dcl-s LocFile varchar(128); // File
LocFile = '/Home/Import/xml/test01.xml'; // File
LocOpt = 'doc=file case=any allowextra=yes +
countprefix=cnt_ datasubf=data';
xml-into Data %xml(LocFile:LocOpt);
end-proc;
//------------------------------------------------------------------//
Herzliche Grüße
Rainer
Bookmarks