ERP開發(fā)培訓(xùn)ppt課件_第1頁
ERP開發(fā)培訓(xùn)ppt課件_第2頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、ERP開發(fā)技術(shù)培訓(xùn)培訓(xùn)顧問:劉天來.我們的目的想讓我們看到什么、怎樣去看我們看到的怎樣去用我們怎樣去開發(fā)怎樣樣處理問題掌握數(shù)據(jù)流而反掌握業(yè)務(wù)流程.主 要 內(nèi) 容ERP客戶化開發(fā)的內(nèi)容和工具ERP客戶化開發(fā)的架構(gòu)概述開發(fā)規(guī)范SQL言語FORM開發(fā)技術(shù)PLSQLDev開發(fā)技術(shù)心得領(lǐng)會(huì).ERP客戶化開發(fā)的內(nèi)容和工具內(nèi)容:包含了前臺(tái)顯示的FORM、后臺(tái)懇求。其中懇求包含了: PKG、PROCEDURE、FUNCTION、SQL*PLUS。FORM:它是開發(fā)可視化界面,開發(fā)前臺(tái)處置界面,如:數(shù)據(jù)維護(hù) 、方案輸入、指示產(chǎn)生等等。PLSQLDEV:它是一種后臺(tái)處置工具,主要是操作數(shù)據(jù)庫和開 發(fā)、 PKG、P

2、ROCEDURE、FUNCTION、 SQL*PLUS , 如報(bào)表、后臺(tái)懇求處置等等。其中地?cái)?shù)據(jù)庫操作語 言都是規(guī)范的SQL。.ERP客戶化開發(fā)的構(gòu)架概述FROM 開發(fā)是基于B/S構(gòu)造,分為客戶端、運(yùn)用效力器、數(shù)據(jù)庫效力器。它們的關(guān)系如以下圖。開發(fā)人員需求把開發(fā)的FORM上傳到運(yùn)用效力器指定的目錄里,經(jīng)過TELNET遠(yuǎn)程編譯,才干生效運(yùn)用。目前我們開發(fā)環(huán)境的目錄為:/u03/dev/appdev/devappl/xxmfg/11.5.0/forms/ZHS在開發(fā)FORM過程需求本地編譯檢查錯(cuò)誤,那么FORM就只需求銜接數(shù)據(jù)庫就行了。 PLSQL開發(fā)是基于數(shù)據(jù)庫的開發(fā),因此只需銜接數(shù)據(jù)庫,直接在

3、數(shù)據(jù)庫服務(wù)器上開發(fā)。 數(shù)據(jù)庫效力器.開發(fā) 規(guī)范 ERP是一個(gè)融入先進(jìn)管理理念的企業(yè)級(jí)系統(tǒng),可它畢竟是一個(gè)計(jì)算機(jī)軟件系統(tǒng),一樣存在客戶化、維護(hù)、晉級(jí)。為了在客戶化過程中能團(tuán)隊(duì)開發(fā)、程序易讀可維護(hù)、好管理可晉級(jí),必需有一套可行的開發(fā)規(guī)范。經(jīng)過公司開發(fā)人員幾年實(shí)施ERP的心得,我們得出了具有長安特征的ERP開發(fā)規(guī)范,見附件。.SQL言語DML語句:SelectInsertUpdateDeleteDDL語句:CREATEALTERMODIFYDROP事務(wù)處置語句:COMMITROLLBACK.SELECTSELECT語句主要用于查詢、顯示、跟蹤、分析數(shù)據(jù),獲得數(shù)據(jù)制定報(bào)表,它的格式: Select c

4、ol sum(col) from table/view where condition group by col having condition order by asc/desc例如:.SELECT例子 select t.attribute2,count(t.attribute2),sum(t.quantity) from rcv_transactions t where anization_id=176 and t.attribute2 is not null group by t.po_header_id,t.attribute2 having count(t.attribu

5、te2)1 .INSERTINSERT語句主要用于向一個(gè)表里添加數(shù)據(jù),它的格式: insert into table(col) values(value) 或insert into table(col) select語句 例如: .INSERT例子 客戶Example1: insert into hb_exp_emp(emp_id,emp_name,dep_id,salary)values(hb_exp_emp_s.nextval,劉天來,10,2500)Example2: insert into hb_exp_empselect *from hb_exp_emp_copy .UPDATE 客

6、戶UPDATE語句主要用于更新一個(gè)表的數(shù)據(jù),它的格式: update table set col=value where condition .UPDATE例子 客戶Example: update hb_exp_emp set dep_id=20 where dep_id=10 .DELETEDELETE語句主要用于刪除一個(gè)表得數(shù)據(jù),它的格式: delete from table where condition .DELETE例子Example: delete from hb_exp_emp where dep_id=20 .CREATECREATE語句主要用于創(chuàng)建數(shù)據(jù)庫對(duì)象,它的格式: cr

7、eate table name(col datatype, ) tablespace TABLESPACE -XXMFGD storage ( ); alter table XXMFG.HB_EXP_EMP add constraint HB_EXP_EMP_U1 primary key (EMP_ID); create view name as select 語句; .CREATEcreate view name as select 語句; create synonym name for ; create sequence name minvalue value ma

8、xvalue value start with value increment by value nocache cycle;.CREATE例子Example1:create table HB_EXP_EM( EMP_ID NUMBER not null, EMP_NMAE VARCHAR2(80), DEP_ID NUMBER, SALARY NUMBER) tablespace XXMFGD pctfree 10 pctused 40 initrans 1 maxtrans 255 storage (initial 64K minextents 1 maxextents unlimited

9、);alter table HB_EXP_EMP add constraint HB_EXP_EMP_U1 primary key (EMP_ID); .CREATE例子Example2:create or replace view HB_EXP_EMp_v as select t.emp_name,t.salary from hb_exp_emp t;Example3: create synonym hb_exp_emp for xxmfg.hb_exp_emp;Example4: create sequence XXMFG.HB_EXP_EMP_Sminvalue 1maxvalue 99

10、9999start with 227021increment by 1nocachecycle;.DROPDORP語句主要用于刪除數(shù)據(jù)庫對(duì)象,它的格式: drop table/view/synonym/ sequence name .DROP例子Example: drop table hb_exp_emp .事務(wù)處置語句Transaction control:commit /rollback; Example:銀行轉(zhuǎn)帳begin:account1 2000 -account2 3000 | | 2000-1000 3000 | |( rollback) 1000 3000+1000 | | 1

11、000 4000 (commit/rollback) .FROM開發(fā)技術(shù) FROM(表單)的開發(fā)是可視化開發(fā),其主要內(nèi)容:銜接數(shù)據(jù)庫Windows(窗口)Canvas(畫布)Block(數(shù)據(jù)塊)Item(數(shù)據(jù)項(xiàng))Trigger(觸發(fā)器)Lovs(下拉列表選值)FORM例子上傳編譯,定義表單、功能、菜單.銜接數(shù)據(jù)庫配置數(shù)據(jù)庫銜接別名:查詢form的home目錄。找到設(shè)置銜接文件ORACLE_HOMEnet80admintnsnames.txt。輸入設(shè)置值:DEV = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =

12、 3)(PORT = 1524) ) (CONNECT_DATA = (SERVICE_NAME = DEV) ) )4.銜接格式:apps/passworddev.WINDOWS它是一個(gè)組件容器,表單的入口處,一個(gè)FORM里必需至少有一個(gè)WINDOW,一個(gè)WINDOW至少要關(guān)聯(lián)一個(gè)CANVAS。它的屬性主要是限定FORM界面的大小、顯示位置、提示信息等等。 .CANVAS它是也一個(gè)組件容器,它裝載一切ITEM物理屬性,一個(gè)FORM里必需至少有一個(gè)CANVAS,它必需關(guān)聯(lián)一個(gè)WINDOWS,它和WINDOWS一同成為FORM真正的顯示界面。 .BLOCKBlock(數(shù)據(jù)塊)主要

13、用于銜接數(shù)據(jù)對(duì)象和裝載item,一個(gè)block只能銜接一個(gè)數(shù)據(jù)對(duì)象,數(shù)據(jù)對(duì)象要操作的數(shù)據(jù)列賦值給item,其中銜接view的 block普通只能顯示,假設(shè)要做添加、更新、刪除動(dòng)作,那么要寫block級(jí)trigger。Block的屬性主要是設(shè)置數(shù)據(jù)操作和顯示屬性.ITEMItem(數(shù)據(jù)項(xiàng))包含了一切詳細(xì)的操作組件,如:button、text、list等等,這些組件承繼了不同的類。它必需包含在一個(gè)canvas和一個(gè)block里。.TRIGGERTrigger(觸發(fā)器)就是事務(wù)觸發(fā)器,它是指在什么情況想干什么,如:在text輸入完數(shù)量后,想驗(yàn)證數(shù)量能否超出規(guī)定數(shù)量,那就需求在此text加上when_

14、validate_item觸發(fā)器: if :text規(guī)定數(shù)量 then 報(bào)警處置; end if; trigger分為form級(jí)、block級(jí)、item級(jí)。 Form級(jí)trigger是對(duì)整個(gè)form控制,如:PRE_FORM觸發(fā)器 FND_STANDARD.FORM_INFO($Revision: 115.11$, XXINF502, XXMFG, $Date: 2005/03/08 17:20$, $Author: 鄧世杰$); app_standard.event(PRE-FORM); app_window.set_window_position(XXINF502, FIRST_WINDO

15、W); FND_ORG.CHOOSE_ORG; .TRIGGERblock級(jí)trigger只對(duì)數(shù)據(jù)對(duì)象控制,如:WHEN-NEW-BLOCK-INSTANCE觸發(fā)器IF :XXINF502_MAIN.SOURCE_TYPE = PO THENSET_ITEM_PROPERTY(WIP_SEGMENT, UPDATE_ALLOWED, PROPERTY_FALSE);SET_ITEM_PROPERTY(CLASS_CODE_T, UPDATE_ALLOWED, PROPERTY_FALSE);ELSIF :XXINF502_MAIN.SOURCE_TYPE = WIP THENSET_ITEM_

16、PROPERTY(PO_SEGMENT_T, UPDATE_ALLOWED, PROPERTY_FALSE);ELSIF :XXINF502_MAIN.SOURCE_TYPE = MANUAL THENSET_ITEM_PROPERTY(PO_SEGMENT_T, UPDATE_ALLOWED, PROPERTY_FALSE);SET_ITEM_PROPERTY(WIP_SEGMENT, UPDATE_ALLOWED, PROPERTY_FALSE);SET_ITEM_PROPERTY(CLASS_CODE_T, UPDATE_ALLOWED, PROPERTY_FALSE);END IF;.

17、TRIGGERitem級(jí)只對(duì)數(shù)據(jù)項(xiàng)控制,如:WHEN-VALIDATE-ITEM觸發(fā)器IF :QUERY.CARD_NUMBER IS NOT NULL THENBEGIN SELECT t.card_id into :QUERY.CARD_ID FROM XXINV_MATERIAL_CARDS T WHERE T.CARD_NUMBER=:QUERY.CARD_NUMBER;EXCEPTION WHEN NO_DATA_FOUND THEN FND_MESSAGE.DEBUG(物料卡不正確,請輸入正確的物料卡!); return; end ;end if; .LOVSLOVS(列表選擇值)

18、:它不同list,list值都是人為輸入的固定值,而lovs它的列表值來源于數(shù)據(jù)庫的數(shù)據(jù)對(duì)象,用select語句獲得,它是動(dòng)態(tài)的值。它的前往值必需前往給item。如: Select pha.segment1,pha.po_header_id From po_headers_all pha where pha.type_lookup_code in (BLANKET,STANDARD).程序單元可以在form內(nèi)部調(diào)用的一些程序,它包含:PKG、PROCEDUER、FUNCTION. .DB LinksOracle DB數(shù)據(jù)倉庫開發(fā)FORM例子 1、翻開form模版。途徑ORACLE_HOMEFO

19、RMS60TEMPLATE.fmb。2、新增windows 其屬性設(shè)置:稱號(hào)為W_TEST,屬性類為WINDOW3、新增canvas其屬性設(shè)置:稱號(hào)為C_TEST,屬性類為CANVAS,窗口為W_TEST。4、新增手工block其屬性設(shè)置:稱號(hào)為B_TEST,屬性類為BLOCK,顯示的記錄數(shù)為15。5、根據(jù)數(shù)據(jù)塊導(dǎo)游銜接數(shù)據(jù)對(duì)象,并選擇要取的數(shù)據(jù),同時(shí)自動(dòng)新增ITEM。6、設(shè)置ITEM屬性:屬性類為TEXT_ITEM,畫布為C_TEST。7、新增手工block其屬性設(shè)置:稱號(hào)為OPERATION,屬性類為BLOCK,顯示的記錄數(shù)為1。8、新增ITEM其屬性設(shè)置:稱號(hào)為PUSH_TEST,項(xiàng)類型

20、為按鈕,屬性類為BUTTON,畫布為C_TEST。9、添加參數(shù):ORG_ID為數(shù)據(jù)型、長度為5,ORG_CODE為字符型、長度為40,ORG_NAME為字符型、長度為80。 .DB LinksOracle DB數(shù)據(jù)倉庫開發(fā)FORM例子 10、寫form的PRE-FORM觸發(fā)器: FND_STANDARD.FORM_INFO($Revision: 115.11$, XXINF502, XXMFG, $Date: 2005/03/09 17:20$, $Author: 信息中心 劉天來$); app_standard.event(PRE-FORM); app_window.set_window_p

21、osition(XXINF001_TEST, FIRST_WINDOW); FND_ORG.CHOOSE_ORG;11、寫form的WHEN-NEW-FORM-INSTANCE觸發(fā)器 APP_STANDARD.EVENT(WHEN-NEW-FORM-INSTANCE); APP_WINDOW.SET_TITLE(W_TEST,:PARAMETER.ORG_code); .DB LinksOracle DB數(shù)據(jù)倉庫開發(fā)FORM例子 12、修正程序單元里的APP_CUSTOM*包體 if (wnd = ) then app_window.close_first_window; elsif (wnd

22、 = ) then -defer relations -close related windows null; elsif (wnd = ) then -defer relations -close related null; end if; 改為: if wnd = W_TEST then app_window.close_first_window; end if;13、在按鈕 PUSH_TEST 的WHEN-BUTTON-PRESSED觸發(fā)器里: go_block(B_TEST); execute_query; .DB LinksOracle DB數(shù)據(jù)倉庫上傳編譯,定義表單、功能、菜單 上

23、傳IP:用戶/密碼:appdev/appdev88上傳目錄:/u03/dev/appdev/devappl/xxmfg/11.5.0/forms/ZHStelnet ip:用戶/密碼:appdev/appdev88編譯目錄:/u03/dev/appdev/devappl/xxmfg/11.5.0/forms/ZHS編譯命令:ft name(f60gen apps/password module=name)定義表單、功能、菜單: 表單功能菜單 .PLSQLDEV開發(fā)技術(shù)PROCEDUREFUNCTIONPKG編寫reports定義后臺(tái)懇求FORM調(diào)用懇求.PROC

24、EDUREProcedure格式:CREATE OR REPLACE PROCEDURE name (parameter name out datatype, parameter name in datatype, ) is variable datatype; Begin 操作;End name;例如: .PROCEDURE例子Create or replace procedure first (p_display out number, p_organization_id in number, p_material_card in varchar2) is x_transaction_ty

25、pe varchar2(80):=RECEIVE;Create or replace procedure firstBegin select sum(transaction_quantity) into p_display from rcv_transactions t where aniztion_id= p_organization_id and t.attribute2= p_material_card and t.transaction_type= x_transaction_type ;End first; .FUNCTIONFUNCTION格式:CREATE OR REPLACE FUNCTION fun_name( p_id NUMBER, p_unit VARCHAR2, p_name VARCHAR2) RET

溫馨提示

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

評(píng)論

0/150

提交評(píng)論