【EBS】主機併發程式開發

Hy旧人伤發表於2024-09-03

   在 Oracle EBS R12 系統的開發使用中,對於某一些的需求開發,直接使用shell指令碼進行是最為便捷的。這裡整理一下在 Oracle EBS R12 系統中進行主機併發程式開發的內容。

一、檔案命名

   需求開發時,所建立的主機併發程式的程式碼檔案,其字尾名為 prog ,例如:CUXSHELLDEMO.prog

二、程式碼開發

1、內建引數

在 Oracle EBS R12 系統中,系統內部已經佔用了4個引數位置,如果我們需要傳參進去shell指令碼中,需要從 $5 開始傳參。被系統佔用的前四個引數位置分別為:

$1 : ORA_USER_PASS —— APPS/apps
$2 : USERID
$3 : USERNAME
$4 : REQUESTID
  • 第一個引數為:資料庫的登入連線賬號及密碼;
  • 第二個引數為:應用登入使用者的使用者ID,從 FND_USER 表獲取驗證;
  • 第三個引數為:應用登入使用者的使用者名稱,從 FND_USER 表獲取驗證;
  • 第四個引數為:當前主機程式執行的併發請求ID。
    如需傳入其他的引數值,在shell中按照位置順序進行引數獲取時,需要從 $5 開始獲取輸入的引數值。
2、資料庫連線

  在主機程式中需要連線資料庫進行資料查詢驗證時,則是使用 sqlplus 命令進行連線和查詢。需要儲存SQL的查詢結果時,使用引數直接獲取 SQL 的執行返回結果值即可:
eg:

l_req_outfile_name=`sqlplus -S $FCP_LOGIN <<EOF
		set heading off;
		set feedback off;
		set pagesize 0;
		set verify off;
		set echo off;
		set numwidth 4;
		set linesize 999;
		set serveroutput on;
SELECT to_char(t.OUTFILE_NAME) FROM fnd_concurrent_requests t WHERE t.REQUEST_ID=${4};
EOF`
3、程式碼上傳編譯

  在將需求程式碼開發完畢之後,使用sftp工具將程式碼 prog 檔案上傳至 $CUX_TOP/bin/ 目錄下面,並對其設定軟連線:

ln -s $CUX_TOP/bin/CUXSHELLDEMO.prog $CUX_TOP/bin/CUXSHELLDEMO

Tips:在對主機併發程式做二次調整之後,進行重新發布的時候,需要先行將原有的軟連線刪除,然後再進行後續的編譯操作。
  之後在併發請求定義的位置對此主機併發程式進行部署定義即可。

+++========================================================+++
以上內容僅為個人學習記錄使用。
如有轉載,請附有原文出處連結。

相關文章