Hallo Forum,
ich mache gerade meine ersten "geh versuche" mit XML.
Über die ersten Fehler (CCSID) bin ich schon gestolpert, habe das aber schon übers Forum gelöst bekommen.
Zugrunde liegt ein XML-Dokument mit mehreren Elementen.
PHP-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>
</PART></OBJECTS></PDMRequest>
Zuerst habe ich das XML Dokument zerlegt, also nur DATA mit den einzelnen Feldbeschreibungen
-DATA-
…. Felder ….
-/DATA.
hat auch funktioniert.
Anschliessend habe ich hgna eingefügt,
doch jetzt bin ich mit meinem XML-Wissen am Ende und habe auch keine Idee wie ich das beim
RPG darstellen soll.
PHP-Code:
Nachricht . . . : Das XML-Dokument entspricht nicht der RPG-Variablen;
Ursachencode 5.
Ursache . . . . : Beim Parsing eines XML-Dokuments hat der Parser
festgestellt, dass das XML-Dokument nicht der RPG-Variablen "PARM"
entspricht und die Optionen dies nicht zulassen. Der Ursachencode ist 5. Das
Unterfeld, für das der Fehler festgestellt wurde, ist "PARM(1).hgna.value".
Die Optionen sind "doc=File datasubf=value path=DATA allowmissing=yes
allowextra=yes case=convert". Der Name des XML-Dokuments ist
Programm:
PHP-Code:
d*-------------
d tmplteilenr ds qualified
d template
d FIELDNAME 15a
d value 30a
d tmplkeychar ds template
d qualified
d Name 15a
d value 30a
d*-------------
d tmplkeygroup ds template
d qualified
d GROUPNAME 15a
d value 30a
d KEYCHARACTERIS...
D TIC Dim(6) likeds(tmplkeychar)
d*-------------
d tmplhgnaField ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplhgna ds qualified
d template
d FIELDNAME 15a
d value 30a
d GROUPNAME 15a
d value1 30a
d keygroup Likeds(tmplkeygroup)
d*-------------
d tmplersteller ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplerstelldat ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplWorkflowSt ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplAenderungD ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplAenderer ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplWorkflowSt ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplAenderungD ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplAenderer ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplmeeh ds qualified
d template
d FIELDNAME 15a
d value 2a
d*-------------
d tmpldiart ds qualified
d template
d FIELDNAME 15a
d value 1a
d*-------------
d tmplbez1 ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplbez2 ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplbez3 ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplherna ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplhernr ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplcnnr ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplufilenr ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplcsanr ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplarstk_ ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplarart_ ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplherty ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplcsanorm ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplBemerkung ds qualified
d template
d FIELDNAME 15a
d value 30a
d*-------------
d tmplSpezifikat ds qualified
d template
d FIELDNAME 15a
d value 30a
d*============= d tmpldata ds qualified
d template
d Teile_Nr likeds(tmplteilenr)
d hgna likeds(tmplhgna)
d Ersteller likeds(tmplersteller)
d Erstelldatum likeds(tmplerstelldat)
d Workflow_Stat...
d us likeds(tmplWorkflowSt)
d Aenderungsdat...
d um likeds(tmplAenderungD)
d Aenderer likeds(tmplAenderer)
d meeh likeds(tmplmeeh)
d diart likeds(tmpldiart)
d bez1 likeds(tmplbez1)
d bez2 likeds(tmplbez2)
d bez3 likeds(tmplbez3)
d herna likeds(tmplherna)
d hernr likeds(tmplhernr)
d cnnr likeds(tmplcnnr)
d ulfilenr likeds(tmplufilenr)
d csanr likeds(tmplcsanr)
d arstk_ likeds(tmplarstk_)
d arart_ likeds(tmplarart_)
d herty likeds(tmplherty)
d csanorm likeds(tmplcsanorm)
d Bemerkung likeds(tmplbemerkung)
d Spezifikation likeds(tmplspezifikat)
d xmlpfad s 255a varying
d doc s 100a varying
d inz('doc=File datasubf=value ')
d allowmissing s 20a varying
d inz('allowmissing=yes ')
d allowextra s 20a varying
d inz('allowextra=yes ')
d case s 20a varying
d inz('case=convert')
d path s 255a varying
d inz('path=DATA ')
d status s n
Eval xmlpfad=%Trim(attchpath)+%Trim(FileName) ;
xml-into %handler(Xmldomhandler : status)
%xml(xmlpfad :
doc +
path +
allowmissing +
allowextra +
case);
eval *inlr=*On ;
p Xmldomhandler b
d pi 10i 0
d redcode n
d DATA likeds(tmpldata)
d dim(1)
d const
d nbrrec 10i 0 value
d x s 10i 0 inz
im Debug sieht es dann so aus:
PHP-Code:
EVAL DATA
DATA.TEILE_NR.FIELDNAME(1) = '********** '
DATA.TEILE_NR.VALUE(1) = '********** '
DATA.HGNA.FIELDNAME(1) = '********** '
DATA.HGNA.VALUE(1) = '********** '
DATA.HGNA.GROUPNAME(1) = '********** '
DATA.HGNA.VALUE1(1) = '********** '
DATA.HGNA.KEYGROUP.GROUPNAME(1) = '********** '
DATA.HGNA.KEYGROUP.VALUE(1) = '********** '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(1,1) = '********** '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.VALUE(1,1) =
'********** '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.NAME(1,2) = '********** '
DATA.HGNA.KEYGROUP.KEYCHARACTERISTIC.VALUE(1,2) =
Vielleicht kann mir hier einer auf die Sprünge helfen.
Vielen Dank
Hans-Joachim
Bookmarks