• Host concurrent的建立方法


    PURPOSE:
    --------
    To explain how to create a custom concurrent program with Host as the method
    (shell script) and pass a number of user parameters from the concurrent program
    to the shell script.

    This example will implement a concurrent program that receives two parameters
    at the runtime of the concurrent program:  the database username and the user's new
    password to be changed.  The shell script. will connect to the database as system.
    It will verify if the user's password can be changed. 
    (Note:  Allowed users will be stored in a flat file on the CM-node.)


    Assumptions:
    -----------

    1. Oracle Applications Release 11i is used.  We are changing the database user
       password, not Oracle Applications user's password.

    2. We will not define a new application, responsibility, etc. within 11i.  We
       will use the existing Application Object Library application and System
       Administrator responsibility.

    3. At runtime, the concurrent program will need two parameters:  database username
       and the new password.  If the database username is not listed in allowed_list.lst,
       the user's password can not be changed.

    4. The DBA group will be notified by email once there is an attempt to change
       database user's password.

    5. FNDCPASS could be used, but this is not the subject of this note.

    6. If there is any user listed in the allowed_list.lst (one user per line, no
       extra spaces) and that user does not exist in the database, the concurrent
       request will complete ok, but the DBA group will get a notification that
       "database user doesn't exist".

    7. Ensure the you test the procedure in a test environment several times to
       become familiar with the procedure.  Verify that the program does what you
       require prior to making the changes into production.

    9. This procedure is not supported by Oracle Support Services.  This is just
       an example and will have to be adjusted for your own needs.


    SCOPE & APPLICATION:
    --------------------
    Technical Consultants, Apps DBA, DBA.


    Steps to create a custom concurrent program with Host method and pass parameters to the shell script.
    ----------------------------------------------------------------------------------------------------

    1.  Copy/modify (if needed) chgdbpwd to your CM-tier under $FND_TOP/bin.
       
    2.  Create file allowed_list.lst under <applmgr_home_directory>/scripts.

    3. Logon to Oracle Application 11i ->  System Administrator responsibility

       Navigate Concurrent > Program > Executable and enter a new one:
       Executable: Change Database User Password
       Short Name: CHGDBPWD
       Application: Application Object Library
       Description: Change Database User Password
       Execution Method: Host
       Execution File Name: chgdbpwd
       Save your work.

    4. Navigate Concurrent > Program > Define and enter a new one:
       Program: Change Database User Password
       Short Name: CHGDBPWD
       Application: Application Object Library
       Description: Change Database User Password
       Name: CHGDBPWD
       Method: Host
       Click on Parameters and add the following:
       - Seq: 10 , Parameter: Database User, Description: Enter Database User to change the password for, Value Set: 15 Characters, and click on the Required: checkfield.
       - Seq: 11 , Parameter: Database User Password, Description: Enter Database User's New Password, Value Set: 15 Characters, and click on the Required: checkfield.
       Save your work.

    5.  Navigate Security > Responsibility > Request
        Query for Group: System Administrator Reports and add one request
        Type: Program, Name: Change Database User Password
        Save your work.

    6. Restart the Concurrent Managers.

    7. Submit the concurrent request "Change Database User Password" , pass the
       parameters, under System Administrator responsibility.

    8. Connect using sqlplus to confirm the database user password has changed.

    This procedure might help in case that HelpDesk will be allowed to reset
    specific database password, without having access to database users SYSTEM/SYS.
    Only the responsibility associated with the concurrent request "Change Database
    User Password" defined above is needed.


    -----script. chgdbpwd starts here -----------------------------------------------------------------------------------
    #!/bin/ksh
    # This script. is intended to change a database user password
    # 23.mar.2004, by catalin ciontu
    # Arguments: database username and password
    # Setting of the environment ...
    TERM=vt100
    export TERM
    . /d00/applvis/visdbappl/APPSORA.env
    WORKDIR=~/scripts
    export WORKDIR
    cd $WORKDIR
    SYSTEMPWD=<!put_your_system_pwd_here!>
    export SYSTEMPWD
    MAILTO="cciontu@yahoo.com"
    export MAILTO
    # Testing for passing the argument from CM ...
    if [ -z "$1" ]
    then
    echo "Please pass the 1st argument ... make sure that CM program passes the parameters to this script. ...  "
    exit 1
    fi
    # Please build the allowed_list.lst prior to executing this script. ...
    test -f allowed_list.lst
    if [ $? = 1 ]
    then
    echo "There is no list of allowed database users to have password changed ... Please create such a file under $WORKDIR/allowed_list.lst on the CM-tier : enter one database user account per line ... no extra spaces ... "
    exit 1
    fi
    # Because OA 11i passes its internal params to any CM program (ie. 1 to 8 are occupied by prog_name, req_id, login_id, userid, username, printer, save, copies), starting with the 9th we can have our own customized parameters: ie: database username and its passwd .
    USR=`echo $1|cut -f9 -d " "|cut -f2 -d '"'`
    export USR
    PWD=`echo $1|cut -f10 -d " "|cut -f2 -d '"'`
    export PWD
    /usr/bin/fgrep -i -x $USR $WORKDIR/allowed_list.lst
    if [ $? = 0 ]
    then
    # Connect to the database and change user's password ...
    sqlplus -silent system/$SYSTEMPWD > /dev/null 2>&1 <<EOF
    set serveroutput on
    set feedback on
    set echo on
    spool chgdbpwd.lst
    alter user $USR identified by $PWD;
    spool off
    exit;
    EOF
    # Now, we'll notify the dba group for password change attempts ...
    /usr/bin/mailx -s "Please be notified that an attempt to change a database user password - listed in the allowed_to_change_list: $USR/$PWD - was made in $TWO_TASK instance ... See body for results ... " $MAILTO < $WORKDIR/chgdbpwd.lst > /dev/null 2>&1
    rm chgdbpwd.lst
    fi
    -----script. chgdbpwd ends here -------------------------------------------------------------------------------------


    -----example of allowed_list.lst follows----------------------------------------------------------------------------
    catalin
    mihaela
    ada
    -----example of allowed_list.lst ends here--------------------------------------------------------------------------


    Remarks:
    --------
    1. As of Oracle Applications 11.5.9, the order of DEFAULT parameters is like:
    FCP_REQID=154870 FCP_LOGIN="APPS/..." FCP_USERID=1109 FCP_USERNAME="CATALIN"
    FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=0
    If you want to specify your own parameters, you'll start with parameter number 9. See the script. chgdbpwd.

             

                成长

           /      |     \

        学习   总结   分享

    QQ交流群:122230156

  • 相关阅读:
    DB2错误代码
    Hbase配置中出现的问题总结
    自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法
    关于CoordinatorLayout与Behavior的一点分析
    Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡...)
    android之官方下拉刷新组件SwipeRefreshLayout
    Android改变图片颜色的自定义控件
    android 之修改图片的某一颜色值
    Android动态修改图片颜色的实现方式分析
    Android WebView常见问题及解决方案汇总
  • 原文地址:https://www.cnblogs.com/benio/p/2077403.html
Copyright © 2020-2023  润新知