1、標準接口表2、標準API前者例如AP的發票接口表,供應商、客戶接口表,具體實現方式是,將數據按照接口表規格準備到接口表中,然后運行標準的import程序將接口表數據導入到Oracle EBS中(即各接口表對應的正式table中)。

成都創新互聯公司專業為企業提供海林網站建設、海林做網站、海林網站設計、海林網站制作等企業網站建設、網頁設計與制作、海林企業網站模板建站服務,十載海林做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
而例如銀行、分行、銀行帳戶相關API,一般通過客戶化程序,調用此類API實現將數據導入系統,此時一般也會新建一些客戶化staging table,先將外部數據準備到staging table后,再使用客戶化程序,調用API將資料導入Oracle EBS中。
1.創建Product Family
Product Family用于管理幾個功能相近的Product(也可以立即為模塊),統一管理客戶化的Webservice接口
begin
-- Call the procedure
ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'os_xxx',
x_pseudo_product_flag = 'N',
x_product_family_flag = 'Y',
x_application_short_name = NULL,
x_product_name = 'Oracle Xxx Suite',
x_product_family_abbreviation = NULL,
x_product_family_name = NULL,
x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd
hh24:mi:ss'),
x_currdate = to_char(SYSDATE,'yyyy-mm-dd
hh24:mi:ss'),
x_last_updated_by = -1,
x_created_by = -1);
COMMIT;
end;
2.注冊Product,即注冊Xxx University(cux)應用到產品家族中
begin
ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'cux',
x_pseudo_product_flag = 'N',
x_product_family_flag = 'N',
x_application_short_name = 'CUX',
x_product_name = 'Xxx University',
x_product_family_abbreviation = NULL,
x_product_family_name = NULL,
x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_currdate = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_last_updated_by = -1,
x_created_by = -1);
COMMIT;
end;
3.關聯Xxx University應用到產品家族Oracle Xxx Suite下
begin
-- Call the procedure
ad_pa_insert_package.insert_ad_pm_prod_family_map(x_product_abbreviation = 'cux',
x_product_family_abbreviation = 'os_xxx',
x_aru_update_date = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_currdate = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
x_last_updated_by = -1,
x_created_by = -1);
COMMIT;
end;
4.增加一個BUSINESS_ENTITY的lookup code(應用開發員職責-應用產品 - 代碼-Oracle Application Object),這個Lookup會用在下
一步的API中的@rep:category BUSINESS_ENTITY
這里增加的code為ORACLESEEKER
5.編寫PL/SQL API Specification
CREATE OR REPLACE PACKAGE CUX_SUPPLIER_PKG AS
/* $Header: $ */
/*#
* This package using maintain the supplier information
* @rep:scope public
* @reproduct CUX
* @rep:lifecycle active
* @rep:displayname Supplier Approve result
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY ORACLESEEKER
*/
/*#
* insert approve result
* @param apply_id apply id
* @param node_id node id
* @param node_name node name
* @param approver_id approver id
* @param approver_name approver name
* @param approve_result approve result
* @param approve_opinion approve opinion
* @param approve_date approve date
* @return a varchar
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname insert supplier approve result Webservice
*/
FUNCTION f_insert_approve_result(apply_id IN NUMBER,
node_id IN NUMBER,
node_name IN VARCHAR2,
approver_id IN NUMBER,
approver_name IN VARCHAR2,
approve_result IN NUMBER,
approve_opinion IN VARCHAR2,
approve_date IN DATE) RETURN VARCHAR2;
END CUX_SUPPLIER_PKG;
需要注意Package中的注釋并不是隨便填寫的,每一個注釋都會對應到Oracle Integration Repositoy接口的說明上去,對于要注冊成
Webservice的PL/SQL API必須按照要求來填寫。
注釋標簽具體的含義需要參考《Oracle E-Business Suite Integrated SOA Gateway Developer's Guide》
6.驗證PLSQL接口文件,并生成ildt文件
將編寫好的PLSQL聲明定義保存為.pls文件(PAUL_ITEM_PKG.pls),并將其上傳到服務器應用$CUX_TOP/patch/115/sql目錄下,然后執行下
邊的命令生成ildt文件
/usr/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin
cuxatch/115/sql:CUX_SUPPLIER_PKG.pls:12.0=CUX_SUPPLIER_PKG.pls
7.將iLDT文件上傳到Oracle Integration Repositoy
FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct CUX_SUPPLIER_PKG_pls.ildt
8.在對應的Product Family和Product下就能看到你的接口
9.在Web服務調用的時候,需要有一個應用數據庫用戶來連接EBS數據庫,因此需要創建一個具備一定權限的用戶,而為了簡化設置的麻煩
,Oracle提供了一個內建的用戶 ASADMIN ,只要啟用它并重置密碼就可以了。
以sysadmin登錄Oracle EBS,切換到 User Management 職責,進入Users頁面,查找出asadmin用戶,通過修改密碼的方式激活asadmin,
并確保此用戶擁有Apps Schema Connect Role職責。
由于asadmin的密碼已經被重置,因此中間服務器的文件配置$INST_TOP/ora/10.1.3/j2ee/oafm/config/system-jazn-data.xml 中對應的
密碼也需要修改,由于配置中的密碼已被加密,我們無法提供加密后的密碼,使用過OC4J的同事應該都知道,Oracle提供了一種重置這里
密碼的方便方法,就是采用明文密碼,在密碼前添加一個警號(!),然后重啟應用服務器后自動會重新加密。打開system-jazn-data.xml
文件后, 找到
user
nameASADMIN/name
display-nameDefault Apps SOA User/display-name
descriptionUsed by SOAProvider for DB connection/description
credentials{903}qMgAeO1AjQjwOJ6rIB41Sx049uG0xzhs/credentials
/user
只要將credentials的值更改為自己的密碼,如我的密碼設置為11111,就設置為 credentials!11111/credentials。修改完成后重啟
oamf,簡單的方法就是重啟Oracle EBS應用服務。
附重啟命令:
cd $INST_TOP/admin/scripts
01、關閉應用 sh adstpall.sh apps/apps
02、重啟應用 sh adstrtal.sh apps/apps
03、關閉DB
04、重啟DB
05、啟動并發管理器 adcmctl.sh start apps/apps
10.為集成接口創建授權
發布到Oracle Integration Repositoy中的Web服務能夠被訪問必須有相應的權限才可以,這也是受到AOL安全模型限制的一個體現。
登錄EBS后切換到Integrated SOA Gateway職責,在 Integration Repositoy 中找出已經上傳好的客戶化集成接口,選擇接口過程和方法
后點擊Create Grant 按鈕
選擇授權類型:All Users、Group of Users 和 Specific USer,下面設置為最后一種方式
11.完成以上工作后,點擊Generate WSDL按鈕來生成集成接口對應的Web服務WSDL信息
成功完成后可以看到如下Web服務的狀態為:Generated
點擊 Deploy 按鈕來發布Web服務到中間服務器中,發布后Web服務的狀態為: Deployed
-----------------------------------------------
12.如果在測試中報java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: For input
string: ""
執行以下操作:
cd $ORA_CONFIG_HOME/10.1.3/j2ee/forms/config/oc4j.properties
注釋代理服務
#http.proxyHost=
#http.proxyPort=
重啟服務
13.如果填寫信息提交后會報出 wsse:FailedAuthentication 這樣的錯誤信息,這是由于提交的Soap消息中并沒有包括Oracle
Integration Repository要求的AOL安全認證,即沒有Oracle EBS系統要求的用戶、職責、安全組和語言信息,也就是沒有進行Oracle
EBS的環境初始化
wsdl文件路徑/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343
此問題可以通過修改wsdl文件來解決
01刪除CUX_SUPPLIER_PKG_soap.wsdl中
element name="SOAHeader"
complexType
sequence
element name="Responsibility" minOccurs="0" type="string"/
element name="RespApplication" minOccurs="0" type="string"/
element name="SecurityGroup" minOccurs="0" type="string"/
element name="NLSLanguage" minOccurs="0" type="string"/
element name="Org_Id" minOccurs="0" type="string"/
/sequence
/complexType
/element
02刪除CUX_SUPPLIER_PKG_soap_http.wsdl中
element name="SOAHeader"
complexType
sequence
element name="Responsibility" minOccurs="0" type="string"/
element name="RespApplication" minOccurs="0" type="string"/
element name="SecurityGroup" minOccurs="0" type="string"/
element name="NLSLanguage" minOccurs="0" type="string"/
element name="Org_Id" minOccurs="0" type="string"/
/sequence
/complexType
/element
修改后點擊invoke,如出現“處理服務時出錯”,進行如下處理
/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343/F_INSERT_APPROVE_RESULT.wsdl
查看這個文件的內容
jcaperation
PackageName=”ORACLESEEKER_DEPT_PKG”
ProcedureName=”ADD_DEPARTMENT”
IRepInternalName=”PLSQL:ORACLESEEKER_DEPT_PKG:ADD_DEPARTMENT”
IRepOverloadSeq=”1〃
InteractionSpec=”oracle.tip.adapter.apps.AppsStoredProcedureInteractionSpec”
/jcaperation
這個要看你用的哪一種ERP,如果是EBS,接口表參考如下信息:
AP接口表:
AP_INVOICES_INTERFACE
AP_INVOICE_LINES_INTERFACE
涉及的請求:
應付款管理系統開放接口導入
涉及案例: 運費導AP、費用導AP
PO接口表:
申請:
PO_REQUISITIONS_INTERFACE_ALL
涉及請求:
導入申請
采購:
po_headers_interface
po_lines_interface
po_distributions_interface
涉及的請求:
Import Standard Purchase Orders
接收:
rcv_headers_interface
rcv_transactions_interface
mtl_transaction_lots_interface
涉及請求:
接收事務處理處理器
涉及案例:運費導采購、MRP導申請、POP導申請
GL接口表:
gl_interface
涉及案例:ADI導日記賬、返利導日記賬
FA接口表:
fa_mass_additions
FA API:
增加fa_addition_pub.do_addition
修改:fa_adjustment_pub.do_adjustment
fa_asset_desc_pub.update_desc
涉及案例:電子資產清理
庫存事務接口:mtl_transactions_interface
1)一般用來做各類雜收發、Cost Update,對于和業務有關的事務一般不建議使用,比如SO發貨,如果自己發會導致Workflow沒有往下走
2)成功導入之后運行Cost Manager生成會計分錄
3)平均成本更新也通過此接口;如果該Item沒有交易,則成本數據不會進入cst_item_costs
固定資產接口:fa_mass_additions
1)fa_mass_additions這個表有幾個Trigger需要注意;會自動去插其他表,刪除的時候也是
2)折舊方法接口表無法給,而是自動從Category繼承下來,所以導入之后需要Update表
3)不是通過AP引過來的FA,是沒有Source Lines信息的;如果需要,可以通過插表來實現
4)數據進接口之后從Navigator:Mass Additions/Post Mass Additions提交請求集,這樣會有個報表顯示導入結果。不過我的測試程序可以直接提交請求集。
總賬分錄接口:gl_interface
1)最簡單的接口,不說了
應付發票接口:ap_invoices_interface/ap_invoice_lines_interface
1)Profile AP: Use Invoice Batch Controls定義是否使用批控制
2)僅支持CREDIT/STANDARD;注意金額正負,小于零用CREDIT,大于零用STANDARD
3)PREPAYMENT/DEBIT/EXPENSE REPORT/MIXED不支持,先用CREDIT或者STANDARD,進去之后再Update正式表ap_invoices_all
4)導入之后可再調用請求Invoice Validation自動Validate發票
應收發票接口:ra_interface_lines_all/ra_interface_salescredits_all
1)幾個接口表之間的關系和其他接口不同,不是通過ID關聯,而是通過描述性彈性域Line Transaction Flexfield定義
2)接口給ID還是Name,要根據Transaction Source上的定義,不能隨便給
3)ra_interface_distributions_all這個表可以不插,讓系統自動生成分配行
4)如果沒有銷售員,可以提供一條ID=-3的No Sales Person記錄給接口。這個要看AR System Option Miscellaneous上的設置是否要求銷售員
應收收據接口:ar_interim_cash_receipts_all
1)AR Receipt標準接口是Lockbox,需要預先定義Format;Oracle根據Format定義把接口數據寫到ar_interim_cash_receipts_all;我們可以跳過第一步,直接把數據插入到ar_interim_cash_receipts_all,不過Batch需要我們直接插表
2)在Batch界面查看:數據在ar_interim_cash_receipts_all的Batch Type為 Mannual Quick
3)Batch的Currency取本位幣即可,收據用需要的貨幣
客戶導入接口:ra_customers_interface_all/ra_customer_profiles_int_all/ra_contact_phones_int_all
1)要導Customer,ra_customer_profiles_int_all需要有記錄
2)orig_system_party_ref相同的話,Customer_Number不同,可以在一個Party下建多個Customer
3)ship to的bill_to_orig_address_ref可用bill to的orig_system_address_ref,這樣可以自動關聯
4)需要打Patch 3606744和3558213,否則Statement和Dunning類型的Site Use導不進去
5)不是所以字段都可以從Interface進去;以HZ_Cust_Site_Uses_all為例,導入之后需要直接Update如下比較重要的字段:payment_term_id、order_type_id、warehouse_id、territory_id、primary_salesrep_id
6)更新HZ_Cust_Site_Uses_all的Primary_flag的時候注意同時更新hz_cust_acct_sites_all的bill_to_flag和ship_to_flag為P(Primary)或者Y
銷售訂單接口:oe_headers_iface_all/oe_lines_iface_all/oe_actions_iface_all
1)整張Close的訂單可以通過接口表;Close的訂單,Oracle幾乎是直接插表;其他的要做很多驗證
2)部分行Close的訂單,可以給行Assign一個僅負責Close(Enter/Fulfill/Close/End)的工作流,這樣Workflow Back Ground Process起來之后就會Close
3)非Close的訂單行號不能重復,所以接口表我們給空;如果有需要待導入后Update Line表即可
4)數量正負要與Line Type的類型一致,正的對Order,負的對Return,否則接口報Inventory Item錯誤
5)訂單號更新需要更新幾個表:oe_order_headers_all/wsh_delivery_details/mtl_sales_orders
6)訂單行在收貨或者發貨不足的情況下會拆行,拆行的時候系統幾乎是拷貝所有的字段,如果碰到Unique的字段會失敗。我碰到的問題是把源系統的line_id記錄在彈性域上,并給這個彈性域建了Unique索引,導致Dropship的訂單采購部分收貨老是報錯
采購訂單接口:po_headers_interface/po_lines_interface/po_distributions_interface
1)PO接口有問題可察看錯誤信息表po_interface_errors,可以解決大部分問題
2)本位幣導入之后,頭上的Rate Date為空,需要Update表
3)quantity_billed也可以事后更新,這樣AP不會再Match過來
4)審批記錄可以直接插入表po_action_history
5)注意采購的Valdiate ORG
6)如果Item沒有Assign給Ship_to_org,會報No data found錯誤
采購接收接口:rcv_shipment_headers/rcv_transactions_interface
1)收據頭直接寫表;收據行和收貨事務通過接口
2)注意parent_transaction_id,Receive需要放空
3)PO接口有問題可察看錯誤信息表po_interface_errors,可以解決大部分問題
4)如果要再現原來的Receiving Transaction,可按如下順序分批進入接口RECEIVE、TRANSFER、ACCEPT、REJECT、DELIVER、RETURN TO RECEIVING、RETURN TO VENDOR、CORRECT
庫存項目接口:mtl_system_items_interface
1)在Master Org新增Item比較簡單,給足需要的字段即可
2)在其他組織增加Item(相當于從Master Assign后再Update),需要注意Master Org Conctrol的字段需要保持主組織的值(比較多,看mtl_item_attributes的Conctrol_level = 1)
3)在其他組織增加Item還需要注意一些字段需要保持主組織的值,否則接口會報錯,它們是create_supply_flag、dual_uom_control、buyer_id、allowed_units_lookup_code、purchasing_item_flag、internal_order_flag、inventory_item_flag
4)如果要給Item Assign Category,可以通過mtl_item_categories_interface,對應的請求是Item Category Assignment Open Interface
建議建立中間表來實現,不建議也不需要設置鍵值關聯,建了反而會有問題
最簡單的實現方式大概思路就是設計一個中間表(字段只要雙方約定好就可以了),通過dblink的方式,他們系統往中間表里插入數據,你們從中間表里獲取數據,這樣大家互不影響
起中轉作用。當其它系統軟件需要寫數據到自己系統軟件的數據庫中時,為了保證數據的安全性,一般不會直接讓它操作本系統的數據表,否則如果其它軟件的BUG導致數據庫誤操作而破壞了表中的數據,從而會導致本軟件系統出錯,所以常用處理方法是另建一個表作為接口表,其它方軟件寫數據到此表中,本方再從接口表取數到本方表中。而中間表某種時候又可以理解為,為處理某項數據時,處理后的半成品數據存放用
1, db Init.ora 參數設定.
一次讀取block
2, standar request max number
systemadminstrator/concurrent/manager/define/
3,Concurrent Program Controls setup
GL super/setup/system/control
一次讀取到內存的科目,可以把科目都讀入
每次處理的journal的數量,不寫默認是1000
指定回滾段
千萬不能指定歸檔, gl_interface_history 就是用來紀錄的.
4,GL 優化程序, 可以配合gather使用
Maintain Summary Templates Program
GL Optimizer Program
5,可以在GL_interface創建索引,指定到自己的表空間
CREATE INDEX gl_interface_n2 ON gl_interface (request_id,je_header_id,status,code_combination_id, je_line_num)
6,導入建議:
(1)盡可能的少batch
(2)關閉應該關閉的period
(3)不允許動態插入,這也會帶來開銷
7, oracle 還提供多個口導入, 這個用得人應該很少. ref: 198437.1
最后,要隨時的檢測temp,以及回滾段標空間
當前標題:oracle接口表怎么用,oracle 接口
標題網址:http://www.yijiale78.com/article36/dschdpg.html
成都網站建設公司_創新互聯,為您提供網站制作、全網營銷推廣、、企業建站、小程序開發、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯