變成盡量讓其他的系統廠商去思考如何和 ERP 系統來整合,
但越來越多系統的話, 不就有越來越多的整合方式, 在管理上或問題釐清就變的複雜了.
在整合外部多種系統後發現, 比較容易和確實的就屬中介 Table 是最好的方式,
可以避免外部的系統直接寫入 ERP 的資料庫, 可以建立存取權限.
也讓系統整合能夠有足夠資料去稽核正確性.
再來就是系統整合的架構囉~
之後要取得 ERP 系統的資料, 就可以直接連到資料庫去 Select .
如果是要存入或異動資料到 ERP Database, 需要透過中介 Table 方式進行,
外部系統先寫入到中介 DB 的 Table (需先跟廠商溝通好整合的資料 Schema) ,
然後再由 ERP 用 cron job 或是手動的方式執行程式去建立或異動資料,
確認資料異動正確或錯誤, 回寫狀態碼給中介 DB 的 Table,
外部程式再去 Check 整合資料是否完整和正確.
整合系統讓權責能夠區分清楚, 避免以後維護和責任確認可以比較清楚和容易.
以 APS 的範例如下:
1. 和 APS 系統整合, 所以建立在 Oracle 建立 aps 的帳號名稱.
使用 sys 帳號和 sysdba 方式登入
conn sys/sys_dsc as sysdba;
--create user
CREATE USER aps
IDENTIFIED BY aps
DEFAULT TABLESPACE DBS1
TEMPORARY TABLESPACE TEMP
PROFILE TIPTOPGP
ACCOUNT UNLOCK;
-- 2 Roles for aps
GRANT RESOURCE TO aps;
GRANT TIPTOPGP TO aps;
ALTER USER aps DEFAULT ROLE ALL;
-- 5 System Privileges for aps
GRANT UNLIMITED TABLESPACE TO aps;
GRANT CREATE VIEW TO aps;
GRANT CREATE TABLE TO aps;
GRANT CREATE SYNONYM TO aps;
GRANT CREATE SESSION TO aps;
-- 1 Object Privilege for aps
GRANT SELECT ON SYS.V_$SESSION TO aps;
2. 建立 aps 所要讀取 ERP 的 Table 資料 readonly view .
我假設是全部 DS 裡面的 table 都可以讀取.
select 'CREATE OR replace view aps.' || table_name || ' as
select * from ds.' || table_name || ' with read only;'
from dba_tables
where owner = 'DS'
order by 1
再把 SQL 執行後的資料, 全部複製再執行.
或一個一個 table 加上去
CREATE OR replace view aps.XXX_FILE as select * from ds.XXX_FILE with read only;
3. 在 aps Database 中建立中介 Table 的 Schema .
APS 會回寫工單和請購單, 所以我就叫 aps_sfb_file 和 aps_pml_file .
4. 使用者完成外部 APS 系統後, 回寫工單和請購單的資料到 ERP 系統,
新增 APS 接口的程式, 去讀取中介 Table 和產生 ERP 的單號 .
完成後回寫狀態到中介 Table .
沒有留言:
張貼留言