FNDWRR.exe後面的temp_id是如何生成的--解析Oracle EBS request log/output的url
我們在EBS的view concurrent request 介面裡, 通常會點選log或output, 然後在選單裡選copy file,從IE裡來獲取相應的log或output檔案. 相應的url是
http://host:port/OA_CGI/FNDWRR.exe?temp_id=2391709&login=APPLSYSPUT/[email protected]
這個url是如何生成的呢? 通過檢視FNDRSRUN這個form, 查到相關的兩個package是fnd_webfile.get_url和fnd_concurrent_file.get_file_id
以下是fnd_webfile.get_url的引數說明
/* Function: GET_URL
*
* Purpose: Constructs and returns the URL for a Concurrent Processing
* log or output file.
*
* Arguments:
* file_type - Specifies the type of file desired:
* fnd_webfile.process_log = The log of the concurrent process identified
* by the parameter ID.
* fnd_webfile.icm_log = The log of the ICM process identified by ID.
* Or, the log of the ICM process that spawned
* the concurrent process identified by ID.
* Or, the log of the most recent ICM process
* if ID is null.
* fnd_webfile.request_log = The log of the request identified by ID.
* fnd_webfile.request_out = The output of the request identified by ID.
* fnd_webfile.request_mgr = The log of the concurrent process that ran
* the request identified by ID.
* fnd_webfile.frd_log = The log of the forms process identified
* by ID.
* fnd_webfile.generic_log = The log file identified by ID.
* fnd_webfile.generic_trc = The trace file identified by ID.
* fnd_webfile.generic_ora = The ora file identified by ID.
* fnd_webfile.generic_cfg = The config file identified by ID.
* fnd_webfile.context_file= The context file identified by ID.
* fnd_webfile.generic_text= Generic file using text transfer mode.
* fnd_webfile.generic_binary = Generic file using binary transfer mode.
*
* id - A concurrent process ID, concurrent request ID, or file ID
* depending on the file type specified.
* For fnd_webfile.context_file,fnd_webfile.generic_text,
* fnd_webfile.generic_binary this value is null.
*
* gwyuid - The value of the environment variable GWYUID used in
* constructing the URL.
*
* two_task - The database two_task, used in constructing the URL.
*
* expire_time - The number of minutes for which this URL will remain
* valid.
* source_file - Source file name with full patch
*
* source_node - Source node name.
*
* dest_file - Destination file name
*
* dest_node - Destination node name
*
* Returns NULL on error. Check the FND message stack.
在這個get_url中, 如果檔案是request_log或request_out型別的, 它會呼叫fnd_concurrent_file.get_file_id, 以下是原始碼
function get_file_id return varchar2
is
fuid number;
fcrc number;
frand number;
fid number;
rval varchar2(32);
rtemp varchar2(32);
begin
select fnd_s_file_temp_id.nextval
into fuid
from dual;
-- Get a random number
fnd_random_pkg.init(7);
fnd_random_pkg.seed(to_number(to_char(sysdate, 'JSSSSS')), 10, false);
frand := fnd_random_pkg.get_next;
-- Compute CRC32 of the random number and the sequence number,
-- this creates a self-checking value.
rval := lpad(to_char(frand),10,'0')||lpad(to_char(fuid),10,'0');
fcrc := fnd_hash_pkg.crc32(rval);
-- XOR the sequence and random values with whatever we have
-- lying around. This make our algorithm more obscure,
-- since sequence values and pseudorandom numbers are no longer
-- obvious to an observer.
fuid := fnd_hash_pkg.xor32(fuid, frand);
frand := fnd_hash_pkg.xor32(fcrc, frand);
-- this value will be unique
fid := fcrc * power(2,64) + frand * power(2,32) + fuid;
-- base 64
rval := fnd_code_pkg.base64(fid, 16);
rtemp := rval;
-- and finally encrypt it all with RC4...actually we now use CRC Hash
-- rval := fnd_crypt_pkg.encrypt('4237533241', rval, 16);
rval := to_char(icx_call.CRCHASH('4237533241',rval));
return rval;
end get_file_id;
其中可見oracle幾個有趣的package, 如:
fnd_crypt_pkg
fnd_code_pkg
fnd_random_pkg
fnd_hash_pkg
icx_call
有空再研究一下這幾個package.
相關推薦
FNDWRR.exe後面的temp_id是如何生成的--解析Oracle EBS request log/output的url
我們在EBS的view concurrent request 介面裡, 通常會點選log或output, 然後在選單裡選copy file,從IE裡來獲取相應的log或output檔案. 相應的url是http://host:port/OA_CGI/FNDWRR.exe?te
解析oracle的rownum
char 查詢 由於 可能 學生表 問題 進一步 但是 oracl 本人最近在使用oracle的rownum實現分頁顯示的時候,對rownum做了進一步的分析和研究。現歸納如下,希望能給大家帶來收獲。 對於rownum來說它是oracle系統順序分配為從查詢返回的行的編號
Oracle EBS登錄頁面顯示空白
color mes media 3.5 ply javax queue 1.3 shu 問題描述 由於ebs數據庫需要閃回,在其他同事閃回數據庫到之前某一天後,重啟ebs應用,發現ebs客戶端登錄顯示空白 以前也出現過類似問題,一般出現此問題,可以嘗試以下操作: 1.重
一個簡單的 JSON 生成/解析庫
article 例程 讀寫 文件的 簡單 read 沒有 project -c 這是一個單文件的,適用於C語言的, JSON 讀寫庫。 先說明,不想造輪子,代碼是從這裏拿來的: https://www.codeproject.com/Articles/887604/jW
安卓開發中使用ZXing生成解析二維碼
roi contents arc bar white png 解析 tex span 編碼示例 package com.wolf_pan.qrcodesample; import android.graphics.Bitmap; import android.graph
Java使用ZXing生成/解析二維碼圖片
圖片 agen 出圖 put align bar 範圍 pub get ZXing是一種開源的多格式1D/2D條形碼圖像處理庫,在Java中的實現。重點是在手機上使用內置攝像頭來掃描和解碼設備上的條碼,而不與服務器通信。然而,該項目也可以用於對桌面和服務器上的條形碼進行
Oracle ebs“發運方法”配置
技術分享 服務 mode 擴展 ans com str http .com 一、WSH_MODE_OF_TRANSPORT運輸方式的設置 10_OM_訂單管理超級用戶>設置>發運>代碼 在ebs 12.1.3,WSH_MODE_OF_TRANSPORT的訪
iOS開發- 生成/解析 vcf檔案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
How to stop start Oracle EBS Server DB Server Apps Server
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Firefox can not launch Oracle EBS Form
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
How to use script to get all oracle EBS Form name and corres
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Metalink Note 中文文件列表 - Oracle EBS Enterprise Business Suite
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Oracle EBS R12 WIP Component Issue Return Process
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Mybatis,DataSource生成解析
1.Configuration初始化,載入JNDI,POOLED,UNPOOLED的工廠類,並載入到TypeAliasRegistry的Map<String, Class<?>> TYPE_ALIASES = new HashMap<>()中: 圖1.
Oracle EBS PO退貨失敗
無法讀取例程 &ROUTINE 中配置檔案選項 INV_DEBUG_TRACE 的值。 系統-配置檔案-地點層 INC%除錯%蹤 是 select * from po_interfac
Oracle EBS PO採購訂單更新
DECLARE l_result NUMBER; l_progress NUMBER; l_errors PO_API_ERRORS_REC_TYPE; l_chg
Oracle EBS 報表日期格式問題
1.確保引數日期值集選擇:FND_STANDARD_DATE 2.將程式的入口引數選擇為 varchar2型別 3.注意輸出和遊標時引數的截斷 to_date(substr(p_DATE_from,1,10),g_date_format) g_dat
Oracle EBS 查詢使用者職責
select b.user_name UserID, b.description User_Name, f.RESPONSIBILITY_NAME RESPONSIBILITY from FND_USER_RESP_GROUPS a,
Oracle EBS 複製使用者職責
DECLARE l_new_user_name VARCHAR2(100) := 'HAND_HYL'; l_new_password VARCHAR2(100) := '54321'; l_new_user_id NUMBER; l_user_name_copy_from VA
Oracle EBS AR 更新客戶
DECLARE l_return_status VARCHAR2(300); l_msg_count NUMBER; l_ms