Oracle-ERP11i表结构、API接口笔记

Oracle-ERP11i表结构、API接口笔记
Oracle-ERP11i表结构、API接口笔记

Oracle-ERP11i(OPM)

—表结构、API接口笔记

Author:Jarwang(王重东)

Create Date:July5th,2008

Update Date:November20th,2010

Control No:

Current Edition: 1.0

声明:本文可以任意免费转载、复制、传播。但您务必保持其完整性!If you copy this document,you ought to keep the document completely.

Document Control

Modify Record

Date Author Version Modified reference

July5th,2008jarwang 1.0

Approved

Name Position signature

Distribute

Num Name Location&Position

1

2

3

4

Index

Document Control2

Modify Record2

Approved2

Index3

Preface6

Application Developer7

Value Set7

Data Table7

Lookups7

Data Table7

E-R Diagram7

Frequently-Used SQL8

Query Lookup8

Query ValueSet8

Values Set8

Data Table8

E-R Diagram9 OPM Process Execution10

Formula10

Data Table10

E-R Diagram10

Recipe10

Data Table10

E-R Diagram11

Production Document11

Data Table11

E-R Diagram12

Frequently-Used SQL12

Frequently-Used API12

Create Batches API13

Batches completedAPI16 OPM Inventory17

Item Master17

Data Table17

E-R Diagram17

Organization18

Data Table18

E-R Diagram18

Inventory Quantity19

Data Table19

Frequently-Used SQL19

Query OPM Organization19

Query Lot Status20

Frequently-Used API20

OPM Adjust Immediate API20

OPM Move Immediate API22 Human Resource25

HR Employee25

Frequently-Used API25

Create HR Employee API25

Create HR Employee API--FULL27 Purchase Order33

Requisition33

Data Table33 E-R Diagram33 Purchase Document33 Data Table33 E-R Diagram34 Quotation34 Data Table34 Receiving35 Data Table35 E-R Diagram35 Position Hierarchy35 Data Table35 E-R Diagram36 Frequently-Used SQL36 PO relation ITEM36 Query PO37 Query PO Quotation40 Frequently-Used API40 Create PO By Interface40 Order Management41 Sales Orders41 Data Table41 E-R Diagram41 Deliver41 Data Table41 E-R Diagram42 Frequently-Used API42 Create Sales Order API43 Frequently-Used SQL47 Query Order47 Query Profit Center50 Query Monthy Sale Amount50 Workflow52 Workflow User&Role52 Data Table52 E-R Diagram53 General Legder55 Journals55 Data Table55 E-R Diagram55 Frequently-Used SQL56 Query GL56 OPM GL drilldown PO58 Account Receivable59 Customer59 Data Table59 E-R Diagram59 Transaction60 Data Table60 E-R Diagram61 Receipts61 Data Table61 E-R Diagram62 Frequently-Used SQL62 Query Customer62 Query Customer Address63 Frequently-Used API63 Create AR Invoices API63 Create AR Receipts API63 Apply AR Receipts API65 Accounts Payable67

Supplier67 Data Table67 E-R Diagram67 Invoices67 Data Table67 E-R Diagram68 Payment68 Data Table68 E-R Diagram69 Bank69 Data Table69 E-R Diagram69 Frequently-Used SQL70 Query Vendor Liability70 Query Unpaid Prepayment70 Query UnApplied Prepayment70 Frequently-Used API74 Create AP Invoice Interface table74 OPM Cost75 Cost Event75 Data Table75 E-R Diagram75 Cost Detail76 Data Table76 Frequently-Used SQL76 Query Cost77 Subledger Query-PO78 System83 System Administrator83 Frequently-Used API83 Create AR Invoices API83 Frequently-Used SQL83 Query Request83 Other Notes85

Preface

Oracle ERP本身异常庞大,因此Oracle ERP的表结构也异常庞大。使用下述语句,可以得到Oracle ERP的表数量有1W多(此方法不精确,但也可以说明表的庞大)。

select count(*)from dba_tables dt where dt.tablespace_name='APPS_TS_TX_DATA'

另外,EBS大多数表都没有Primary Key,Foregin Key,并且大多数表都会有100多列。熟悉EBS全部的表结构有点不太可能,事实上要画出Oracle ERP完整E-R图几乎不可能。对于常用模块的表结构还是得掌握的,否则不熟悉表结构,对Oracle ERP进行二次开发,就无异于难上加难。

本文是基于Oracle EBS11.5.10.2。

参考文档:https://www.360docs.net/doc/604362164.html,/pls/etrm/etrm_search.search

https://www.360docs.net/doc/604362164.html,/technology/documentation/applications.html

Application Developer

Value Set

Data Table

值集表

NO.TableName Description Note

1APPS.FND_FLEX_VALUE_SETS值集题头表

2APPS.FND_FLEX_VALUES值集行明细表视图:

FND_FLEX_VALUES_VL 3APPS.FND_FLEX_VALUES_TL值集多语言表

Lookups

Data Table

EBS中所谓Lookups主要是指提供给LOV组件作为数据源。例如:AP发票的Invoice Type。主要

涉及二张表:APPLSYS.FND_LOOKUP_TYPES和APPLSYS.FND_LOOKUP_VALUES,由于EBS

的多语言,所以还有一张多语言表APPLSYS.FND_LOOKUP_TYPES_TL。

另外Lookups定义时分为系统级、用户级、可扩展级。对于系统级Lookups是不允许修改的。

NO.TableName Description Note

1APPLSYS.FND_LOOKUP_TYPES查找代码题头表

2APPLSYS.FND_LOOKUP_VALUES查找代码行明细表

3APPLSYS.FND_LOOKUP_TYPES_TL查找代码多语言表

E-R Diagram

Lookups关联E-R图

Frequently-Used SQL

Query Lookup

根据类别查找Lookup的值

select FLV.LOOKUP_CODE,FLV.MEANING,FLV.DESCRIPTION

from APPLSYS.FND_LOOKUP_VALUES flv

where flv.lookup_type='VENDOR TYPE'--查找代码类别

and language=userenv('LANG');

Query ValueSet

Values Set

Data Table

EBS值集定义表

NO.TableName Description Note

1APPLSYS.FND_FLEX_VALUE_SETS值集表

2APPLSYS.FND_FLEX_VALUES_TL值表一般使用视图

FND_FLEX_VALUES_VL 3APPLSYS.FND_FLEX_VALUES值多语言表

E-R Diagram 关联E-R图

OPM Process Execution

Formula

Data Table

配方关联表:

NO.TableName Description Note

1GMD.FM_FORM_MST_B配方题头表Formula_NO与GMI.IC_ITEM_MST_B的

ITEM_NO实现弱关联。

2GMD.FM_FORM_MST_TL配方题头多语言表

3GMD.FM_MATL_DTL配方行明细LINE_TYPE字段标识出配料(-1)、副产品(2)、

产品(1)

E-R Diagram

配方关联E-R图

Recipe

Data Table

处方关联表:

NO.TableName Description Note

1GMD.GMD_RECIPES_TL处方题头多语言表

2GMD.GMD_RECIPES_B处方题头表

3GMD.GMD_RECIPE_ROUTING_STEPS处方步骤数量表

4GMD.GMD_RECIPE_PROCESS_LOSS处方组织表

5GMD.GMD_RECIPE_VALIDITY_RULES处方有效性规则表不同工厂的处方生产规则。通过有

效性规则来创建工单。

6APPS.GMD_ROUTINGS_VL工艺路线一般使用此视图

E-R Diagram

处方关联E-R图

Production Document

Data Table

1.生产工单创建的业务过程:

n要加工什么?这涉及到车间任务的来源。)

n怎样加工?(用到处方,包括配方和工艺路线)

ü工艺路线:工艺路线定义了生产该产品所采用的方法或步骤。工艺路线由工序步骤组

成。

ü工序:工序是一条工艺路线的一道工序步骤。工序步骤由活动组成。

ü活动:活动就是一道工序步骤中所做的各种动作活动。

ü资源:资源指的是对应活动所使用的生产设备以及相关设备所耗用的各种费用构成(例

如水、电、汽、人工等)。

n怎样控制加工过程?(物料控制、资源控制、步骤控制)

2.生产工单关联的表(常用):

NO.TableName Note

1GME.GME_BATCH_HEADER生产工单表

2GME.GME_MATERIAL_DETAILS生产工单物料明细表。LINE_TYPE字

段标识出配料(-1)、副产品(2)、产品(1)

3GME.GME_BATCH_STEPS生产工单批步骤表

4GME.GME_BATCH_STEP_ACTIVITIES生产工单批活动表

5GME.GME_BATCH_STEP_RESOURCES生产工单批资源表

6GME.GME_INVENTORY_TXNS_GTMP生产工单分配表此表只是临时表,真正库存信息是

在gmi.ic_tran_pnd表中

E-R Diagram

生产工单关联E-R图

Frequently-Used SQL

PE模块常用SQL语句

Frequently-Used API

PE常用的API接口

Create Batches API

通过处方的有效性规则来创建生产工单。

创建生产工单

declare

l_api_version CONSTANT NUMBER:=gme_api_pub.api_version;

l_validation_level NUMBER:=gme_api_pub.max_errors;

l_init_msg_list BOOLEAN:=FALSE;

l_commit BOOLEAN:=FALSE;

x_message_count NUMBER;

x_message_list V ARCHAR2(100);

x_return_status V ARCHAR2(2);

l_msg_index_out NUMBER;

--生产工单

l_batch_header gme_batch_header%ROWTYPE;

--返回生产工单

x_batch_header gme_batch_header%ROWTYPE;

--工单数量

l_batch_size NUMBER:=10;

--单位

l_batch_size_uom V ARCHAR2(10):='箱';

--工单创建模式:RECIPE、PRODUCT、TOTAL_OUTPUT、TOTAL_INPUT

l_creation_mode V ARCHAR2(50):='PRODUCT';

--当工单超过能力计划时,是否仍要创建工单

l_ignore_qty_below_cap BOOLEAN:=TRUE;

--当然为TRUE时,不返回未分配的物料

l_ignore_shortages BOOLEAN:=FAlSE;

x_unallocated_material gme_api_pub.unallocated_materials_tab;

p_orgn_code varchar2(10);

p_recipe_validity_rule_id number;

begin

DBMS_OUTPUT.ENABLE(1000000);

APPS.FND_GLOBAL.apps_initialize

(

user_id=>1115,--ERP用户的ID

resp_id=>APPS.FND_GLOBAL.resp_id,

resp_appl_id=>APPS.FND_GLOBAL.resp_appl_id

);

--工厂

select https://www.360docs.net/doc/604362164.html,n_code

into p_orgn_code

from FND_USER fu,SY_ORGN_USR sou

where https://www.360docs.net/doc/604362164.html,er_id=https://www.360docs.net/doc/604362164.html,er_id

and https://www.360docs.net/doc/604362164.html,er_name='FELIX'--用户名

and https://www.360docs.net/doc/604362164.html,n_code='F001';--制造厂

l_batch_header.plant_code:=p_orgn_code;

--工单类型:0批、1l固定计划单

l_batch_header.batch_type:=0;

--工单计划日期

l_batch_header.plan_start_date:=sysdate+1;

--工单完工日期

l_batch_header.plan_cmplt_date:=sysdate+2;

--工单必须完工日期

l_batch_header.due_date:=sysdate+2;

--处方的有效规则

select grvr.recipe_validity_rule_id

into p_recipe_validity_rule_id

from GMD_RECIPE_V ALIDITY_RULES grvr

where grvr.recipe_id in

(select gr.RECIPE_ID

from gmd_recipes gr

where gr.RECIPE_NO='2101001001'and gr.RECIPE_STATUS=700)--已审批

and rownum=1;--如果有多个有效性规则,则要选择一个

l_batch_header.recipe_validity_rule_id:=p_recipe_validity_rule_id;

--创建生产工单

gme_api_pub.create_batch(--standard input parameters

p_api_version=>l_api_version

,p_validation_level=>l_validation_level

,p_init_msg_list=>l_init_msg_list

,p_commit=>l_commit

--stand output parameters

,x_message_count=>x_message_count

,x_message_list=>x_message_list

,x_return_status=>x_return_status

--Batch parameters

,p_batch_header=>l_batch_header

,x_batch_header=>x_batch_header

,p_batch_size=>l_batch_size

,p_batch_size_uom=>l_batch_size_uom

,p_creation_mode=>l_creation_mode

,p_ignore_qty_below_cap=>l_ignore_qty_below_cap

,p_ignore_shortages=>l_ignore_shortages

,x_unallocated_material=>x_unallocated_material);

--创建是否成功

dbms_output.put_line('x_return_status:'||x_return_status);

IF x_return_status<>FND_API.g_ret_sts_success THEN

--输出错误提示信息

if X_message_count>0then

apps.FND_MSG_PUB.Get(p_msg_index=>apps.FND_MSG_PUB.G_LAST,

p_data=>X_message_list,

p_encoded=>apps.FND_API.G_FALSE,

p_msg_index_out=>l_msg_index_out);

dbms_output.put_line('工单创建失败:'||X_message_list);

end if;

ROLLBACK;

ELSE

DBMS_OUTPUT.PUT_LINE('A new batch'||x_batch_header.batch_no||'has been created');

IF x_unallocated_material.count>0THEN

DBMS_OUTPUT.PUT_LINE('Items failing auto allocation:');

FOR i IN1..x_unallocated_material.COUNT LOOP

DBMS_OUTPUT.PUT_LINE('Line Type:'||x_unallocated_material(i).line_type||'Line No:'||x_unallocated_material(i).line_no||

'Item:'||x_unallocated_material(i).item_no||'

Allocated:'||x_unallocated_material(i).alloc_qty||

'Unalloc:'||x_unallocated_material(i).unalloc_qty||' UOM:'||x_unallocated_material(i).alloc_uom);

END LOOP;

END IF;

END IF;

EXCEPTION

WHEN OTHERS THEN

x_return_status:=FND_API.g_ret_sts_unexp_error;

x_message_count:=1;

x_message_list:=SQLERRM;

dbms_output.put_line('Have Error'||TO_CHAR(SQLCODE)||':'||SQLERRM);

END;

Batches completedAPI

实现工单完工入库界面上勾选标志。

fnd_global.apps_initialize(USER_ID=>p_user_id,

resp_id=>NULL,

resp_appl_id=>NULL);

gme_api_pub.update_line_allocation(p_Api_Version=>Gme_Api_Pub.Api_Version,

p_Validation_Level=>Gme_Api_Pub.Max_Errors,

p_Init_Msg_List=>True,

p_Commit=>True,--需要立即提交

x_Message_Count=>Apimsgcount,

x_Message_List=>Apimsgdata,

x_Return_Status=>Apireturnstatus,

p_Tran_Row=>In_Trxn,

x_Material_Detail=>Out_Details,

x_Tran_Row=>Out_Trxn,

x_Def_Tran_Row=>Out_Def_Trxn);

OPM Inventory

Item Master

Data Table

物料定义表:如果启用了OPM,就会有两个界面定义物料编码。从OPM界面录入或修改的物料,

会自动同步离散的物料定义表中。反之,就不可以啦。

NO.TableName Description Note

1GMI.IC_ITEM_MST_TL OPM物料编码多语言表一般使用IC_ITEM_MST_VL视图。

2GMI.IC_ITEM_MST_B OPM物料编码表

3GMI_ITEM_CATEGORIES OPM物料类别表

4INV.MTL_SYSTEM_ITEMS_TL离散物料编码多语言表一般使用MTL_SYSTEM_ITEMS_FVL

5INV.MTL_SYSTEM_ITEMS_B离散物料编码表如果ITEM有分配多个库存组织,

inventory_item_id会保持一致,

因此其他表关联时应加入类似条件

organization_id=123。

E-R Diagram

物料定义关联E-R图

提示:Item_id与inventory_item_id并不会相同,两都关联只能通过ITEM_NO来实现。

Organization

Data Table

OPM组织定义表:

NO.TableName Description Note

1GMA.SY_ORGN_MST_TL OPM组织语言表一般使用SY_ORGN_MST_VL视图即

可。

2GMA.SY_ORGN_MST_B OPM组织表

3HR.HR_ALL_ORGANIZATION_UNITS_TL HR组织语言表视图:

HR_ORGANIZATION_UNITS_V

4HR.HR_ALL_ORGANIZATION_UNITS HR组织表

5INV.MTL_PARAMETERS库存组织参数表

6GMA.SY_ORGN_USR OPM用户组织权限表

7hr_operating_units OU视图此视图只含有OU。

E-R Diagram

OPM组织定义关联E-R图

Inventory Quantity

Data Table

OPM库存事务处理表:

NO.TableName Description Note

1gmi.ic_tran_pnd OPM库存事务处理表如:生产入库、销售出库等2gmi.ic_loct_inv OPM库存批次表

3gmi.ic_lots_mst PM库存批次描述表

Frequently-Used SQL

OPM库存模块常用SQL语句

Query OPM Organization

查询OPM组织下的库存组织。

SELECT https://www.360docs.net/doc/604362164.html,N_CODE,https://www.360docs.net/doc/604362164.html,anization_code

FROM SY_ORGN_MST_VL som,INV.MTL_PARAMETERS mp

where https://www.360docs.net/doc/604362164.html,N_CODE=mp.process_orgn_code

and https://www.360docs.net/doc/604362164.html,N_CODE='F002'--OPM组织

Query Lot Status

查询库存组织某一批次的状态信息

SELECT loct_onhand,loct_onhand2,lot_status

FROM ic_loct_inv

WHERE item_id=284--vitem_id物料ID

AND lot_id=113934--vlot_id批次ID

AND whse_code='FT2'--vwhse_code仓库

AND location='A'--vlocation;货位

Frequently-Used API

OPM Adjust Immediate API

OPM提供了两个package,来完成OPM库存数量变动。

1、GMIPAPI.Inventory_Posting:通用的API包:如库存调整、移动等

2、GMIGAPI.Inventory_Posting:组级别的API包

例:

declare

--standdar parameters

l_api_version NUMBER:=3.0;

l_init_msg_list V ARCHAR2(150):=FND_API.G_FALSE;

l_commit V ARCHAR2(150):=FND_API.G_FALSE;

l_validation_level NUMBER:=FND_API.G_V ALID_LEVEL_FULL;

--standdar parameters

v_return_status V ARCHAR2(20);

v_msg_count NUMBER;

v_msg_data V ARCHAR2(500);

v_dummy_cnt number;

l_qty_rec GMIGAPI.qty_rec_typ;

v_ic_jrnl_mst_row ic_jrnl_mst%ROWTYPE;

v_ic_adjs_jnl_row1ic_adjs_jnl%ROWTYPE;

v_ic_adjs_jnl_row2ic_adjs_jnl%ROWTYPE;

begin

GMIGUTL.api_version:=3.0;--GMI api version must match api_version

/*1-createinventory immediate,

2-adjust inventory immediate,

3-move inventory immediate,

4-change lot status immediate,

5-change QC grade immediate,

相关主题
相关文档
最新文档