Yes, but passing information in the command line is only useful if you can use that information 'as is'.
The way I would implement it is: 1) Create a new spooler form-type by copying the '%JBCRELEASEDIR%\config\jspform_deflt' file to (say) 'jspform_whoami' 2) Assuming you have a 'WHOAMI' process that returns the required username then add this line to the file: STARTJOB WHOAMI [note: it is probably best to use the full path to the 'WHOAMI' process so that it is not dependent on PATH] 3) Assign the new form-type to the form-queue with the SP-TYPE command, eg: SP-TYPE MYQUEUE whoami 4) In the PRINT.PROG code, you will need to add an INPUT line at the top of the program to capture the output sent by the STARTJOB, eg: INPUT username Dan On Wed, Sep 8, 2010 at 10:02 AM, jlogdup <[email protected]> wrote: > Hi Daniel, System(19) also returns value for the user that creates the > QUEUE. > Hi wonder if I can pass as parameters a command. Something like: > SP-CREATE F1 PROG PRINT.PROG `CMD \C WHOAMI` > > I tried with the command between single quotes , double quotes but it > does not executes the command CMD \C WHOAMI . Do you know any way to > do that? > > Thanks a lot for your help. > > On Aug 30, 8:25 am, Daniel Klein <[email protected]> wrote: > > 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- Hide quoted text - > > > > - Show quoted text - > > -- > 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
