-
XML in PF übertragen (Variablenproblem)
Guten Tag zusammen,
ich habe beim Import von XML in eine Physische Datei das Problem,
dass eine der Variablen (evtl negativ mit Nachkommastelle) dafür sorgt,
dass mein Fetch nicht mehr funktioniert.
Meine Felder in der phyischen Datei sind:
Code:
RIONID 20 0 S
RIANZA 5 0 S
RIAUFO 11 2 S
Mein XML (Beispielblock):
Code:
Customer>
CustomerNo>1000000315
NoOfSuccessfullOrders>2
Currency>EUR
Balance>-10.85
Collection>0
ReturnQuote>33
ReturnQuoteAmount>10
/Customer
Meine Prozedur:
Code:
//-----------------------------------------------------------------------
// Prozedur XML speichern
//-----------------------------------------------------------------------
P xmltosql B
D PI
D file_name S 900A
/free
exec sql set option commit=*CHG;
exec sql declare c2 cursor for
select info_req.*
from xmltable('/ExCustomerDataList/Customer'
passing xmlparse(document get_xml_file('/home/codaho/test.xml'))
columns
RIONID varchar(20) path 'CustomerNo',
RIANZA varchar(5) path 'NoOfSuccessfullOrders',
RIAUFO varchar(13) path 'Balance'
) info_req;
exec sql open C2;
dou (sqlcode <> *zeros) and sqlcode <> 326;
exec sql fetch c2 into :rionid, :rianza, :riaufo;
write risk00r;
enddo;
/end-free
P E
Das Problem ergibt sich erst wenn ich die Zeile:
Code:
RIAUFO varchar(13) path 'Balance'
hinzufüge.
Haben Sie vllt eine Lösung parat?
Vielen Dank schon einmal!
-
Da wäre dann schon der Fehlercode und -text relevant.
Noch weiß XML ja nicht, dass der Inhalt numerisch sein soll.
Der Fehler hat da eine andere Ursache.
-
PS:
Du kannst Zeichenvariable nicht so einfach einer Dezimalvariablen zuweisen.
Entweder du definierst für XML auch dec(11, 2) oder gibst ein Alphafeld als Ziel an und wandelst dann selber mit %Dec(Feld:11:2) um.
-
Guten Morgen,
dankeschön für die Antwort!
Ich habe jetzt per SQL Folgendes abgesetzt:
Code:
select info_req.* from xmltable('/ExCustomerDataList/Customer'
passing xmlparse(document get_xml_file('/home/codaho/test.xml'))
columns
RIONID varchar(20) path 'CustomerNo',
RIANZA varchar(5) path 'NoOfSuccessfullOrders',
RIAUFO dec(11, 2) path 'Balance'
) info_req
Als Fehler erhalte ich:
Code:
Fehler bei benutzerdefinierter Funktion in Teildatei QSQPTABL.
Abbruchantwort für Nachricht CPF503E empfangen.
Hilft das weiter? Mir per Google leider nicht
-
ggf offtopic ...
nun bin ich nicht der XML Fachmann ...
aber ist das XML überhaupt so gültig?
müßte das statt
Customer>
CustomerNo>1000000315
NoOfSuccessfullOrders>2
Currency>EUR
Balance>-10.85
Collection>0
ReturnQuote>33
ReturnQuoteAmount>10
/Customer
nicht
HTML-Code:
<Customer>
<CustomerNo>1000000315</CustomerNo>
<NoOfSuccessfullOrders>2</NoOfSuccessfullOrders>
<Currency>EUR</Currency>
<Balance>-10.85</Balance>
<Collection>0</Collection>
<ReturnQuote>33</ReturnQuote>
<ReturnQuoteAmount>10</ReturnQuoteAmount>
</Customer>
oder aber so
HTML-Code:
<Customer>
CustomerNo=1000000315
NoOfSuccessfullOrders=2
Currency=EUR
Balance=-10.85
Collection=0
ReturnQuote=33
ReturnQuoteAmount=10
</Customer>
aussehen?
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
ja, entschuldige die Verwirrung. Es schaut genau so aus wie im ersten Beispiel.
HTML-Code:
<Customer>
<CustomerNo>1000000315</CustomerNo>
<NoOfSuccessfullOrders>2</NoOfSuccessfullOrders>
<Currency>EUR</Currency>
<Balance>-10.85</Balance>
<Collection>0</Collection>
<ReturnQuote>33</ReturnQuote>
<ReturnQuoteAmount>10</ReturnQuoteAmount> </Customer>
Hab es gestern bloß nicht hinbekommen, den Auszug vernünftig zu posten.
Hatte in der Vorschau immer nur die Werte.
-
In der Nachricht CPF503E steht noch mehr Info - im Joblog nachschauen.
-
hab mir den Fehler durchgelesen. Ich tippe mal auf diesen Punkt als Ursache:
Bei einem der Eingabeparameter der Funktion ist ein Datenabgleichungsfehler aufgetreten.
Sowas dachte ich mir zumindest,
leider wüsste ich nicht, wie ich das korrekt übergebe.
-
Da musst du mal in die Doku schauen, was als Feldtypen denn da so unterstützt wird.
Alternativ musst du halt über Zeichenfelder gehen.
-
Wo kann ich die Doku finden?
Habe mir http://publib.boulder.ibm.com/iserie...mstch2data.htm
angeschaut und dementsprechend versucht:
Code:
RIAUFO numeric(11, 2) path 'Balance'
leider funktionierte das auch nicht.
Auch:
Code:
//-----------------------------------------------------------------------
// Prozedur XML speichern
//-----------------------------------------------------------------------
P xmltosql B
D PI
D file_name S 900A
D $$AUFO S 13A
/free
exec sql set option commit=*CHG;
exec sql declare c2 cursor for
select info_req.*
from xmltable('/ExCustomerDataList/Customer'
passing xmlparse(document get_xml_file('/home/codaho/test.xml'))
columns
RIONID varchar(20) path 'CustomerNo',
RIANZA varchar(5) path 'NoOfSuccessfullOrders',
$$AUFO char(13 ) path 'Balance'
) info_req;
exec sql open C2;
dou (sqlcode <> *zeros) and sqlcode <> 326;
exec sql fetch c2 into :rionid, :rianza, :$$aufo;
riaufo = %dec($$aufo:11:2);
write risk00r;
enddo;
/end-free
bzw. :
Code:
$$AUFO varchar(13 ) path 'Balance'
wollen mir keinen erfolgreichen Versuch zurückgeben.
-
Update: musste im SQL noch auf *CHG umstellen.
Jetzt führt er da alles korrekt aus (auch mit decimal.
Bloß mein Programm liefert immer noch bloß eine leere Zeile, sobald ich
Balance mit rein nehme.
-
Und was sagt das berühmte Joblog?
Übrigens %DEC() verträgt nur ungern Leerzeichen. Der Feldtyp VARCHAR oder die Funktion %trim() wäre hier noch angebracht.
Similar Threads
-
By programmer400 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 18-11-14, 15:22
-
By Gimli in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 08-04-03, 08:54
-
By kazamm in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 18-02-03, 08:04
-
By hs in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 18-11-02, 14:44
-
By mott in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 20-06-02, 10:24
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