Hallo,
ich habe ein Problem mit dem Aufrufen eines Seviceprogramms aus einer SQL-Funkrion herraus. Es wird zwar aufgerufen, aber es übernimmt die Werte nicht in das Serviceprogramm. Der Returnwert wird zurückgegeben.
Die Funktion schaut so aus:

Create Function arbeiten(Wert Char(7), Richtung Char(1) )
Returns Char(7)
Language RPGLE
Specific arbeiten
Not Deterministic
Returns Null on Null input
No external Action
Not Fenced
External Name 'ARBLIB/ARBSERVICE(ARBEITEN)';

Das Modul Arbeiten im Serviceprogramm ARBSERVICE übernimmt die Werte so:

D Arbeiten....PR.....7
D Wert...............7
D Richtung ..........1

P arbeiten....b......... export
d arbeiten... pi.....7
d wert ..............7
d richtung ..........1

d arbeit_out ........7
//free

exec sql tu irgend was;

arbeit_out = wert;

return arbeit_out;

/end-free
P .........E

Das Serviceprogramm macht was es soll. Die SQL-Funktion ruft auch das Serviceprogramm auf. Aber die Daten werden nicht übernommen. Nur zurückgegeben.

Aufgerufen wird es dann über STRSQL und:

select arbeiten(a.Dateiwert, '1'), a.Dateiwert from Arbeitsdate a

Schon mal danke für die Hilfe.
Loisl