-
Datenstruktur Namen der Felder auslesen
Moin moin,
ich habe mit XML-Into ein XML in die Datenstrukturen (XML_DS) geschoben.
Dazu habe ich zusätzliche Datenstruktur mit Feldnamen (FELD_DS) , die ich zum befüllen einer Datei benötige.
Wie kann ich nun die die beiden Datenstrukturen miteinander vergleichen?
Sprich ich möchte wissen ob eines der Elemente aud der FELD_DS mit dem Namen aus der XML_DS übereinstimmt.
Aufbau XML_DS
XML_DS
FELDA
FELDB
FELDC
FELD_DS
NAMEA INZ(FELDC)
NAMEB INZ(FELDA)
NAMEC INZ(FELDB)
-
Das ist nicht nötig bzw. vollkommen unsinnig, da bei fehlender Übereinstimmung die Information nicht gelesen wird.
Wenn in der XML ein Knoten den Namen "XYZ" hat, benötigst du eine DS mit dem Namen XYZ. Ebenso gilt dies für Attributnamen, die dann in Felder umgesetzt werden.
Per Option kannst du bestimmen, dass z.B. ungültige Zeichen in Namen für RPG mit "_" ersetzt werden.
Desweiteren gibt es Optionen für fehlende Einträge sowie zuviel Einträge um die Daten trotzdem zulesen.
Geschachtelte Strukturen definiert man dann mit einzelnen DS'n, die man dann per LIKEDS und Qualified strukturiert.
Mehrfachvorkommen einer XML-Struktur (Array) definiert man dann mit DIM. Hier gibt es dann auf der DS noch die Mögloichkeit ein Count-Feld für die Anzahl Vorkommen anzulegen.
Nach dem XML-INTO kann man dann auf die endgültige geschachtelte DS zugreifen und auf Attribute und Arrays zugreifen.
Hier hat sich für mich die Definition aller Felder als Zeichenfeld herauskristallisiert um ggf. Konvertierungen mit %DEC(), %DATE() oder sonstwie vorzunehmen.
Ich weiß auch nicht, was deine FELD_DS bewirken soll, da es keine Möglichkeit gibt, aus dem Inhalt einer Variablen, die einen Namen enthält, die Adresse derselben im Speicher zu ermitteln.
-
Klar, die DS und deren Definitionen sind kein Problem, das XML bekomme ich ohne weitere in die DS.
Nun sollen aber nur bestimmte Felder in "meiner DB" upgedatet werden. Allerdings muss ich in der XML-DS alle Felder der Datei angegeben, da theoretisch ja auch alle Felder zum updaten ausgewählt werden sein können.
Das XML kommt aus einer DB, die grundsätzliche alle Werte überträgt, daher muss die XML-DS alle Felder beinhalten, da ansonsten dauerndes neu kompilieren bei Änderungen der zu aktualisierenden Felder.
Die Felder die aktualisiert werden sollen, kommen aus "meiner" DB und werden in einer DS gelesen, deren Elemente dann die Namen der zu aktualisierende Felder beinhalten. Können 10 oder 50 Felder sein.
Nun will ich mir nur die Felder aus der XML-DS holen, die auch aktualisiert werden sollen.
-
Da hilft nur die klassische Variante:
select;
when Feld1 = "ABC";
when Feld1 = "XYZ";
:
:
when ...
endsl;
Tut mir leid, aber RPGLE ist keine dynamische Sprache wie Java/C++/.NET o.ä., in der ich mit variablen Feldlisten umgehen könnte. Zumal du ja auch beim Ansprechen der Zieltabelle mit konstanten Variablennamen umgehen musst.
Dann musst du leider eine andere Sprache wählen.
-
Sehr schade.
Dann noch eine "persönliche" Frage.
Ich habe eigentlich das Profil Devjo hier gehabt, mit dem kann ich allerdings keine Beiträge mehr schreiben, sprich Fragen stellen, antworten geht auch nicht mehr.
Könnte man das event. wieder frei schalten?
Dies hier ist der Account eines Freundes und den möchte ich eigentlich eiter nutzen.
Gruß
-
Vielleicht wärst Du auch besser dran, wenn Du den SAX-Parser nimmst und Dir das Mapping auf DB-Felder selber strickst (mit einer Definitionstabelle) und daraus wiederum ein dynamisches SQL-Statement bastelst, das Dir das in eine Datei einfügt.
Dann brauchst Du das Programm nie mehr umwandeln, weil Du nur die Mapping-Datei ändern musst.
Similar Threads
-
By LordCinimod in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-08-16, 09:34
-
By mahones in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 06-08-15, 17:35
-
By MGJ79 in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 24-04-14, 10:00
-
By scheipl in forum Archiv NEWSblibs
Antworten: 13
Letzter Beitrag: 16-10-12, 16:31
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 12-03-02, 08:00
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