Try changing SYSTEM(1015) to SYSTEM(19). Dan
On Wed, Aug 25, 2010 at 12:09 PM, jlogdup <[email protected]> wrote: > Hello Daniel, As I said in previous posting your explanation helpsme > to configure the queue as I want. But now in Line 17, I want to add a > sentence to email the text file and for that I want to use the UserId, > but I notice that always SYSTEM(1015) returns the userid of the user > that creates the Queue: > > 1. ) WITH USER ADMINISTRATOR: > > SP-CREATE F1 PROG PRINT.PROG > SP-TYPE custom0 > > 2.) With USER USER01 > > SP-ASSIGN =F1 > LIST EMPLOYEES (P > > Always Line 05 (id = > SYSTEM(18):"_":SYSTEM(1015):"_":DATE():"_":TIME():'_':SYSTEM(9)) > returns a name with ADMINISTRATOR as a user. > > I did try creating a Environment Variable USERID for profile's user > USER01, but when the program PRINT.PROG execute > getenv('USERID",l_userid) it return the value of the variable for the > profile's user Administrator when was created the queue. > > Dou you have one method to work around this? > > Thanks in advance for your help. > > On Aug 11, 12:59 pm, Daniel Klein <[email protected]> wrote: > > In that case, don't use it ;-) Instead do something like this: > > > > Start out with the following code (you can embellish it as you see fit) : > > > > 001 PROGRAM jprint > > 002 INCLUDE JBC.h > > 003 EQU underscores TO '__' > > 004 * create a unique item-id by concatenating: > > port_username_date_time_milliseconds > > 005 id = > SYSTEM(18):"_":SYSTEM(1015):"_":DATE():"_":TIME():'_':SYSTEM(9) > > 006 tempdirname = '/tmp' * or any directory with 'write' permissions > > ('c:\temp' on Windows) > > 007 OPEN tempdirname TO tempdir ELSE STOP 201, tempdirname > > 008 OPENSEQ tempdirname:DIR_DELIM_CH:id TO outstream ELSE NULL > > 009 LOOP > > 010 INPUT line > > 011 UNTIL INDEX(line, underscores:"end":underscores, 1) DO > > 012 ****line := CHAR(13) ;* this line is only needed for Windows > > 013 WRITESEQ line ON outstream ELSE NULL > > 014 REPEAT > > 015 WEOFSEQ outstream ELSE NULL > > 016 CLOSESEQ outstream > > 017 * Now do whatever is required with the file; the item-id of this > > file is: > > 018 * tempdirname:DIR_DELIM_CH:id > > 019 DELETE tempdir, id ;* remove the text file > > > > Note that the program is creating a sequential file from the spooler's > > output. At line 017 you have now 'captured' the entire spooler entry as a > > text file in the directory designated on line 006. You can now add > > additional code after line 018 to modify the print job as required. > > Alternatively, you could modify the lines of the print job (just before > the > > WRITESEQ on line 013) as they are being built. Keeping line 019 is up to > > you, but should you decide not to use it then some other part of the > > application will be responsible for clean up. > > > > Compile and catalog the program and take note of the directory where the > > executable lives; let's assume for this example that the directory is > > '/home/bin'. > > > > You will need to define a formqueue (or redefine the 'device' for an > > existing formqueue), something like: > > > > SP-CREATE NEW_QUEUE PROG /home/bin/jprint > > or > > SP-DEVICE EXISTING_QUEUE PROG /home/bin/jprint > > > > Note that it is 'programmatically' executing the 'jprint' program above. > Be > > sure to supply a full path to the 'jprint' program to avoid conflicts > with > > any other program that may be called that now or in the future. > > > > Important: This technique requires that the form-type (see > > $JBCRELEASEDIR/config/jspform_deflt for details) assigned to the queue > > defines : > > > > ENDJOB echo \"\n__end__\n\" > > > > so that the program knows when to stop accepting INPUT. Note that the > > 'echo'd string must exactly match what is expected in the 'jprint' > program, > > otherwise the output will be truncated at the point it encounters this > > string. So change it in both places (the program and the form-type) > > according to your needs. > > > > You will also need 'openseq_creates = true' in Config_EMULATE; otherwise > you > > will need additional logic in the program to create the sequential file. > > > > All that's left to do is to assign the form-type to the required form > > queues, then > > > > SP-ASSIGN =NEW_QUEUE [or whatever the actual queue name is] > > LIST MyFile LPTR > > > > Hope some of this helps, and have a nice day! > > > > Dan > > > > On Wed, Aug 11, 2010 at 9:08 AM, jlogdup <[email protected]> wrote: > > > Good Morning, I am trying to implement a queue to send printing job to > > > a file using a program that I found in this forum: > > > > > PROMPT '' > > > ID = TRIM(UPCASE(SYSTEM(1015))):".TXT" > > > DIRECTORY = 'E:\temp' > > > OPENSEQ DIRECTORY,ID TO S.FILE THEN NULL > > > * > > > LOOP > > > NUMCHARS = SYSTEM(14) > > > WHILE NUMCHARS DO > > > INPUT LINE,NUMCHARS > > > LINE := CHAR(13) > > > WRITESEQ LINE ON S.FILE ELSE NULL > > > REPEAT > > > WEOFSEQ S.FILE ELSE NULL > > > CLOSESEQ S.FILE > > > > > But it is not working because SYSTEM(14) always returns 0. > > > I found, also in this forum, that SYSTEM(14) does not pass the input > > > buffer count when it is run in 3.4.x using the spooler under TELNET. > > > > > How can work around this issue to substitute SYSTEM(14) ? > > > > > THANKS IN ADVANCE FOR YOUR HELP. > > > > > -- > > > Please read the posting guidelines at: > > >http://groups.google.com/group/jBASE/web/Posting%20Guidelines > > > > > IMPORTANT: Type T24: at the start of the subject line for questions > > > specific to Globus/T24 > > > > > To post, send email to [email protected] > > > To unsubscribe, send email to [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/jBASE?hl=en > > -- > Please read the posting guidelines at: > http://groups.google.com/group/jBASE/web/Posting%20Guidelines > > IMPORTANT: Type T24: at the start of the subject line for questions > specific to Globus/T24 > > To post, send email to [email protected] > To unsubscribe, send email to [email protected] > For more options, visit this group at > http://groups.google.com/group/jBASE?hl=en > -- Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24 To post, send email to [email protected] To unsubscribe, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
