HI Andreas,

also erstens muss ich klären wie man eine Konstante
über die UDF an das Serviceprogramm übergeben kann.

Wenn ich statt der Konstante eine Variable übergebe
wird zwar die Prozedur im Serviceprogramm aufgerufen
aber mit Fehler beendet:
PHP-Code:
Nachrichten-ID . . . . :   MCH3601       Bewertung  . . . . . . :   40      
Nachrichtenart 
. . . . :   Abbruch                                          
Sendedatum 
. . . . . . :   16.06.10      Sendezeit  . . . . . . :   16:34:36
                                                                            
Nachricht 
. . . :   Zeiger für angegebene Position nicht gesetzt.           
Ursache  . . . . :  Es wurde ein Zeigerentweder direkt oder als ein       
  Basiszeiger verwendet
für den keine Adresse festgelegt worden war
PHP-Code:
Nachrichten-ID . . . . :   CPF503E       Bewertung  . . . . . . :   30       
Nachrichtenart 
. . . . :   Hinweis                                           
Sendedatum 
. . . . . . :   16.06.10      Sendezeit  . . . . . . :   16:34:36 
                                                                             
Nachricht 
. . . :   Fehler bei benutzerdefinierter Funktion in Teildatei     
  STMASTP
.                                                                   
Ursache  . . . . :  Beim Aufrufen der benutzerdefinierten Funktion HTCOST in 
  Bibliothek MK ist ein Fehler aufgetreten
Der Fehler trat beim Aufrufen des
  zugeordneten externen Programms oder Serviceprogramms BY100SR in Bibliothek
  TSTLIBEDC
Programmeingangspunkt bzwexternem Namen Get_HangTag_Cst,      
  
spezieller Name HTCOSTaufDer Fehler trat bei Teildatei STMASTP Datei   
  STMASTP in Bibliothek TSTDTAEDC auf
Der Fehlercode ist 2. Fehlercodes und 
  ihre Bedeutung
:                                                            
    
-- Das externe Programm oder Serviceprogramm hat SQLSTATE 00000        
  zurückgegeben
. Die vom Programm zurückgegebene Textnachricht ist:  .       
   
-- Das externe Programm ist vor seiner Beendigung fehlgeschlagen.      
   
-- Bei der Datenbank trat ein Zeitüberschreitungsfehler beim Warten auf
 
die Rückkehr zum Hauptprogramm aufDer von der Datenbank verwendete       
 Zeitüberschreitungswert betrug 0 Minuten und 30 Sekunden
.                  
   
-- Das externe Programm ist nicht mehr vorhanden oder wurde nicht      
 gefunden
.                                                                  
   
-- Bei einem der Eingabeparameter der Funktion ist ein                 
 Datenabgleichungsfehler aufgetreten
.                                       
   
6 bis 20 -- Die vorangegangenen Nachrichten im Jobprotokoll beachten.    
   
Für ein externes Programm ist der angezeigte Programmeingangspunkt *N.   
ehlerbeseitigung:  Bei Fehlercodes 1 und 2 die Fehlerursache anhand von     
 SQLSTATE oder einer zuvor aufgelisteten Nachricht feststellen
.             
   
Bei Fehlercode 3 entweder den Zeitüberschreitungswert mit Hilfe der       
 QAQQINI
-Dateieinstellung erhöhen oder feststellenweshalb das externe      
 Programm oder das Serviceprogramm nicht innerhalb  der zugeordneten Zeit    
 zurückgekehrt ist
.                                                          
   
Bei Fehlercode 4 sicherstellendass das Programm oder Serviceprogramm für
 
die Dauer der Abfrage vorhanden ist.                                        
   
Bei Fehlercode 5 die Ursache für den Datenabgleichungsfehler bestimmen.   
   
Bei Fehlercode 6 bis 22 die vorangegangenen Nachrichten im Jobprotokoll   
 beachten
.                                                                   
   
Weitere Informationen über benutzerdefinierte Funktionen enthält das Thema
 
"DB2 UDB for iSeries SQL Programming" im Information Center unter           
 http
://www.ibm.com/eserver/iseries/infocenter. 
Also stimmt etwas mit der Übergabe der Parameter noch nicht.

Im Debugger kommen bis auf die Currency alle Werte an.

Gruß
Michael