2011年3月16日

TIPTOP 和其他系統整合的架構

說到系統整合, 大家應該是惟恐不及吧~~
變成盡量讓其他的系統廠商去思考如何和 ERP 系統來整合,
但越來越多系統的話, 不就有越來越多的整合方式, 在管理上或問題釐清就變的複雜了.

在整合外部多種系統後發現, 比較容易和確實的就屬中介 Table 是最好的方式,
可以避免外部的系統直接寫入 ERP 的資料庫, 可以建立存取權限.
也讓系統整合能夠有足夠資料去稽核正確性.

再來就是系統整合的架構囉~

建立外部系統的 Oracle user account , 並在此 DB 帳號建立要讀取 ERP 的 readonly view ,
之後要取得 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 .

沒有留言:

張貼留言