2010-01-21 90 views
0

我正在從外部供應商處訂購導入訂單的項目。在將信息加載到我們的ERP系統之前,我需要驗證這些信息,然後在我們處理併發送訂單後發送包含運輸信息的響應。跟蹤訂單流程

我想看看其他人如何跟蹤實現此目標所需的步驟。不尋找代碼只是想了解別人如何跟蹤他們在這個過程中的位置?你寫的所有您使用標誌的必要steps..do等記錄

我們目前使用C#,Oracle數據庫和BPEL

工藝步驟:

  1. 進口訂單信息將分期表。
  2. 在加載到ERP系統之前驗證訂單信息(儘可能多)。
  3. 如果驗證失敗發送通知,如果傳遞發送到ERP。
  4. 對訂單進行進一步驗證(足夠的數量等)。如果沒有發送通知給供應商...如果通過讓我們繼續發貨。
  5. 船舶訂單。

只是想看看別人會如何跟蹤這些步驟?

任何信息/建議將不勝感激。

--s

+0

您能分享一些關於什麼是必需的驗證業務邏輯的見解嗎? – Rachel 2010-01-21 06:20:37

+0

我需要驗證地址,有效物品,成本,運輸方式等等。因此,任何我可以做ERP之前的工作都會更好,因爲我可以立即將失敗的驗證發送給供應商。 – scarpacci 2010-01-21 06:25:56

回答

0

那麼,你想保留儘可能多的信息,可能。我會使用基於狀態的系統來確定對象的位置。

接下來的問題是你是否希望通過在不同表格中使用不同狀態的對象來優化它。這很好,因爲這意味着查詢更快(無where子句),這很糟糕,因爲您需要複製表(即列)。

也許我會有一張桌子,像'tblInProgressOrders'和'tblAcceptedOrders'(無論你想要什麼名字)。在「InProgress」中,它會有一個「CurrentState」決定什麼是什麼。在接受的命令中,你可能會有一些元數據,但這意味着如果它在那裏,它就被接受了。

HTH。

+0

這基本上與我的想法保持一致。如果他們修復了錯誤並重新發送,我可以使用標誌來保留原始標誌,但是讓流程認爲它需要重新開始。 – scarpacci 2010-01-21 06:27:35

+0

不一定與多個表的想法不一致 - 但請注意,如果您想要一個子表,它可能會變得複雜 - 要麼必須省略FK約束,要麼爲每個父表創建單獨的子表。 – 2010-01-21 07:23:12

+0

好點傑弗裏......我會牢記這一點。感謝您的意見。 – scarpacci 2010-01-21 16:07:53