Vous êtes sur la page 1sur 49

目 录

Oracle ERP 系统结构


1
2 Oracle ERP 系统开发 工具 及开发 过程

3 如何在 系统 中注册 表单

4 如何 在系统 中注 册报表

5 开放 式接口 / 应用 编程接 口 (API)

6 其它
1. 三层逻 辑体系结 构

客户端 应用服务器 数据库服务器

User Interface Application logic Database logic


客户端
 Use a web browser
– Netscape
– Internet Explorer
 On
– Windows
– Macintosh
 To display
– Java
– HTML
应用服 务器层
Servlet Engine
Application JSP
Server BC4J
9i 1.0.2.2.2 Login Server

Web Listener
Portal

Discoverer

Reports

Forms

Integration

Mobile
数据库服务器层 :

 8i
 9i
 9iR2
PL/SQL 运行原理
客户端 应用服务器 数据库服务器

Browser Stored
Listener
Procedures

Web
Applications
Dictionary
PL/SQL
Gateway Workflow

Data
Forms Network Traffic
Java code downloaded as needed
Applet cached on client

Browser Data
running Forms
Server
Forms Server
java applet
LAN
WAN
Dial-up
系统灵 活性
 历史记录和诊断、检查
– 用户可以看到当前记录来源于哪个表 ( 视图 ) 、哪个字段和
最后一查询的 SQL 语句等其它的信息。这对客户化开发有
极大的帮助。
 Custom.pll
– 开发人员只需客户化此文件,而不需要修改 Oracle 的标准
程序来达到客户化的目的。用户自已在 FORM 中定义字段
,来保存其它的附加信息。
 弹性域
– 用户自已在 FORM 中定义字段,来保存其它的附加信息。
 附件
– 对每一记录能附上文件、文本信息或 Web Page 的大容量
信息 .
 修改 Forms 界面的文件功能或 Show 隐藏字段
– 用户能显示自已想要显示的字段,并能调整顺序
 Export
– 用户能用 export 功能从 Form 中 export 数据到文件中。
– 通常用来转换到 Excel 文件中。
2. Oracle 开发工 具及开发 过程
-Form (See AVI File)
- Report (See AVI File)
- Discoverer (See AVI File)
- Workflow (See Following)
- PL/SQL
- FSG (Financial Statement Generator)
Oracle 开发工 具及开发 过程
-Form (See AVI File)
- Report (See AVI File)
- Discoverer (See AVI File)
- Workflow
- PL/SQL
- FSG (Financial Statement Generator)
实例 :
3. 如何在系 统中注册表 单

• 编译 表单
• 登记 表单
• 注册 功能
• 挂上 菜单 ( 子菜单 -> 菜单 )
• 分配 菜单 到职责
• 分配 职责 到用户
Compiler Forms

 .fmb 文件 上传 到 Server

 Telnet 连接 到 Server , Login In

 切换到 $AU_TOP/forms/US
Compiler Form

4.Compiler Form

f60gen <Form Name> apps/<apps password>

f60gen Module=BD_TEST.fmb userid=apps/apps


output_file=/u21/oracle/visappl/po/11.5.0/forms/US/
BD_TEST.fmx
Compiler Form

4.Compiler Form

f60gen <Form Name> apps/<apps password>


Compiler Form

5.Compiler 成功 ,Create .fmx 文件


用户权 限控制 结构

5
Óû §
4

¿ â ´ æ¹ Ü À í (Ö ° Ô ð ) ² É ¹ º ¹ Ü À í (Ö ° Ô ð ) Ï ú ÊÛ¹ ÜÀí
3
¿ â ´ æ¹ Ü À í (² Ë µ ¥ ) Ç ë Çó × é

Ï î Ä ¿ ¹ Ü À í (× Ó ² Ë µ ¥ ) Ï ÖÓÐ Á¿ Ï î Ä ¿ ³ É ± ¾² é Ñ ¯
(¿ É ² Ù × ÷ ) (² » ¿ É ² Ù × ÷ )

Ï î Ä ¿  ¼È ë Æä Ëü
(¿ É ² Ù × ÷ )

1,2
2 、登记 表单
3 、注册 功能
4.1 、挂上菜单 ( 子菜单 )
4.2 、挂上菜 单 ( 子系 统菜单 )
4.3 、挂上 菜单 ( 系统菜
单)
5 、分配 菜单到 职责
6 、分配 职责到 用户
客户化 表单的 界面
表单的 数据来 源 ( 数据
表)
表单的 数据来 源 ( 字段
)
Oracle 开发工 具及开发 过程
-Form (See AVI File)
- Report (See AVI File)
- Discoverer (See AVI File)
- Workflow
- PL/SQL
- FSG (Financial Statement Generator)
4. 如何在系 统中注册报 表

1. 注册 可执 行并发 程序
2. 注册 并发 程序
3. 挂上 请求 组
1 、注册 可执行 并发 程序
2 、注册 并发程 序
3 、挂上 请求组
运行 报表
报表 结果
Oracle 开发工 具及开发 过程
-Form (See AVI File)
- Report (See AVI File)
- Discoverer (See AVI File)
- Workflow
- PL/SQL
- FSG (Financial Statement Generator)
Oracle 开发工 具及开发 过程
-Form (See AVI File)
- Report (See AVI File)
- Discoverer (See AVI File)
- Workflow (See Following)
- PL/SQL
- FSG (Financial Statement Generator)
Workflow:
系统中 的 Workflow:
Oracle 开发工 具及开发 过程
-Form (See AVI File)
- Report (See AVI File)
- Discoverer (See AVI File)
- Workflow (See Following)
- PL/SQL
- FSG (Financial Statement Generator)
5. Oracle 开放式接口
/
应用编 程接口 (API)
开放式 接口、应用 编程接口 (API) 原理

Oracle ERP 系统

Excel Open Interface


File Table

Build in
Process Oracle
ERP

Table
Package
API
系统接 口数据表和 应用编程接口 (API) 程序

Module Interface Table/API Comments


Function
AP Suppliers PO_VENDORS No Interface
PO_VENDOR_SITES_ALL /API
PO_VEDNRO_CONTACTS
AR RA_CUSTOMERS_INTERFACE_AL Open interface
Customers L table
RA_CUSTOMER_PROFILES_INT_A
LL
AR Receipts AR_RECEIPT_API_PUB API packages
RA_CUSTOMER_BANKS_INT_ALL
ARP_PROCESS_MISC_RECEIPTS.I
NSERT_MISC_RECEIPT
GL Journals GL_INTERFACE Open interface
table
6. Oracle 使用的 其它相关 工具
-ADI (Application Desktop Integrator)
- Dataload (www.quest.com)
- Sql loader
- Fndload
- Toad
- SQL Developer
- etc…
Oracle 数据字典
全部数据字典在如下三个组
- DBA_OBJECTS - DBA_TABLES -DBA_VIEWS
- ALL_OBJECTS - ALL_TABLES -ALL_VIEWS
- USER_OBJECTS -USER_TABLES -USER_VIEWS

系统登录用户
由系统来定义、分配和控制

数据库用户
只用 APPS
Oracle 系统命名的 标准规则

Type Rules Example


Table English Plural, AP_INVOICES
start with module
View name
<table name>_V AP_INVOICES_V

Unique Index <table name>_U AP_INVOICES_U1


<n>
Non-Unique <table AP_INVOICES_N1
Index name>_N<n>
Sequence <table name>_S AP_INVOICES_S
generator
Trigger <table_name>_<ev AR_CUSTOMER_PROFILES_B
ent> RU
Oracle 系统 - 数据库触发 器
CREATE OR REPLACE TRIGGER  IF (( :new.credit_rating    != 
ar_customer_profiles_bru :old.credit_rating )                    
/* $Header: arplt26.sql 70.4 96/10/29 15:04:58  OR
porting ship $  */       ( :new.credit_rating is null and 
BEFORE UPDATE ON "AR"."AR_CUSTOMER_PROFILES" :old.credit_rating is not null )  OR
FOR EACH ROW       ( :new.credit_rating is not null and 
:old.credit_rating is null )) THEN
DECLARE
     CreditRating        := 
  CreditHold      varchar2(1)  := null;
:old.credit_rating;
  RiskCode        varchar2(30) := null;
      ChangesMade         := 'Y';
  CreditRating    varchar2(30) := null;
  END IF;
  ChangesMade     varchar2(1)  := 'N';
IF ChangesMade          = 'Y' THEN
BEGIN
     INSERT INTO ar_credit_histories
  IF (( :new.credit_hold    != 
:old.credit_hold )                    OR        (credit_history_id,  last_updated_by, 
last_update_date, created_by, 
      ( :new.credit_hold is null and  creation_date,
:old.credit_hold is not null )  OR
       customer_id,  on_hold,  hold_date, 
      ( :new.credit_hold is not null and  credit_rating,  risk_code, site_use_id)
:old.credit_hold is null )) THEN
     VALUES
     CreditHold          := :old.credit_hold;
       (ar_credit_histories_s.nextval, 
     /* IF FIELD VALUE OF credit_hold IS  :old.last_updated_by, 
CHANGED THEN SET */ :old.last_update_date, 
     /* THE VALUE OF THIS VARIABLE TO Y         :old.last_updated_by,
           */        
     ChangesMade         := 'Y'; :old.last_update_date,:old.customer_id, 
  END IF; CreditHold, decode(CreditHold, 'Y', 
  IF (( :new.risk_code    != :old.risk_code )   :old.last_update_date, null ), 
                  OR CreditRating,  
RiskCode,:old.site_use_id);
      ( :new.risk_code is null and 
:old.risk_code is not null )  OR   END IF;
      ( :new.risk_code is not null and  END;
Oracle Application – Stored Procedure
Client Server

S1 S1
S2 S2
S3 S3 Oracle
S4 S4

Abc
Oracle
Abc(S1, S2, S3, S4)
Q&A

Vous aimerez peut-être aussi