單據(jù)序列的概念及應用V111_第1頁
單據(jù)序列的概念及應用V111_第2頁
單據(jù)序列的概念及應用V111_第3頁
單據(jù)序列的概念及應用V111_第4頁
單據(jù)序列的概念及應用V111_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、單據(jù)序列的概念及應用(9-Dec-96)目錄文檔控制ii概述4單據(jù)序列概念4單據(jù)序列(客戶化應用)7AR 中的單據(jù)序列11AR 中的單據(jù)序列試驗14單據(jù)序列的實用意義分析23已解決問題和未解決問題27未解決問題27已解決問題27(9-Dec-96)概述本文對 Oracle ERP系統(tǒng) 中 “單據(jù)序列”的概念進行了初步的探索和實驗。目的在于進一步理解“單據(jù)序列”的概念和作用單據(jù)序列概念序列的概念Oracle 對于序列概念的描述如下:單據(jù)序列可對 Oracle Applications 產(chǎn)品所生成的單據(jù)進行唯一編號。利用 Oracle Applications,您可以通過在表單中輸入數(shù)據(jù)并生成單據(jù)

2、(如發(fā)票),起動一項事務處理。單據(jù)序列會生成跟蹤線索,用以標識創(chuàng)建了該事務處理的應用產(chǎn)品(如 Oracle Receivables),以及所生成的原始單據(jù)(如發(fā)票編號 1234)。 單據(jù)序列可以提供完整性的證明。例如,單據(jù)序列可用于反映每項事務處理,甚至是失敗的事務處理。 單據(jù)序列還可以提供跟蹤線索。例如,單據(jù)序列可以提供一條從總帳到子分類帳,再到最初影響帳戶余額的單據(jù)的跟蹤線索。 由于單據(jù)序列會生成跟蹤數(shù)據(jù),因此即使單據(jù)被刪除,它們的跟蹤記錄也會保留下來。序列的定義Nav : System Administrator->Application->Document->Defi

3、ne上圖我們看到的是一個序列:AP發(fā)票號,可以看出來該序列采用自動編號。初始值為1 ,其內(nèi)部的Doc_sequence_id = 5 oracle 對每一個序列的使用都有跟蹤記錄,并且序列的跟蹤記錄存儲在應用產(chǎn)品的跟蹤表中,其標題為 Application Short Name _DOC_SEQUENCE_AUDIT。例如,屬于 Oracle Payables 的序列的跟蹤表為 AP_DOC_SEQUENCE_AUDIT。在這張表中,我們檢索AP發(fā)票所有使用過的編號,這些編號被使用在哪種單據(jù)類型上。如下圖所示上圖中,DOC_SEQUENCE_ID是單據(jù)序列的內(nèi)部ID , 5表示AP 發(fā)票;而D

4、OC_SEQUENCE_ASSIGNMENT_ID是單據(jù)分配的內(nèi)部ID,它表示該單據(jù)序列被分配在哪種單據(jù)類別上(下文會有描述);而DOC_SEQUENCE_VALUE表示該單據(jù)序列被分配在某種單據(jù)類別上,曾經(jīng)在什么時候被使用過,其值是多少。序列的分配Nav : System Administrator->Application->Document->Define上圖中,我們看到單據(jù)序列:AP發(fā)票號被分配給單據(jù)類別:借項通知單。其DOC_SEQUENCE_ASSIGNMENT_ID=8 。單據(jù)類別的定義Nav :System Administrator->Applicat

5、ion->Document->Category單據(jù)類別標識了存儲單據(jù)(由用戶輸入的事務處理產(chǎn)生)的數(shù)據(jù)庫表。使用類別可對單據(jù)進行更精確地分類。例如,您可以將應收帳款發(fā)票分成以下幾個不同的類別: 拖欠款項 定金 保證金 借項通知單 貸項通知單 銷售發(fā)票 客戶服務發(fā)票同樣,您也可以將應付帳款或采購發(fā)票分成以下幾個不同的類別:標準費用報表預付款利息貸項通知單借項通知單單據(jù)序列(客戶化應用 )我們知道,定義單據(jù)類別的時候只是指定了表的名字,而在定義單據(jù)序列,以及把單據(jù)序列分配給單據(jù)類別的時候也沒有指定任何子段,那么oracle 是如何利用單據(jù)序列來給特定的字段自動生成編號的呢?我們來看個客

6、戶化程序中使用單據(jù)序列的實驗例子??蛻艋某绦蛑腥绾问褂脝螕?jù)序列?1、在 HWCUST Schema 中 創(chuàng)建一個測試表createtable cux_seq_test(test_num numbernull, test_name varchar2(255) null)2、在APPS中創(chuàng)建同義詞,并注冊表和子段。CREATE SYNONYM cux_seq_test for hwcust.cux_seq_test;EXECUTE ad_dd.register_table('HW', 'cux_seq_test', 'T', 8, 10, 90);

7、EXECUTE ad_dd.register_column('HW', 'CUX_SEQ_TEST', 'TEST_NUM', 1, 'NUMBER', 30, 'Y', 'N' );EXECUTE ad_dd.register_column('HW', 'CUX_SEQ_TEST', 'TEST_NAME', 2, 'VARCHAR2', 255, 'Y', 'N' );3、Nav :System Ad

8、ministrator->Application->Document->Category 定義單據(jù)類別字段值ApplicationcodeCUX_TSTName測試單據(jù)類別Description測試單據(jù)類別TableCUX_SEQ_TEST4、定義單據(jù)序列Nav : System Administrator->Application->Document->Define拷貝號姓名NameHW_SEQ_TSTApplication5、序列分配:Nav : System Administrator->Application->Document->

9、Define拷貝號姓名ApplicationApplicationHW_SEQ_TSTCategory測試單據(jù)類別Set of BooksSequenceHW_SEQ_TSTprocedure Get_seq_num isbeginif (nvl(:parameter.seq_numbers, 'N') != 'N' and NOT Is_DB_Record) thenUser_Exit('FND SEQCHK ' | 'APPLICATION_ID="20002" ' |'SET_OF_BOOKS_I

10、D="' | TO_CHAR(:PARAMETER.SET_OF_BOOKS_ID) | '" ' |'CATEGORY="CUX_TST" ' | 'METHOD="A" ' |'TRX_DATE=":PARAMETER.TRX_DATE" ' |'DOC_SEQUENCE_VALUE=":PARAMETER.INTEREST_INV_DOC_SEQ"');if (Not Form_Success) the

11、nRaise Form_Trigger_Failure;end if;end if;:PARAMETER.INTEREST_INV_DOC_SEQ := NULL;:PARAMETER.INTEREST_INV_DOC_SEQ_ID := NULL;if (nvl(:parameter.seq_numbers, 'N') != 'N') thenUser_Exit('FND SEQVAL ' | 'APPLICATION_ID="20002" ' |'SET_OF_BOOKS_ID="'

12、; | TO_CHAR(:PARAMETER.SET_OF_BOOKS_ID) | '" ' |'CATEGORY="CUX_TST" ' | 'METHOD="A" ' |'TRX_DATE=":PARAMETER.TRX_DATE" ' |'DOC_SEQUENCE_VALUE=":PARAMETER.INTEREST_INV_DOC_SEQ" ' |'DOC_SEQUENCE_VALUE_FIELD="

13、PARAMETER.INTEREST_INV_DOC_SEQ"' |'DOC_SEQUENCE_ID_FIELD="PARAMETER.INTEREST_INV_DOC_SEQ_ID"');if (Not Form_Success) and (nvl(:parameter.seq_numbers, 'N') = 'A') then:PARAMETER.INTEREST_INV_DOC_SEQ := NULL;:PARAMETER.INTEREST_INV_DOC_SEQ_ID := NULL;Raise Fo

14、rm_Trigger_Failure;end if;fnd_message.debug(to_char(:PARAMETER.INTEREST_INV_DOC_SEQ);end if;end;FUNCTION Is_DB_Record RETURN Boolean ISBEGIN if (nvl(:system.record_status,:system.form_status) in ('QUERY','CHANGED') then return TRUE; else return FALSE; end if;RETURN NULL; END Is_DB_Re

15、cord;6、在Form 中使用出口函數(shù):用Form 測試:上圖中,當我們點擊 GetSeq 按鈕時,我們就調(diào)用Get_seq_num ,然后 把值從參數(shù):PARAMETER.INTEREST_INV_DOC_SEQ 中取出來放入Test Num ,就出現(xiàn)如上結果。每點擊一次,就會取到一個序列。 那么,如果我們又不想序號自動生成了該怎么辦?我們只需要把單據(jù)序列分配失效就可以了。我們在Form測試的時候,發(fā)現(xiàn)還是會自動生成。這說明,序列分配沒有立即失效。但是過了一段時間再作Form測試時,發(fā)現(xiàn)序號不會自動生成了。也就是我們失效序列分配的動作起作用了。7、查看 首先,我們查找我們剛定義的單據(jù)序列

16、的doc_sequence_id =343 , 一般來說自己定義的單據(jù)序列的跟蹤表是:FND_DOC_SEQUENCE_AUDIT。select * from FND_DOC_SEQUENCE_AUDITwhere doc_sequence_id = 343AR 中的 單據(jù)序列我們通過一個實驗來看看 AR中的單據(jù)序列應用。下面的步驟是Oracle 文檔中描述的 ,為某種 “事務處理類型”啟用單據(jù)序列所需要的步驟。步驟 1 啟用“連續(xù)編號”配置文件選項 (Sequential Numbering)要實施單據(jù)序列,首先必須啟用“連續(xù)編號”配置文件選項。您可以在地點層和(或)應用層設置此選項。要查看

17、此選項的當前設置,請定位至“個人配置文件值”窗口,然后查詢“連續(xù)編號”配置文件選項。 注:您可以在“個人配置文件值”窗口中查看此配置文件選項,但是不能對其進行更新。您可以通過瀏覽器訪問此窗口。 有效的配置文件選項值為:不使用您可以始終輸入事務處理。在輸入事務處理時,光標將跳過“單據(jù)編號”字段。如果將此配置文件選項設置為此值,則不能使用“自動收款”功能。 始終使用如果事務處理沒有序列,則不能輸入事務處理。此值要求您在輸入事務處理時輸入單據(jù)編號。 部分使用 即使事務處理沒有序列,您也可以輸入事務處理。但是,系統(tǒng)會向您發(fā)出警告。例如,如果要將連續(xù)編號用于自動收款而不作其它用途,則請使用此值。 注意:

18、應收款管理系統(tǒng)的自動收款功能會在創(chuàng)建收款時使用單據(jù)序列。因此,如果要使用此功能,您必須將此配置文件選項設置為“部分使用”或“始終使用”。 在下面的實驗中,我們設置成“部分使用”步驟 2 定義“生成單據(jù)編號”配置文件選項(AR: Document Number Generation Level)配置文件選項“AR:生成單據(jù)編號層”,使您可以確定應收款管理系統(tǒng)何時生成事務處理的單據(jù)編號。您可以選擇在提交事務處理或完成事務處理時生成單據(jù)編號。默認值為“提交事務處理時”。 也就是說這個 “配置文件” 可以不設置,因為如果程序取不到這個“配置文件”的值,則 系統(tǒng)會在“提交事務處理”時生成單據(jù)編號。在下面

19、的實驗中,我們不設置這個配置文件選項,也就是說,我們使用默認值。步驟 3 選擇單據(jù)編號是否與事務處理編號相同在創(chuàng)建或?qū)胧聞仗幚頃r,事務處理批來源會確定是應收款管理系統(tǒng)自動生成批和事務處理編號,還是需要人工輸入這些編號。事務處理批來源還會確定應收款管理系統(tǒng)對于單據(jù)和事務處理編號是否使用同一編號。 注:如果您的應用產(chǎn)品使用無間隙的單據(jù)排序,則此選項可確保事務處理編號也是無間隙的編號。 要確保事務處理批來源的單據(jù)編號和事務處理編號相同,請執(zhí)行以下操作:1. 定位至“事務處理來源”窗口。2. 輸入或查詢事務處理來源。請參閱:事務處理批來源 3. 選定“將單據(jù)編號復制至事務處理編號”復選框。4. 保存

20、您所做的工作。注意:如果“將單據(jù)編號復制至事務處理編號”選項設置為“是”,則應收款管理系統(tǒng)中可能有多個事務處理具有相同的事務處理編號和批來源。但是,對于同一種事務處理類型,單據(jù)編號和事務處理編號始終唯一。 在下面的實驗中,我們會定義若干種事務處理來源批。分別兩種情況A: 選定“將單據(jù)編號復制至事務處理編號”復選框。B: 不選定“將單據(jù)編號復制至事務處理編號”復選框。參見下一章:AR 中的 單據(jù)序列 試驗步驟 4 定義序列使用“單據(jù)序列”窗口來定義序列的名稱、類型和初始值。您可以使用系統(tǒng)管理員責任來訪問此窗口。 您無需為輸入的每項事務處理定義不同的序列。例如,您可能決定只設置三個序列,分別用于發(fā)

21、票、收款和調(diào)整。另外,您可能要將不同的序列分配給每種事務處理類型、付款方法和調(diào)整活動。 以下應收款管理系統(tǒng)事務處理必須具有自動序列類型。所有其它事務處理可以具有人工或自動序列。 調(diào)整沖銷自動調(diào)整自動收款拖欠款項調(diào)整 拖欠款項沖銷 信用卡付款承付款調(diào)整 財務費用調(diào)整加密箱接收應收款管理系統(tǒng)會在創(chuàng)建拖欠款項時生成拖欠款項調(diào)整。拖欠款項調(diào)整會減少拖欠款項所核銷的事務處理的余額(核銷額為拖欠款項額)。同樣,系統(tǒng)會在您對定金或保證金開票時生成承付款調(diào)整。如果用定金來核銷發(fā)票,則承付款調(diào)整會減少發(fā)票余額;如果用保證金來核銷發(fā)票,則承付款調(diào)整會減少保證金余額。 系統(tǒng)會在您計算財務費用時創(chuàng)建財務費用調(diào)整。它們

22、可用于按財務費用金額調(diào)整事務處理余額。 在刪除具有與其相關的調(diào)整或拖欠款項的收款核銷時,系統(tǒng)會生成調(diào)整和拖欠款項沖銷。 建議:如果要使用自動開票,則可以在自動開票接口表中人工輸入序號。但是,如果這些事務處理使用自動序列類型,則應收款管理系統(tǒng)會自動將序號分配給導入的事務處理。 在下面的實驗中,我們定義一個單據(jù)序列:“AR 發(fā)票序號”設置此單據(jù)序列為自動的。步驟 5 將序列分配給類別使用“單據(jù)序列”窗口將序列分配給下列單據(jù)彈性域的一個或多個組合:核銷單據(jù)類別事務處理日期范圍在定義新付款方法或事務處理類型,或定義類型為“調(diào)整”或“財務費用”的應收款活動時,應收款管理系統(tǒng)會相應地自動創(chuàng)建名稱相同的單據(jù)

23、類別。 核銷和單據(jù)類別構成了單據(jù)彈性域。對于某個事務處理日期范圍來說,每個有效的單據(jù)彈性域組合均必須唯一。注:您可以將同一序列分配給一個或多個單據(jù)彈性域組合,但彈性域中的所有類別均必須指向同一核銷表。 有關詳情,請參閱:分配單據(jù)序列 步驟 6 在 Oracle General Ledger 中實施單據(jù)序列如果安裝了 Oracle General Ledger 并為此應用產(chǎn)品啟用了連續(xù)編號,則在過帳之前必須定義日記帳分錄類別的序列、類別和分配。應收款將過帳至以下總帳管理系統(tǒng)的日記帳類別:調(diào)整拖欠款項貸項通知單核銷貸項通知單交叉貨幣(在 11 版中才出現(xiàn))借項通知單雜項收款銷售發(fā)票貿(mào)易收款注:通過

24、在應用層而非地點層設置“連續(xù)編號”配置文件選項,可對特定應用產(chǎn)品的單據(jù)進行排序。 AR 中的 單據(jù)序列 試驗步驟 1 定義一種新的事務處理類型Nav :AR System administrator->setup->transaction->Transaction Type我們在AR 設置里面定義了一個事務處理類型 “INV-TST0101” 則系統(tǒng)會自動創(chuàng)建一種單據(jù)類別, 其名稱也是 “INV-TST0101”。如下圖。只不過,系統(tǒng)不會自動為此單據(jù)類型分配序列。步驟 2 使用新的事務處理類型 創(chuàng)建一筆事務Nav : AR System administrator>Tr

25、ansactions->transactions我們發(fā)現(xiàn),使用這種事務處理類型來做一筆事務處理,則系統(tǒng)不會為這筆事務處理產(chǎn)生序列號。步驟 3 為新的事務處理類型 對應的單據(jù)類別 分配序列Nav : System administrator->Application ->Document->Assign確認“連續(xù)編號”配置文件選項 (Sequential Numbering) 已經(jīng)設置,本例中設置為:部分使用 ,如下圖。步驟 4 使用新的事務處理類型 再創(chuàng)建一筆事務Nav : AR System administrator>Transactions->tran

26、sactions我們發(fā)現(xiàn),系統(tǒng)已經(jīng)為這筆事務處理生成了單據(jù)序號。步驟 5 查看數(shù)據(jù)庫記錄事務處理頭表 中會存儲序列及序列的值,如下圖:AR 的序列審計表中會存儲 序列生成的歷史記錄,如下圖:步驟 6 定義一種新的事務處理批來源,設置“事務處理編號”拷貝 “序列號”Nav :AR System administrator ->setup->transactions->Source定義這個 “事務處理來源批” 時,我們 勾選了”Automatic Transaction Numbering” 并設定 其 “Last Number =1000” . 保存時,系統(tǒng)會自動生成一個數(shù)據(jù)庫

27、 對象Sequence ,其格式為:RA_TRX_NUMBER_<BATCH_SOURCE_ID>_<ORG_ID>_S , 這個Sequence 用于自動生成事務處理編號:Trx_Num.,如下圖:也就是說,如果我們沒有勾選“Copy Document Number to Transaction Number” , 則 使用 TSTBATCH001 作為“事務處理來源批”創(chuàng)建事務處理時,系統(tǒng)會自動生成 從1000開始的事務處理編號。但是我們這里也勾選:“Copy Document Number to Transaction Number” ,然后我們看看創(chuàng)建事務處理時

28、,系統(tǒng)如何處理? 步驟 7 使用TSTBATCH001 作為“事務處理來源批”創(chuàng)建事務處理Nav : AR System administrator>Transactions->transactions我們發(fā)現(xiàn),系統(tǒng)并沒有使用 “事務處理來源批” 中的設置 ,使用“單據(jù)序列”來作為“事務處理編號”這是不是因為在 同時勾選 ”Automatic Transaction Numbering” 和“Copy Document Number to Transaction Number” 的情況下,系統(tǒng)優(yōu)先使用 ”Automatic Transaction Numbering” 的設置呢?

29、我們可以再定義一種“事務處理來源批” 來驗證這件事。步驟8 定義一種新的事務處理批來源,不設置“自動事務處理編號”Nav :AR System administrator ->setup->transactions->Source步驟9 使用TSTBATCH002作為“事務處理來源批”創(chuàng)建事務處理Nav : AR System administrator>Transactions->transactions在這種情況下,系統(tǒng)會設置 “事務處理編號”為 “需要手工錄入,且必填”,所以我們必須隨便填寫一個編號,然后保存:其結果是,系統(tǒng)依然沒有實現(xiàn) 使用 “事務處理來源

30、批” 中的設置 ,使用“單據(jù)序列”來作為“事務處理編號”的功能。不過,如果我們把這張發(fā)票完成以后(輸入幾條行,并調(diào)整好收入帳戶后按Complete 按鈕)就不一樣了,請看:完成后,事務處理編號確實被復制成序列號了。這其實與Oracle文檔中描述得并不一樣。因為在 步驟2中 ,我們實際并未設置 系統(tǒng)配置文件:AR: Document Number Generation Level ,如下圖:理論上講,應該在保存的時候,即把單據(jù)序列號復制到事務處理編號。但實際情況卻是在完成時才實現(xiàn)這個動作。所以說,如果不設置系統(tǒng)配置文件AR: Document Number Generation Level,其默

31、認值 是“在完成時生成事務處理編號(把單據(jù)據(jù)序列號復制到事務處理編號)”的。步驟11 過帳到總帳Nav : AR System administrator>Interface->Gereral Leger我們調(diào)用 總帳接口程序 把這天的會計分配信息過帳到總帳接口,然后我們查詢數(shù)據(jù)庫可以看到:在總帳接口表 GL_interface 表中,單據(jù)序列號=45的會計分配信息都已經(jīng)到了總帳接口表中了。單據(jù)序列號也被帶到了總帳接口表。我們接著往下走。步驟12 總帳日記帳導入Nav:GL Sytem Administrator ->Journals->Import->Run導入

32、完成后,我們可以在總帳日記帳中找到我們導入的會計分配信息:查看數(shù)據(jù)庫可見,單據(jù)序號被帶入到日記帳行表 GL_Je_lines 中了單據(jù)序列 的實用意義分析按照 Oracle 的說法,使用單據(jù)序列的好處主要有三個:1、單據(jù)序列可以提供完整性的證明。例如,單據(jù)序列可用于反映每項事務處理,甚至是失敗的事務處理。 2、單據(jù)序列還可以提供跟蹤線索。例如,單據(jù)序列可以提供一條從總帳到子分類帳,再到最初影響帳戶余額的單據(jù)的跟蹤線索。 3、由于單據(jù)序列會生成跟蹤數(shù)據(jù),因此即使單據(jù)被刪除,它們的跟蹤記錄也會保留下來。作用3的分析:對于第3個作用,我們在步驟5已經(jīng)能夠體會到了。由于單據(jù)序列審計跟蹤信息表:XX_D

33、OC_SEQUENCE_AUDIT中的提供了一些列,這些列信息可以讓我們知道:“某人在某天曾經(jīng)創(chuàng)建過一個什么類型的單據(jù)”,但是,由于列數(shù)太少,沒有紀錄這個單據(jù)的其他信息,如果這個單據(jù)被刪除了,也無法了解當時創(chuàng)建的單據(jù)具體輸入了那些業(yè)務信息。所以這個作用有一定意義。但是單獨看這個作用意義不大。只有為第一個作用服務的時候才能顯示出一點實際意義。下文對作用1的分析,我們會提到這點實際意義。作用2的分析:對于第2個作用,我們還需要繼續(xù)思考,我們主要關注從AR事務處理生成的單據(jù)序列號,究竟是怎樣被一步一步傳送到總帳中的。以AR發(fā)票為例,首先,如果啟用了序列,則a) 在事務處理頭信息表 RA_CUSTOM

34、ER_TRX_ALL 中就會生成DOC_SEQUENCE_ID 和 DOC_SEQUENCE_VALUE。 b) 事務處理會計分配信息 表 RA_CUST_TRX_LINE_GL_DIST_ALL 中的內(nèi)容通過和在事務處理頭信息表 RA_CUSTOMER_TRX_ALL 關聯(lián)可以獲得DOC_SEQUENCE_ID 和 DOC_SEQUENCE_VALUE。 在過帳到總帳的時候,這兩個字段被傳給總帳接口表 GL_INTERFACE 的 SUBLEDGER_DOC_SEQUENCE_ID 和 SUBLEDGER_DOC_SEQUENCE_VALUE c) 數(shù)據(jù)從GL_Interface 導入到日記

35、帳后這兩個字段被傳到日記帳行表GL_JE_LINES 中的 SUBLEDGER_DOC_SEQUENCE_ID 和 SUBLEDGER_DOC_SEQUENCE_VALUE。所以如果啟用了序列,則從總帳到子分類帳確實可以通過單據(jù)序列號來跟蹤。但是,事實上Oracle 從總帳到子分類帳的跟蹤功能的實現(xiàn)卻不是依據(jù)序列號進行的。上圖中,選擇第一條日記帳,然后選Tools 菜單的 DrillDown ,則系統(tǒng)條用了如下代碼: xla_open_form.open_drilldown( form_function => 'XLA_XLAIQDRL', set_of_books_id

36、 => gl_sob.sob_id, gl_acct_flex => :LINES.accounting_flexfield, gl_period => :LINES.period_name, je_source => :HEADER.je_source, je_category => :HEADER.je_category, je_header_id => :LINES.je_header_id, je_line_num => :LINES.je_line_num);其中綠色字體的參數(shù)為三個關鍵參數(shù)。而Function XLA_XLAIQDRL對應的

37、form是XLAIQDRL.fmb ,即下面這個界面:在這個界面上,Oracle 已經(jīng)把事務處理類型和編號都顯示出來了。Oracle是如何查找的呢?上面界面的Block的來源是:視圖:XLA_AEL_GL_V 。但是實際上XLA_AEL_GL_V 視圖是個虛的視圖,其定義如下: CREATE OR REPLACE VIEW XLA_AEL_GL_V ASSelect To_Number(Null) Je_Header_Id, To_Number(Null) Je_Line_Num, To_Number(Null) Accounted_Cr, To_Number(Null) Accounted_

38、Dr, To_Date(Null) Accounting_Date, Null Acct_Line_Type, Null Acct_Line_Type_Name, To_Number(Null) Aeh_Id, To_Number(Null) Ael_Id, Null Ael_Table, Null Ae_Line_Reference, .(省略)From DualWhere 1 = 2 /* Always Fail */所以從這個視圖是看不出任何取數(shù)邏輯的。不過可以使用F11 >Ctrl + F11 后看System.last_query 得到其取數(shù)邏輯: 我們可以發(fā)現(xiàn)其實數(shù)據(jù)來源于視圖: Xla_Ar_Inv_Ael_Gl_v 而這個視圖又是來源于 視圖 : Ar_Ael_Gl_Inv_v ,打開視圖 : AR_AEL_GL_INV_V 可以看到真正的數(shù)據(jù)來源。其實 Oracle 首先會 使用 AE_LINES_FOLDER.get_view_name() 函數(shù),來初步判斷這筆日記帳是來源于哪個模塊的哪種業(yè)務類型,然后再決定從哪個視圖中獲取數(shù)據(jù)的(這個判斷邏輯中,視圖名稱是寫死在代碼中的) 。我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論