Du musst das API schon mit ALLEN REQUIRED! Parametern aufrufen und kannst nicht einfach irgendwo was weglassen!
Das war/ist meine Prozedur, die bereits seit ein paar Jahrhunderten problemlos läuft:
1. Parameter und Referenz-Datenstrukturen:
Code:
D DspWdwTxt PR ExtPgm('QUILNGTX')
D ParmText 65535 const options(*VarSize)
D ParmLenText 10I 0 const
D ParmMsgId 7A const
D ParmQualMsgFile...
D 20A const
D ParmError1 likeDS(DS_Error1)
* Error Datenstruktur
D DS_Error1 DS Qualified
D ByteProv 10I 0 inz(%Size(DS_Error1))
D ByteAvail 10I 0 inz(*Zeros)
D MsgId 7 inz(*Blanks)
D Reserved 1 inz(x'00')
D ExceptData 256 inz(*Blanks)
2. Aufruf aus RPG
Code:
H DEBUG
*-----------------------------------------------------------------*
D/COPY QPROLESRC,DSPWDWTXT
D BspText S 65535 varying
*-----------------------------------------------------------------*
/Free
BspText = 'Dies soll nur ein kurzer Text sein, um das +
API QUILNGTX auszuprobieren! +
Das UIM API QUILNGTX (Display Long Text) stellt eine +
einfache Möglichkeit dar, einen beliebigen Text +
in einem Fenster anzuzeigen. +
Das Erstellen einer Display-File +
ist dazu nicht erforderlich.';
DspWdwTxt(BspText: %Len(BspText): *Blanks: *Blanks: DS_Error1);
*InLR = *On;
/End-Free
3. Wrapper Procedure:
3.1. Prototyp
Code:
D DspWDW PR ExtProc('DSPWDW')
D ParmText 65535 const varying
3.2. Wrapper Prozedur
Code:
H DEBUG NoMain
*-----------------------------------------------------------------*
D/COPY QPROLESRC,DSPWDWTXT
*------------------------------------------------------------------*
P DspWDW B Export
D DspWdW PI
D ParmText 65535 const varying
/Free
DspWdWTxt(ParmText: %Len(ParmText): *Blanks: *Blanks: DS_Error1);
Return;
/End-Free
3.3. Aufruf Wrapper Prozedur
Code:
H DEBUG
*------------------------------------------------------------------*
D/COPY QPROLESRC,DSPWDWTXT
D BspText S 65535 const varying
*-------------------------------------------------------------------*
/Free
BspText = 'Dies soll nur ein kurzer Text sein, um das +
API QUILNGTX auszuprobieren!';
DspWDW(BspText);
DspWDW('Der Text kann auch direkt übergeben werden.');
*INLR = *ON;
/End-Free
Birgitta
Bookmarks