Hallo Franko,
anbei die Lösung für das Problem
HTML-Code:
ctl-opt dftactgrp(*no);
//------------------------------------------------------------------//
// //
// Parsen XML-DATEN - CCSID DER XML-DATEI MUSS 1208 SEIN //
// //
//----------------- //
// R.Ross 11.2019 * //
//------------------------------------------------------------------//
// XML-Array - Root //
//------------------------------------------------------------------//
dcl-ds Orders qualified;
Head likeds(Head);
end-ds;
//------------------------------------------------------------------//
// Template Head //
//------------------------------------------------------------------//
dcl-ds Head template qualified;
VersionNumber likeds(VersionNumber);
OrderNumber char(20);
Line likeds(Line) dim(05);
Cnt_Line int(10);
end-ds;
dcl-ds VersionNumber template qualified;
VersionName char(20);
VersionNo char(20);
end-ds;
//------------------------------------------------------------------//
// Template Line - Enthält die Produkte //
//------------------------------------------------------------------//
dcl-ds Line template qualified;
LineItemNumber char(03);
ProductNumber char(10);
end-ds;
//------------------------------------------------------------------//
// Processing //
//------------------------------------------------------------------//
main();
*inlr = *on;
//------------------------------------------------------------------//
// Main //
//------------------------------------------------------------------//
dcl-proc Main;
dcl-s LocOptions varchar(128); // XML-Options
dcl-s LocFile varchar(128); // File
dcl-s LocInd uns(10); // Index
dcl-s ItemNumber like(Line.LineItemNumber);
dcl-s ProductNumber like(Line.ProductNumber);
LocFile = '/Home/Import/xml/20191031_221735_1TJW5S_2.xml';
LocOptions = 'doc=file case=any allowextra=yes +
countprefix=cnt_ datasubf=data';
clear Orders; // Init XML-Struktur
xml-into Orders %xml(LocFile:LocOptions);
for LocInd = 1 to Orders.Head.Cnt_Line; // Loop Produkte
ItemNumber = Orders.Head.Line(LocInd).LineItemNumber;
ProductNumber = Orders.Head.Line(LocInd).ProductNumber;
endfor;
end-proc;
//------------------------------------------------------------------//
Bookmarks