-
wo hast du das mit den %parms her??? ohne das je ausprobiert zu haben (RPG unterstützt kein Overloading und wer das dann machen will, ist selbst dran schuld) vermute ich mal, dass %parms den Husten kriegt mit Parametern nach dem ersten fehlenden.
Die Null Byte Array Lösung ist da defensiver, aber deine Abfrage ist Unfug statt %addr(feld) <> *null (denn übergeben wird hier ja ein Pointer, damit RPG das ab kann) musst du den Inhalt des entsrpechenden Null Indicators abfragen (und dann passt das Datum natürlich immer noch nur dann, wenn da kein Senf drinsteht).
D*B
 Zitat von Peder
Hallo Leute,
danke für die schnellen Antworten. Leider bin ich mit meinem Problem immer noch nicht weiter.
%parms ist ein Element der ILE-Umgebung und gibt die Anzahl der übergebenen Parameter nur zurück, wenn der Caller diesen Wert zur Verfügung stellt. Das macht aber die UDF nicht. %parms ist immer -1, egal mit welchen Parametern ich die UDF auslöse.
Nur die Anzahl der Parameter ist variabel. Die UDF soll den VK-Preis eines Artikels zu einem Termin liefern. Wird das Datum mitgegeben, soll es verwendet werden, ansonsten mit dem Tagesdatum gefüllt werden. Ich weiss, dass ich den Parameter immer mit 'current date' ersetzen kann, aber es geht mir eigentlich um das Wissen an sich, da ich zukünftig noch viele UDF's generieren möchte, und da habe ich dann andere Konstellationen. Ich hatte auch schon überlegt, mehrere Funktionen zu machen, aber das ist natürlich nur die zweitbeste Lösung ;-)
Birgitta, ich habe die Paramter so umgestellt, auch mit dem Array für den Null-Indikator. Die 2B o-Felder aus den Parametern waren meine Null-Indikatoren (aus der SQL-Style Definition).
Habe folgende Änderung gemacht:
d get_vk pi 9s 4
d p$firma 3
d p$artn 8 0
d p$filial 3
d p$grop 2 0
d p$datum d datfmt(*iso)
d p$brunet 1 varying
d p$ni 5i 0 dim(7)
p$ni ist das Null-Indikator-Array.
habe auch das ganze mit OPTION(*nopass: *omit) probiert. Fakt ist, im Debug kann ich das Array p$ni nicht ansprechen, und auch die Abfrage %addr(p$datum) = *null läuft verkehrt, denn bei der Abfrage
if %addr(p$datum) <> *null;
§a4datv = %char(p$datum : *eur);
wird der folgende eval versucht auszuführen, aber das geht dann schief, da der Wert kein gültiges Datum enthält.
Evtl. habt ihr noch eine Idee.
Thx
Similar Threads
-
By Nils_V in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 18-07-16, 10:49
-
By Peder in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 06-12-06, 09:15
-
By Jump4738 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 06-10-06, 16:08
-
By GraueEminenz in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 18-07-06, 10:05
-
By HACHIMAN in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-05-06, 10:48
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