-
Poste bitte das Programm, dann kann ich es nachvollziehen
-
Dann habe ich noch eine Frage, wenn jetzt in einem Zeile kommt:
PHP-Code:
<Artikel-Nr. FIELDNAME="NFT_ART_NUM">80030045
Die Empfehlung für gutes XML ist Bindestrich und Punkt zu vermeiden
XML Naming Rules
XML elements must follow these naming rules:
- Element names are case-sensitive
- Element names must start with a letter or underscore
- Element names cannot start with the letters xml (or XML, or Xml, etc)
- Element names can contain letters, digits, hyphens, underscores, and periods
- Element names cannot contain spaces
Any name can be used, no words are reserved (except xml).
Best Naming Practices
HTML-Code:
Create descriptive names, like this: <person>, <firstname>, <lastname>.
Create short and simple names, like this: <book_title> not like this: <the_title_of_the_book>.
Avoid "-". If you name something "first-name", some software may think you want to subtract "name" from "first".
Avoid ".". If you name something "first.name", some software may think that "name" is a property of the object "first".
Avoid ":". Colons are reserved for namespaces (more later).
Non-English letters like éòá are perfectly legal in XML, but watch out for problems if your software doesn't support them.
Quelle: https://www.w3schools.com/xml/xml_elements.asp
-
Insofern schon besser, sich daran zu halten. Für Sprachen wie Java/.Net/o.ä. ist das letztlich aber egal.
Für ILERPG werden ungültige Namen ja sowieso (case=convert) in "_" übersetzt.
Die XML-Schreibweise für Namen ist i.d.R. "CamelCase", also den Höckern des Kamels nachempfunden.
Großbuchstaben am Anfang eines Wortes, der Rest dann klein, z.b. "ArtikelNummer".
-
@fuerchau
Leider wird mir die XML-Datei von der Java- o.ä. -Fraktion zur Verfügung gestellt.
-
Macht ja nichts, da du sie ja verarbeiten kannst. Namen bis 128 Stellen (ist zwar mühsam, aber RDi hilft) sind ja möglich.
Im sog. *SNGSTG-Modell sind Datenstrukturen bis max. 16 MB möglich (bei UCS2 eben nur 8MB).
Du kannst aber beim CRTxxxMOD/PGM auf das *TERASPACE-Modell umstellen. Dann sind DS'n bis 2 Terabyte machbar, wenn das System mitmacht;-).
-
@rainer
hier die quelle.
[
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;
Teile_Nr likeds(Data_tmp);
hgna likeds(hgna);
Ersteller likeds(Data_tmp);
Erstelldatum likeds(Data_tmp);
Workflow_Status likeds(Data_tmp);
Aenderungsdatum likeds(Data_tmp);
Aenderer likeds(Data_tmp);
meeh likeds(Data_tmp);
diart likeds(Data_tmp);
bez1 likeds(Data_tmp);
bez2 likeds(Data_tmp);
bez3 likeds(Data_tmp);
herna likeds(Data_tmp);
hernr likeds(Data_tmp);
cnnr likeds(Data_tmp);
ulfilenr likeds(Data_tmp);
csanr likeds(Data_tmp);
arstk_ likeds(Data_tmp);
arart_ likeds(Data_tmp);
herty likeds(Data_tmp);
csanorm likeds(Data_tmp);
Bemerkung likeds(Data_tmp);
Spezifikation likeds(Data_tmp);
end-ds;
//------------------------------------------------------------------//
// Template Data //
//------------------------------------------------------------------//
dcl-ds Data_tmp template qualified;
Fieldname char(10);
Data char(20);
end-ds;
//------------------------------------------------------------------//
// Template Datum //
//------------------------------------------------------------------//
dcl-ds Datu_tmp template qualified;
Fieldname char(10);
Data char(40);
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();
chain P4FILN ArtstaL05;
Eval p4andat=%TimeStamp ;
*inlr = *on;
//------------------------------------------------------------------//
// Main //
//------------------------------------------------------------------//
dcl-proc Main;
dcl-s LocOpt varchar(256); // XML-Options
dcl-s LocFile varchar(128); // File
LocFile = '/home/NOWAK/VORW/Part_w_SML_Export_PF_8_AS400.xml'; //FILE
LocOpt = 'doc=file case=any allowextra=yes +
countprefix=cnt_ datasubf=data';
monitor ;
xml-into(E) Data %xml(LocFile:LocOpt);
On-error 353 ;
Endmon ;
end-proc;
//------------------------------------------------------------------// PHP]
[/PHP]
und die XML-Datei:
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>
<KEYCHARACTERISTIC NAME="ugna_999">BlauGrau</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>
Leider arbeite ich noch Spaltenorientiert,
wo müsste ich denn den *entry , chain und update einsetzen?
LG
Hans-Joachim
-
CCSID = 1208, hatte ich als erstes geprüft.
Feldlängen habe ich erhöht, und als varchar definiert.
das Joblog bringt Ursachencode 5 - nur das verstehe ich nicht !!
PHP-Code:
Ursachencode 5.
Ursache . . . . : Beim Parsing eines XML-Dokuments hat der Parser
festgestellt, dass das XML-Dokument nicht der RPG-Variablen "pdmrequest"
entspricht und die Optionen dies nicht zulassen. Der Ursachencode ist 5. Das
Unterfeld, für das der Fehler festgestellt wurde, ist
"pdmrequest.objects.part.data.hgna.keygroup.keycharacteristic(3).data". Die
Optionen sind "doc=File case=convert allowextra=yes allowmissing=yes
countprefix=Nu_ datasubf=data". Der Name des XML-Dokuments ist
/home/NOWAK/VORW/Part_w_SML_Export_PF_5_AS400.xml; *N gibt an, dass das
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