| 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 | 
    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.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 1231.1 | You may well be on the right track | GIDDAY::SETHI | Man from Downunder | Thu Aug 13 1992 00:07 | 10 | 
|     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.2 | Random thoughts | SHALOT::NICODEM | Avoid traffic; leave work at noon | Thu Aug 13 1992 13:31 | 24 | 
| 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.3 | The live COM proc being called from Named Data | ANGLIN::LUNDIN | Thu Aug 13 1992 16:08 | 48 | |
| 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    
 | |||||