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

Reply via email to