-
Variable Feldname
Hallo *all ,
Problem:
ich habe eine Datei (PF) mit 40 Feldern.
in einer anderen Datei habe ich die Reihenfolge der Felder der ersten Datei festgelegt.
Beispiel:
Datei 1
Feld1|Feld2|Feld3|Feld4|
abc | 123 | efgd |9876|
Datei2
1|Feld4
2|Feld2
3|Feld1
4|Feld3
Jetzt müssen die Felder der Datei 1 als ein String in der hinterlegten Reihenfolge ausgegeben werden.
Wie kann ich das ohne 40 WHEN oder ELSIF Anweisungen lösen
Ev. mit mehrdimensionalen Array? Aber der muss auch erst gefüllt werden.
Gibt es ev. eval String =%Feldname('Feld4')
Fehlt euch AllOBJ-USER'n andere Möglichkeit?
-
Guten Morgen *all
Erste Lösung:
1) mittels DSPFFD die Beschreibung der DATEI1 in eine Qtemp-Datei erstellen.
2) Über das Feldname kann Startposition und die Lenge ermittelt werden (über die Qtemp-Datei)
3) DATEI1 als ein String betrachten.
Ist das zu Kompliziert? kann das noch einfacher und weniger Quell-Code gelöst werden ?
-
 Zitat von svit
Guten Morgen *all
Erste Lösung:
1) mittels DSPFFD die Beschreibung der DATEI1 in eine Qtemp-Datei erstellen.
2) Über das Feldname kann Startposition und die Lenge ermittelt werden (über die Qtemp-Datei)
3) DATEI1 als ein String betrachten.
Ist das zu Kompliziert? kann das noch einfacher und weniger Quell-Code gelöst werden ?
Anstatt eine temporäre Datei zu erstellen solltest Du die benötigten Informationen (mit SQL) direkt aus der Catalog View SYSCOLUMNS in der Bibliothek QSYS2 auslesen.
Basierend auf den ausgelesenen Informationen könntest Du ein Dynamisches SQL SELECT Statement aufbereiten, das die Feld-Inhalte konvertiert und als String aufbereitet. Über einen Cursor kann dann dieses SELECT-Statement verarbeitet werden.
Birgitta
-
SQL ist hier wirklich die einzige Lösung für dieses Variabilität.
Woher kommt denn so eine blöde Aufgabenstellung?
-
 Zitat von Fuerchau
SQL ist hier wirklich die einzige Lösung für dieses Variabilität.
Woher kommt denn so eine blöde Aufgabenstellung?
... lass mich raten: vom Ausbilder!!!
-
ne,
ich muss eine PF in XML mappen.
Die PF hat 120 Felder.
Über die PF müssen 5 verschiedene XML Dateien erstellt werden.
Das ganze soll in der Nacht laufen.
na, was sagt ihr jetzt zu dem bösen Ausbilder.
-
Nur so nebenbei:
Ab 7.1 kann man das Ergebnis eines ganzes Selects mit allen Joins usw. als XML ausgeben lassen.
lg Andreas
-
Kleine simple Frage:
Wieso erstellst Du dir nicht die gewünschte Datei als physische Datei mit der gewünschten Feldreihenfolge und kopierst die erste Datei mittels CPYF und *map/*drop rüber?
Manchmal kann die Lösung so einfach sein.
kf
-
@Andreas
Diese Standards passen dann selten zu den gewünschten Schnittstellen.
@SVIT
Dann denkst du viel zu kompliziert!
Die Reihenfolge der Datenfelder spielt bei XML nur eine untergeordnete Rolle, darum brauchst du dich eigentlich nicht zu kümmern.
Felder in XML werden nämlich über ihre
a) Attributbnamen
oder
b) Knotennamen
referiert.
Sollt du die Inhalte z.B. als Attribut übergeben so ist es Egal ob du
Code:
< Satz Att1="A" Att2="B" >
oder
Code:
< Satz Att2="B" Att1="A" >
ausgibts.
Das Selbe gilt auch für Strukturen:
Code:
< Satz >
< F1 > Wert1 < /F1 >
< F2 > Wert2 < /F2 >
oder
Code:
< Satz >
< F2 > Wert2 < /F2 >
< F1 > Wert1 < /F1 >
ausgibst.
Kümmere dich also gar nicht um die Reihenfolge sondern nur um das korrekte XML-Format.
-
Wer sagt denn, dass man mit SQL kein XML ausgeben kann bzw. erst V7R1 benötigt?
Code:
select
'< satz > att1="' concat char(F1)
concat '" att2="' concat char(F2)
concat '" < /satz >'
from
....
Dabei ist es nun unerheblich ob per Knoten oder Attribute ausgegeben werden soll.
Das Ganze in einen QM-Query stellen.
Mit STRQMQRY in eine Ausgabedatei und per CPYTOSTMF ins IFS und fertig ist die XML.
Benötigt man nochden XML-Header so lässt sich dieser
a) in einer Datei konstant ablegen und ebenso per CPYTOSTMF ausgeben
b) per "Select ... union all ..." auch hier einbinden.
-
Klar, selbst gebastelt gehts fast immer. Ab 7.1 gibt es jedoch viele neue Funktionen mit denen man mit wenigen Handgriffen ein vollständiges XML mit allem drum und dran ausgeben lassen kann.
Habe darüber in Wien schon mal einen Vortrag bei der Common gehalten.
Die meisten wissen gar nicht, was damit alles möglich ist.
Infocenter DB2 & XML
-
Vielen Dank,
die Sache ist die, der Kunde gibt volgendes vor:
blabla
infotext
90.00
Also der kunde hat 6 Schablonen vorgegeben
Ich habe die Schablonen + Variablennamen in eine PF Datei abgelegt.
Jetzt muss ich die Schablonendatei lesen und statt Variablen (Feldnamen aus anderen Datei) die Werte reinsetzen.
Hier geht es nicht um ein einfache XML-Datei über eine PF Datei zu erstellen.
Similar Threads
-
By stoerfang in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 28-11-06, 14:32
-
By Xanas in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 28-08-06, 12:21
-
By TARASIK in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 24-08-06, 10:09
-
By cheffe1008 in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 16-05-06, 07:45
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-05-06, 11:01
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