[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

4289.0. "Symbols from DCL to ALL-IN-1" by ANGLIN::HARRISA (Non practising good person) Thu Jun 23 1994 23:21

    ALl-IN-1 v3.0A VMS 5.5-2
    
    my customer has a .COM file (move_user.com) that moves the user to a
    different disk. if the user has an ALL-IN-1 account, it does the .SCP
    (mu_change_profile.scp).
    
    we're having trouble passing the symbols set in .COM to the .SCP.
    
    the symbols are bieing set (i can show them in the .COM file).
    
    this is th .SCP file:
    _____________________________________________________________________
            GET OA$DCL="UNAME :== " #USER
            GET OA$DCL="NEW_DIR :== " #new_dir
            GET OA$DCL="DELETE_FROM :== " #DELETE_FROM
    
    .TEXT "Put the new directory spec in the profile"
    !
            WRITE CHANGE PROFIL VMSUSR = #user, DIRECT = #new_dir
    
            WRITE CHANGE PROFIL VMSUSR = #user, DELETE_FROM = #DELETE_FROM
    
    ____________________________________________________________________________
    
    UNAME is the VMSaccount
    NEW_DIR si the new directory spec for the ALL-IN-1 files.
    DELETE_FROM is the top-level directory
    
    in the .COM file the symbols display as:
    
    NEW_DIR = "EIS$D5:[VEND.USTEST30.OA]"
    DELETE_FROM = "EIS$D5:[VEND.USTEST30]"
    UNAME = "USTEST30"
    these are the proper values.
    
    this is what shows up in the trace:
    
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 6: GET OA$DCL="UNAME :== "
    #USER
    ![FUNC]   Function: GET, Cmd line: OA$DCL="UNAME :== " #USER
    ![SYMBOL] Symbol: OA$DCL="UNAME :== " #USER, Value: UNAME :==
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 7: GET OA$DCL="NEW_DIR :== "
    #new_dir
    ![FUNC]   Function: GET, Cmd line: OA$DCL="NEW_DIR :== " #new_dir
    ![SYMBOL] Symbol: OA$DCL="NEW_DIR :== " #new_dir, Value: NEW_DIR :==
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 8: GET OA$DCL="DELETE_FROM :==
    " #DELETE _FROM
    ![FUNC]   Function: GET, Cmd line: OA$DCL="DELETE_FROM :== "
    #DELETE_FROM
    ![SYMBOL] Symbol: OA$DCL="DELETE_FROM :== " #DELETE_FROM, Value:
    DELETE_FROM :==
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 12: WRITE CHANGE PROFIL USER =
    #user, DIRECT = #new_dir
    ![FUNC]   Function: WRITE, Cmd line: CHANGE PROFIL USER = #user, DIRECT
    = #new_dir
    ![SYMBOL] Symbol: #user, Value:
    ![SYMBOL] Symbol: #new_dir, Value:
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 13:
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 14: WRITE CHANGE PROFIL USER =
    #user, DELETE_FROM = #DELETE_FROM
    ![FUNC]   Function: WRITE, Cmd line: CHANGE PROFIL USER = #user,
    DELETE_FROM = #DELETE_FROM
    ![SYMBOL] Symbol: #user, Value:
    ![SYMBOL] Symbol: #DELETE_FROM, Value:
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 15:
    ![SCRIPT] OA$EIS:MU_CHANGE_PROFILE Line 16: .EXIT
    !
    ![SCRIPT] Closing Script OA$EIS:MU_CHANGE_PROFILE
    
    
    Thanks - ann
T.RTitleUserPersonal
Name
DateLines
4289.4Going in the wrong directionSHRMSG::HOWARDYes it isFri Jun 24 1994 18:5918
    I guess it would be a good idea to check the existing stuff and perhaps
    borrow from that.  There have been some deficiencies in some of these
    procedures, but they do work.   BTW, I believe that DCL commands are
    supposed to start with a dollar sign with GET OA$DCL.  The old
    explanation was that ALL-IN-1 does its best if there isn't one, but
    there are examples where it works with the "$" and not without.  
    
    However, which way are you trying to go?  These GET OA$DCL commands
    would move the symbols to the ALL-IN-1 sub-process, not back to DCL of
    the main process.  The CLI$ symbols are for the main process; the GET
    OA$DCL is for the sub-process.  IF you need something everywhere, use
    GET OA$DCL ="$DEFINE/JOB logical_name " #symbol.  Then you can
    reference from ALL-IN-1 via LOG$logical_name, and as a logical name
    from both the main and sub-process in DCL.  You can also do this from
    the main process before running ALL-IN-1.  I think that the CLI$ syntax
    may be a little more efficient, but I'm not sure.
    
    Ben
4289.5howz about this...ANGLIN::HARRISANon practising good personTue Jun 28 1994 17:2910
    ok, how about this...
    
    the symbol UNAME is passing properly from DCL to ALL-IN-1. UNAME is the
    VMSUSR value in teh ALl-IN-1 profil. the other 2 symbols do not appear
    to be passing from DCL to ALL-IN-1. 
    
    since i only have the VMSUSR symbol, how can i get the USER valufrom
    the ALL-IN-1 profil?  i'm probably just missing something simple (like
    a brain).
    		thanks - ann
4289.6This should workSHRMSG::HOWARDYes it isTue Jun 28 1994 19:5329
    Let me see if I have this straight.  You have a .COM file that does
    something like this:
    
    $ UNAME = P1 !which is the VMS Username
    $ NEW_DIR = P2 ! whic is the new directory name
    $ DELETE_FROM = P3 ! Which is the field of similar name in the PROFIL
    $!
    $! Now you want to use these values in ALL-IN-1:
    $ ALLIN1/NOINIT/USER=MANAGER/REENTER
    OA$INI_INIT
    GET #A1USERNAME=PROFIL:VMSUSR.USER[CLI$UNAME]
    WRITE CHANGE PROFIL USER=#A1USERNAME,VMSUSR = CLI$UNAME, DIRECT = CLI$NEW_DIR,-
      DELETE_FROM = CLI$DELETE_FROM
    EXIT
    $ 
    
    Is this what you want?  I haven't tested this, but it appears to be ok.
    The GET in ALL-IN-1 is probably unnecessary given another syntax, but I
    don't have my book handy.  VMSUSR is a secondary key to the PROFIL, so
    you have to specify it as a secondary key after the form name, which
    should answer your question in .5.  
    
    Note that you simply add CLI$ to the front of the symbol name. ALL-IN-1
    pulls the symbol value from the tables in the same order as DCL (Local
    then Global), so if you defined Global symbols (== or :==) but already
    had local ones (= or :=), ALL-IN-1 will have no way to see the Global
    symbols of the same name.  
    
    Ben