joblog( string [: s1 : s2 : ... ] );
The joblog procedure writes the string to the joblog after inserting the optional substitution values (S1, S2, etc.) into string. Here's how it's used in its basic form:
/free joblog('Starting Monthly Processing'); /end-free
The text 'Starting Monthy Processing' will be written tot he joblog. To include substitution values, you may either do it the traditional way, concatenating the values into one larger string and passing that string to the joblog() subprocedure, or include substitution values and specify those values as subsequent parameters.
D custno S 7P 0 /free joblog('Custom %s not found.': %char(custno)); /end-free
The special symbol %s (lowercase 's') is used to identify where in the text string you want to insert the substitution values. Each substitution value is inserted into its corresponding %s location. This implies, and rightly so, that multiple substitution values may be specified.
D Country S 20A Varying D custno S 7P 0 /free joblog('Custom %s is located in %s'': %char(custno) : country); /end-free
Note that only text (character) values may be specified, so if numeric values are required, then use %CHAR (or %EDITC or %EDITW) to convert them to character.
The joblog subprocedures uses what's known as a Unix-style API and writes directly to the joblog itself. This API, however, requires that a linefeed is sent to the joblog before it actually writes out the message. This is due to the nature of how the POSIX/Unix APIs work. The RPG OPEN joblog subprocedure automatically inserts this linefeed character for your. (FYI, the linefeed character is X'25').
Return to RPGOpen.com