可能我們的用詞不太一樣. 我開發Interface拋轉程式的順序如下.
1.會先決定Interface table 在哪邊
外部系統拋入(File or insert table)->customize Interface (Oracle )->Standard Interface (Oracle)
或是
Oracle 直接去Get 外部系統的資料(DBlink)
2.寫Valiadte 程式驗證資料正確性
1.可要求外部系統丟進來的資料須先通過驗證(驗證程式寫在外部系統)
2.先拋到customize interface ,通過我們自行客製的驗證程式在 import 到Standard interface
3.Call Standard Imoport program 去進行Standard
--------------------------------------------------------------------------
另外你說的寫batch调用多个子程序,指的是說寫Package裡面再call concurrent嗎?這是一種方法,
如果你的客戶要用請求集,那麼你就去掛Concurrent set就好,這樣你還比較省工
--------------------------------------------------------------------------
3.需要建零时表吗
你要建立His的備份表格,以免以後資料有問題死無對證,通常保險的話是會開兩個Table,將資料同步拋入兩個Table
Ex. AP_IMPORT--讀取完後殺掉,中間每個階段的過程,可以用FLAG欄位去控制
AP_IMPORT_HIS --永久保留
這樣的好處是,假設你需要重拋,你可以從HIS中直接取得資料;而且也可以保留原始證據
------------------------------------------------------------------------------------------
如果想把出错时的信息,进行一元化管理,请问有什么好的方法吗,自己可以写log吗
1.可以直接在PACKAG裡面寫ALERT的語法,這樣遇到異常的時候可以及時發MAIL ALERT給
USER
2.不MAIL ALERT但是將資料的FLAG改成'E',並且讓CONCURRENT變成ERROR OR WARING,
並將結果LOG出來 <---這種最常用
EX:總共處理100筆 ,失敗50筆,成功50筆,失敗及成功明細如下..
3.將ERROR寫入ERROR TABLE
----------------------------------------------------------------------------
5.客户希望把Interface执行结果,通过mail 通知用户,请问具体怎么实现呢?
1)如上所敘,如果你將ERROR資料寫入ERROR TABLE,那你可以客製ALERT去MAIL
我比較傾向用這種方法
2)直接在PACKAGE中寫MAIL的語法,將ERROR資料寄出
你若有需要,我可以把語法給你.(缺點是如果是排程程式,三分鐘一次...你的MAIL會爆掉)
|