-
XML - Tabellen in Tabellen *RNF5343 Feldgruppe LINE hat zu viele übergangene Indizes.
Hallo,
Ich habe im XML Tabellen in Tabellen
Innerhalb mehrere Artikel und es gibt jeweils mehrere Optionen dazu .
Ich habe brav und fleißig die Datenstrukturen definiert.
Leider bekomme ich Umwandlungsfehler.
Z.B. wenn ich den Index zum Auslesen definieren will.
*RNF5343 30 120 007900 Feldgruppe LINE hat zu viele übergangene Indizes.
LocInd = Orders.Head.Cnt_Line;
LocInd2 = Orders.Head.Cnt_Nad;
LocInd3 = Orders.Head.Line.Cnt_Opt;
0001.00 ctl-opt dftactgrp(*no);
0002.00 dcl-f order02pf usage(*output);
0003.00 dcl-f order03pf usage(*output);
0004.00 // Root .................................................. ......
0005.00 dcl-ds Orders qualified;
0006.00 Head likeds(Head);
0007.00 end-ds;
0008.00 // Template Head.............................................. ..
0009.00 dcl-ds Head template qualified;
0010.00 VersionNumber likeds(VersionNumber);
0011.00 TechnicalReceiver char(20);
0012.00 TechnicalSender char(20);
0013.00 OrderNumber char(20);
0014.00 Nad likeds(Nad) dim(04);
0015.00 Cnt_Nad int(10);
0016.00 Line likeds(Line) dim(10);
0017.00 Cnt_Line int(10);
0018.00 end-ds;
0019.00 dcl-ds VersionNumber template qualified;
0020.00 VersionName char(20);
0021.00 VersionNo char(20);
0022.00 end-ds;
0023.00 // Template Nad............................................... ..
0024.00 dcl-ds Nad template qualified;
0025.00 FlagOfParty char(02);
0026.00 AdressGLN char(20);
0027.00 end-ds;
0028.00 // Template Line.............................................. ..
0029.00 dcl-ds Line template qualified;
0030.00 LineItemNumber char(03);
0031.00 ProductNumber char(10);
0032.00 Opt likeds(Opt) dim(10);
0033.00 Cnt_Opt int(10);
0034.00 end-ds;
0035.00 // Template Opt............................................... ..
0036.00 dcl-ds Opt template qualified;
0037.00 FeatureLineNumber char(01);
0038.00 FeatureNumber char(01);
0039.00 FeatureDescription char(20);
0040.00 OptionNumber char(01);
0041.00 OptionDescription char(20);
0042.00 end-ds;
*RNF5343 30 120 007900 Feldgruppe LINE hat zu viele übergangene Indizes.
Grüsse F D H Franco
-
Du solltest Deine Referenz-Datenstrukturen anders benennen als die endgültigen Felder, die mit LIKEDS auf die Referenz-Struktur verweisen. Könnte zu Problemen führen.
Außerdem wenn ich mir die Fehlermeldung anschaue, scheint das kein Problem von der Definition, sondern der Verarbeitung zu sein, also was ist in Zeile 79?
Birgitta
-
Hallo Franco,
Das Element Cnt_Opt erreichst Du über folgendes Statement, da es sich innerhalb der Schleife Line befindet
PHP-Code:
for LocInd = 1 to Orders.Head.Cnt_Line; // Loop Produkte ItemNumber = Orders.Head.Line(LocInd).LineItemNumber; ProductNumber = Orders.Head.Line(LocInd).ProductNumber; for LocInd3 = 1 to Orders.Head.Line(LocInd).Cnt_Opt; FeatureDescription = Orders.Head.Line(LocInd).Opt(LocInd3).FeatureDescription; endfor; endfor;
Habt Ihr Interesse coole Webanwendungen auf IBM i zu programmieren?
- Responsive Webdesign für PC, iPad und Smartphone
http://www.myhofi.com/dev/html/DataViewResponsive.html
- Stammdaten verwalten http://www.myhofi.com/tms/HTML/MySubfileApp04.html
- Projektverwaltung mit Gantt http://www.myhofi.com/tms/HTML/MyGantt.html
- schnelle Volltextsuche http://www.myhofi.com/music/html/musicsearch.html
Hier gibts die Workshops https://www.toolmaker.de/schulungen/
Herzliche Grüße
Rainer Ross It-Beratung
-
Zitat von B.Hauser
Du solltest Deine Referenz-Datenstrukturen anders benennen als die endgültigen Felder, die mit LIKEDS auf die Referenz-Struktur verweisen. Könnte zu Problemen führen.
Außerdem wenn ich mir die Fehlermeldung anschaue, scheint das kein Problem von der Definition, sondern der Verarbeitung zu sein, also was ist in Zeile 79?
Birgitta
Hallo Birgitta,
0079.00 LocInd3 = Orders.Head.Line.Cnt_Opt;
Die Index definition mag der Compiler nicht.
Gruß Franco
-
Hallo Rainer,
Danke.
Der Compiler nervt aber schon bei der Definition des Index.
0079.00 LocInd3 = Orders.Head.Line.Cnt_Opt;
Habe auch Birgitta schon gefragt ....
Gruß Franco
-
Hallo Franco,
so sollte es gehen
PHP-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); TechnicalReceiver char(20); TechnicalSender char(20); OrderNumber char(20); Nad likeds(Nad) dim(04); Cnt_Nad int(10); 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 Nad // //------------------------------------------------------------------//
dcl-ds Nad template qualified; FlagOfParty char(02); AdressGLN char(20); end-ds;
//------------------------------------------------------------------// // Template Line - Enthält die Produkte // //------------------------------------------------------------------//
dcl-ds Line template qualified; LineItemNumber char(03); ProductNumber char(10); Opt likeds(Opt) dim(100); Cnt_Opt int(10); end-ds;
//------------------------------------------------------------------// // Template Options // //------------------------------------------------------------------//
dcl-ds Opt template qualified; FeatureLineNumber char(01); FeatureNumber char(01); FeatureDescription char(20); OptionNumber char(01); OptionDescription char(20); 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 LocInd2 uns(10); // Index dcl-s ItemNumber like(Line.LineItemNumber); dcl-s ProductNumber like(Line.ProductNumber); dcl-s FeatureDescription like(Opt.FeatureDescription);
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; for LocInd2 = 1 to Orders.Head.Line(LocInd).Cnt_Opt; FeatureDescription = Orders.Head.Line(LocInd).Opt(LocInd2).FeatureDescription; endfor; endfor;
end-proc; //------------------------------------------------------------------//
-
Danke. Jetzt Läuft es. Franco
Similar Threads
-
By alex61 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 31-03-17, 11:32
-
By camouflage in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 28-04-16, 07:19
-
By harbir in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 12-03-14, 15:34
-
By Gimli in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 31-03-03, 10:10
-
By infomio in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 10-07-02, 14:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks