[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

1231.0. "ALL-IN-1 and Fortran app integration??" by ANGLIN::LUNDIN () Wed Aug 12 1992 23:18

    I need some pointers on integrating applications into the ALL-IN-1 
    menuing interface.  
    
    I am working with a customer who wants to access a Fortran application
    through the BA menu in their ALL-IN-1 system.
    
    The problem they have is that when they try to do character searches of
    a database, it will return the user to the BA menu, instead of doing
    the search.
    
    I spoke with the application programmer today and he indicated to me
    that in the character searches he is doing a lib$spawn in his
    application to produce the search, and is pretty sure that sys$input 
    is getting lost in the subprocess that is created with the spawn. 
    
    His theory is that; because the search no longer has sys$input defined
    that is why we are returned to the BA menu.
    
    Is this theory credible?  If so would there be any way to fix this
    through ALL-IN-1 programming changes.
    
    Any help or ideas would be most appreciated.
    
    Sandy
T.RTitleUserPersonal
Name
DateLines
1231.1You may well be on the right trackGIDDAY::SETHIMan from DownunderThu Aug 13 1992 01:0710
    G'day Sandy,
    
    The theory may well be right I came across a problem of a similar
    nature sometime back.  I can't remember (sorry for the Ronnie Ragan :-),
    what we did to solve the problem.  All I can say is that you are
    looking in the right direction.
    
    Sorry I can't be of much help please post your findings here.
                                                                    
    Sunil
1231.2Random thoughtsSHALOT::NICODEMAvoid traffic; leave work at noonThu Aug 13 1992 14:3124
	Sandy,

	I'm not sure that there's quite enough information here to go on, but
I'll give it a shot.  First, I assume that the FORTRAN application is being
invoked via a COMMAND function, therefore running (initially) in the ALL-IN-1
subprocess.  If this is the case, the user must remember that the ALL-IN-1
subprocess does *not* have TT: as the default SYS$INPUT device.  Any application
that is called in the subprocess that requires keyboard input should preface the
call to the application by defining a job logical for SYS$INPUT, pointing to the
terminal.

	Second, you're unclear as to exactly what *does* happen in the applica-
tion.  For example, I couldn't tell if *any* of the application ran, or if it
immediately returned to BA with no user I/O at all, or what.  If the problem is
*outside* the application, you may be able to gather some more information either
by turning on ALL-IN-1 tracing, or doing a SET VERIFY in the subprocess.

	If the problem is *within* the application, you may have to link it with
the Debugger and go from there.

	F

	P.S.  Is this an application that could benefit by them re-writing it
as an INSTALL/EXECUTE routine?  It would be faster, easier to integrate, etc.
1231.3The live COM proc being called from Named DataANGLIN::LUNDINThu Aug 13 1992 17:0848
I have included the COM procedure that is called from the BA menu to access
    the FORTRAN application.  
    
    I hope this offers a little more insight into what we are dealing with.
    
    Thanks,
    
    Sandy
    
$!procedure to run AQUIRE application from within ALL-IN-1
$SET MESSAGE /NOTEXT/NOSEVERITY/NOIDENTIFICATION/NOFACILITY
$!get the current equivalence value for logical TT:
$ OLD_TT = F$LOGICAL("TT")
$!
$! ask ALL-IN-1 parent process to tell subprocess the value of
$! symbol OS$TERM_DEVICE:
$!
$ WRITE OAMAILBOX "OA GET OA$TERM_DEVICE"
$@DCLMAILBOX:
$ING_TT = RESULT
$!
$!assign new value to logical TT based on results of preceding step:
$! preceding step
$!
$DEFINE/NOLOG/PROC TT 'ING_TT'
$!
$! set up app symbols
$ DEFINE/NOLOG      LOC$SCRATCH  EU02:[USMODELS.AQUIREDB.SCRATCH]
$ DEFINE/NOLOG  AQDATA       EU02:[USMODELS.AQUIREDB.DATA]
$ DEFINE/NOLOG  AQSUPP       EU02:[USMODELS.AQUIREDB.DATA]
$SET NOCONTROL =(Y)
$ DEFINE /USER_MODE SYS$INPUT SYS$OUTPUT
$ RUN EU02:[USMODELS.AQUIREDB]AQUIRE
$SET CONTROL =(Y)
$!
$! Re-define TT to its previous value:
$ DEFINE/NOLOG/PROC TT 'OLD_TT'
$ GOTO END
$NEXT:
$write sys$output "<ESC>[1m<ESC>[5m"
$write sys$output "<ESC>#6 AQUIRE SYSTEM UNAVAILABLEu 
$write sys$output "<ESC>#6 CALL         FOR UPTIME"
$write sys$output "<ESC>[0m"
$wait 00:00:06
$!
$END:
$SET MESSAGE /TEXT/SEVERITY/IDENTIFICATION/FACILITY
$EXIT