iT邦幫忙

DAY 19
5

進程。Processing系列 第 19

[進程。Processing] 19.整合(Integration)

隔天,小艾帶著完成的成果找 James 一起 Review。
在 ERP 測試機中,小艾已經先將昨天正式機備份的資料,Restore 到測試機,小艾挑出了一張最近下單的採購單,透過 iSQL(註1) 更改採購單的狀態,並且在 Visual Studio 中啟動 PO init 這個 Windows Console 的專案。

「果然,Stored Procedure 的部份跑的有點久,你有在 Connection 中加入 Timeout 的機制嗎?」James看著投影的執行過程,問小艾。

「沒有耶,該設定多久的時間 Timeout?」小艾問。

「大概 180 秒,Default 30秒,我怕會很容易 Timeout 掉,有些資料要即時從 ERP 抓,Informix 的 ODBC Driver 實在是很令人頭痛。」

小艾先停掉尚在執行中的程式,將 ConnectionTimeout 加入程式碼中。

cmd = New SqlCommand("exec sp_PO_stock_proc @slip_no='" + PO_NO + "',@slip_date='" + PO_DATE + "',@part_id='" + PART_ID + "'", conn)
cmd.CommandTimeout = 180

接著又讓程式重新 Compiler 執行。

從 ERP 撈取資料,到執行 sp_PO_stock_proc & sp_PO_stock_eval 這兩個 Stored Procedure,執行完一個 Item 大致上要花 20~40 秒的時間(註2)。「這樣真的有點慢,小艾,已經執行過的 Item,就不需要執行一次,這樣可以縮短執行的時間。」James 交代著。

Stored procedure 的部份終於執行完,啟動流程的程序也順利完成,接著小艾打開 BPM 系統發出的 email(圖1),由 email 中的連結開啟簽核表單,開啟表單的同時,小艾說明在此會將採購單的資料從 ERP 下載到表單中。

圖1:簽核通知 email

「為什麼 ERP 資料下載這一段要寫在表單開啟的部份?」James 有點疑惑的問著。

「因為之前設計的時候,還沒有考慮到外部整合,所以這一段我是在開啟表單的時候,才去 ERP 撈資料的。」小艾解釋著當初這樣處理的原因。

「可是這樣會讓 User 開啟表單的時候有停頓的感覺,而且如果撈資料的過程發生錯誤,這會讓使用者 Confuse 的。」James 接著提出它的疑慮。「如果在 User 開啟表單之前就將資料準備好,這樣應該感覺會更好。」

「那我可以在參數設定的時候,將資料事先載入到單身的 Table,PM 開表單的時候,就不用再到 ERP 做 Connection 撈資料了?」小艾不確定這樣的作法妥不妥當。

「嗯,進入到簽核程序後,表單的資料如果是固定的,就不用動態去產生。」

接著,他們繼續往下看簽核的過程。第一關是 PM,主要的任務是檢視表單內容正不正確,同時要交代下單的原因。幾個操作的測試,系統都有正確的提示簽核者,哪些資料需要填入資料。

接下去依照核決權限,陸續完成主管的簽核。

「對了,在單身的部分,每一個 Item 都要加上一段 URL,可以 Click 開啟另外的畫面,展示我們在 PO init 所計算完的採購分析結果。」James 接下來要小艾將採購分析資訊整合到 BPM 當中

var part_link="<a href='http://10.2.32.168/ERP/qryPO_Parts.aspx?SLIP_NO="+po_no+"&user_id="+cmem_workid+"&SLIP_DATE="+po_date+"&part_id="+part_id+"' target='_blank'>"

小艾將 URL 加入 BPM 產生料件編號的程式碼中,重新 Refresh Server Cache,在採購簽核電子表單的單身上,已經可以看到 URL 連結(圖2)。James 接著請小艾打開料件的 Link,確認執行的結果都正常顯示。

註1:IBM Informix SQL Client - SQL Query and Administration Tool telnet 文字模式
註2:這邊有些資料是抓 ERP 中未來 30 週的訂單資料,在本次的文章中並沒有介紹這一部分,不過尚有改善空間

Prev Next

本篇全系列文章


上一篇
[進程。Processing] 18.流程(Process)
下一篇
[進程。Processing] 20.測速(Speed Testing)
系列文
進程。Processing31
0
老鷹(eagle)
iT邦高手 1 級 ‧ 2012-10-19 08:41:23

沙發
感謝分享

0
海綿寶寶
iT邦大神 1 級 ‧ 2012-10-19 09:03:34

jamesjan提到:
「嗯,進入到簽核程序後,表單的資料如果是固定的,就不用動態去產生。」

所以系統有限制「進入簽核程序後,不可以變更 PO 嗎」
疑惑

jamesjan提到:
「對了,在單身的部分,每一個 Item 都要加上一

雖然聽過這詞兒很多次了
還是會不由自主地恍神了一下
「單身」....那「已婚」的呢
毆飛

註:好像還聽過「表頭」「表身」的說法
空

看更多先前的回應...收起先前的回應...
jamesjan iT邦高手 1 級 ‧ 2012-10-19 09:06:06 檢舉

是的,進入簽核程序後,ERP 上的採購單就會被鎖住,不能進行修改
要直到簽核完成將狀態更新回 ERP 後,才可以在 ERP 上做後續的動作謝謝

如果簽核狀態是核可的話,更新回 ERP 後,是
1.從此不可變更 PO
2.可變更 PO,但需重跑簽核流程
3.以上皆非
筆記

jamesjan iT邦高手 1 級 ‧ 2012-10-19 12:19:50 檢舉

To: 海綿大

要看情況

1.採購單未發出(下單給原廠),則可以修改採購單內容,重新確認再跑簽核流程(程序重來,但簽核記錄會保留)
2.採購單已發出,則需要跑採購變更流程,採購單版本會增加,變更流程目前尚未電子化

採購變更的情況較複雜,有 Pull In/Push Out 的,就是我們跟原廠挪交期(往前/往後)
有原廠變更交期 VSD,也是一樣有往前/往後之別
還有就是 Partial 交貨或是數量變更...這些都是採購變更的範圍謝謝

jamesjan提到:
還有就是 Partial 交貨或是數量變更...這些都是採購變更的範圍

了解
謝謝指教
謝謝

0
ted99tw
iT邦高手 1 級 ‧ 2012-10-19 10:04:58

雖沒搶到沙發,但卡個位也是必要的...

讚讚讚

我要留言

立即登入留言