[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference iosg::all-in-1_v30

Title:*OLD* ALL-IN-1 (tm) Support Conference
Notice:Closed - See Note 4331.l to move to IOSG::ALL-IN-1
Moderator:IOSG::PYE
Created:Thu Jan 30 1992
Last Modified:Tue Jan 23 1996
Last Successful Update:Fri Jun 06 1997
Number of topics:4343
Total number of notes:18308

3273.0. "calls to WPPSYSTEM cause access violation" by TOPPER::BARHAM (Norbert:) Tue Sep 14 1993 22:08

    ALL-IN-1 3.0
    
    My customer has written an application that used to happily print files
    in batch in v2.4 by calling WPPSYSTEM.SCP but which now access violates 
    with the same code. He has written an example script to demonstrate the 
    problem which follows below :-
    
    $!replace UVOF$LN03 below with a real print queue name
    $!remove the comments on the line !!!form auto... to stop the accvio
    $!(usually)
    $create sys$login:d1.tmp
    This is a test #1

    Please ignore this print 
    $!
    $create sys$login:d2.tmp 
    This is a test -#1

    Please ignore this print 
    $! 
    $allin /noinit/nocustom oa$ini_init
    oa$tra_set log,script,symbol,mess

    !!!form auto select for smprintdesttype do     sel_style 
    .%key/style=file/list="d1.tmp"

    get #PRINT_FMTCTL = #PRINT_FEEDCTL = #PRINT_PASSALLCTL = #PRINT_NOEJECT_FF = "" 
    get #copies = 1 
    get#print_outfile_1="sys$login:d1.tmp" 
    get #print_outfile_2="sys$login:d2.tmp" 
    get #print_out_count = 2 
    get #print_queue="UVOF4LN03" 
    do wppsystem 
    $exit
    
    
    
    The command procedure as is access violates but removing the comments
    on the line !!!form auto... prevents the access violation. However this
    fix does not work in their application !!
    Apparently (the customer says) there is a problem with
    oa$scroll_selected not being defined (or something like that -
    a1trace.log shows this is the case). They can therefore work around the
    issue by commenting out the lines in WPPSYSTEM.SCP that read
    
        .if OA$SCROLL_SELECTED eqs "" -
            then get #PRINT_TEMP = #PRINT_SELECTED -
            else get #PRINT_TEMP = OA$SCROLL_SELECTED
    
        .if #PRINT_MULTIPLE lt #PRINT_TEMP and -
            #PRINT_COMBINE_MULTIPLE_JOBS eqs OA$Y then .exit
    
    However this is not satisfactory for them. Does anyone know why the
    script changed and what if anything can be done to stop the access
    violation ?             
    
    Thanks,
    
    Clive
T.RTitleUserPersonal
Name
DateLines
3273.1WPPSYSTEM changesIOSG::NEWLANDRichard Newland, IOSG, REO2-G/L2Tue Sep 14 1993 22:5933
WPPSYSTEM.SCP was changed in V3.0 to support many more print options (e.g. 
Number_up, Sides) and to support the multiple print to a single print job 
option.  The OA$SCROLL_SELECTED symbol is examined during the processing
for multiple print to a single job print operations. 

Print Completion scripts, such as WPPSYSTEM, WPPBGFORMAT and WPPPORT, are 
designed only to be called from WPPPRINT.  The customer has called WPPSYSTEM 
directly.  We do not and cannot guarantee that scripts called in a 
non-standard way will work from one version to another.  WPPSYSTEM now has 
many more input symbols (which WPPRINT will set-up) so other problems may 
occur if it is called without these symbols set.

Do you know why the customer is calling WPPSYSTEM?

An alternative method for creating a print job with two files without
calling WPPSYSTEM is to use the SEND_JBC function directly, e.g. 

    SEND_JBC CREATE_JOB/QUEUE="UVOF4LN03"/PAGINATE/NO_PASSALL
    SEND_JBC ADD_FILE/FILE_SPECIFICATION="sys$login:d1.tmp"
    SEND_JBC ADD_FILE/FILE_SPECIFICATION="sys$login:d2.tmp"
    SEND_JBC CLOSE_JOB

This will be much faster than calling WPPSYSTEM, and will not be affected 
by any future changes we make to print completion scripts.


The problem with getting the value of OA$SCROLL_SELECTED before it has been 
initialized by performing index form operations is known and will be fixed 
in a PFR.


Richard