共用方式為


材料處理設備介面 (MHAX)

您可以使用材料處理設備介面 (MHAX) 將外部實體材料處理 (MH) 系統連線到由 Microsoft Dynamics 365 Supply Chain Management 程序倉庫管理 (WMS) 管理的倉庫。 WMS 和 MH 系統之間的介面由兩個佇列組成:一個用於出站事件 (WMS 到 MH),一個用於入站事件 (MH 到 WMS)。 WMS 系統根據在各種工作建立和執行過程中建立的工作行產生出站事件。 MH 系統接著會定期輪詢 WMS 系統以尋找新事件並處理回應。 MH 系統按照工作指令處理完事件後,會發送入站事件,例如工作行完成和揀料短缺。

重要注意事項

透過啟用此功能,您的資料可能會與您選擇的第三方服務共用。 您控制與第三方共享哪些資料 (如果有)。 您對第三方服務的使用由您負責,並受您與第三方商定的條款的約束。 您的隱私權對我們而言很重要。 若要了解更多,請閱讀我們的隱私聲明

下圖顯示了使用 MHAX 整合時的各種元素和流程發生順序。

MHAX 元件和互動。

以下說明上圖中顯示的互動:

  1. 在工作建立或工作執行期間,在出站佇列中建立出站事件。
  2. MH 設備連線到 MH 設備服務,輪詢與其相關的任何新事件,並處理這些事件。
  3. MH 設備準備好回報時,它會再次連線到服務並提交入站事件。 這些事件立即由佇列處理器處理。
  4. 根據入站事件資料,佇列處理器可能會執行現有工作、修改它或建立新工作。

開啟 MHAX 功能

在您可以使用 MHAX 功能之前,您必須同時開啟其功能和設定金鑰。

  1. 如果您執行的是 Supply Chain Management 版本 10.0.28 或更早版本,請執行下列步驟:
    1. 前往系統管理 > 工作區 > 功能管理
    2. 功能管理工作區,開啟名為材料處理設備介面的功能。 (從 Supply Chain Management 10.0.29 開始,此項功能是強制性的,不能關閉。)
  2. 進入系統的維修模式,如維修模式中的說明。
  3. 前往系統管理 > 設定 > 授權設定
  4. 展開貿易 > 倉儲和運輸管理,然後選擇材料處理設備介面核取方塊。
  5. 關閉維修模式,如維修模式中的說明。

設定 MHAX 參數

您必須在材料處理設備介面參數頁面設定幾項一般參數以設定功能。

  1. 前往材料處理設備介面 > 設定 > 材料處理設備介面參數

  2. 請在一般索引標籤上設定下列欄位:

    • 使用者映射 – 將系統使用者對應到其相關的倉儲工作人員。 系統使用者用於呼叫入站佇列服務。 選定的工作人員會被指派到透過入站佇列處理的工作作業 (揀料和放置)。 工作作業將在每個工作人員的預設倉儲中進行。
    • 啟用入站訊息識別碼 – 此選項設定為時,如果收到重複的入站訊息識別碼,則該訊息將遭拒絕,並會出現一條錯誤訊息,指出該訊息已存在。 此選項設為時,將允許重複的入站訊息識別碼。
    • 啟用手動入站訊息建立 – 當此選項設為時,您可以直接從 入站佇列頁面建立記錄來模擬入站訊息。
  3. 編號規則索引標籤,選擇全系統的編號規則,該規則應用於為入站佇列品項、出站佇列品項和工作行對產生唯一識別碼。

出站事件

在工作建立或工作執行期間的特定時間點,系統將決定是否必須產生出站事件以發送到 MH 系統。 如果在倉庫處理過程中為特定時間點設定了訂閱,系統會根據訂閱設定產生事件。

出站事件結構

每個出站事件都由出站佇列識別碼作為唯一標識。 出站交易類型決定了事件的類型。 產生事件的倉庫和訂閱識別碼也會記錄在事件上。

為了將資料傳送到 MH 系統,出站事件包含 10 個資料欄位 (data01data10)。 這些資料欄位將與現有資料庫欄位一對一 (1:1) 對應。 具體來說,它們是從工作行和工作標題資料表中的欄位所取出。 欄位可以自由選擇。 您在建立訂閱時設定欄位。

除了與現有資料庫欄位 1:1 對應的 10 個資料欄位外,事件還可以包含一個額外的資料欄位,稱為承載。 此欄位的內容由自訂 X++ 程式碼產生,也就是所謂的承載產生器。 任何應該使用的承載產生器都在訂閱中設定。

為了確保 MH 系統只接收一次各個出站佇列識別碼,狀態欄位可用於指定事件是準備好要發送到外部物料搬運系統 (就緒狀態) 或是已經發送 (已發送狀態)。

出站佇列訂閱

在產生任何事件之前,必須設定訂閱以告知 MHAX 功能是否以及如何產生事件。 產生的事件由訂閱識別碼標記。 因此,多個 MH 系統可以連線到同一個 WMS 系統,但將它們的事件分開。 輪詢 MHAX 服務尋找新事件時,訂閱是取出事件的可用選項之一。

要建立訂閱,請前往材料處理設備介面 > 設定 > 訂閱。 以下是每個訂閱可用的參數:

  • 訂閱識別碼 – 識別訂閱的唯一名稱。
  • 說明 – 訂閱的任意文字說明。
  • 倉庫 – 應用於篩選事件的特定倉庫。
  • 出站交易類型 – 訂閱應包含的事件類型。
  • 承載產生器 – 一個選用的程式碼擴充,可以在承載出站事件欄位輸入額外資訊。

查詢可以與每個訂閱相關聯。 此查詢會篩選工作行和標題,以進一步限制使用訂閱產生事件的工作。 要將查詢新增到訂閱,請針對訂閱頁面的相關訂閱選擇執行查詢核取方塊,然後選擇動作窗格的編輯查詢。 隨即出現標準 Supply Chain Management 查詢編輯器。

此外,訂閱包括訂閱對應,可根據需要將工作標題或工作行中的欄位,對應到出站事件的部分或所有 10 個任意資料欄位。 要將資訊傳回 MHAX 服務,您通常會包含工作行記錄識別碼或工作行對識別碼。 (工作行對識別碼是一個新屬性,使系統能夠使用單個退回命令來處理揀料和放置行。) 其餘欄位取決於案例。 本文稍後會提供一些範例。

要設定訂閱對應,請在訂閱頁面選擇相關訂閱,然後在動作窗格選擇訂閱對應。 在出現的訂閱對應對話方塊中,您可以根據需要為每個可用資料欄位指派一個資料表和欄位。

出站事件類型

本節介紹可用的各種事件類型。 (事件類型也稱為交易類型。) 其中還解釋了在 WMS 系統中建立每種類型的事件的時機。

工作建立事件 (WorkCreation)

工作建立事件是在應用程式產生工作之後建立的。 此行為適用於大多數類型的工作建立流程,尤其是建立揀料和補貨工作。 一般來說,如果工作是以開放狀態建立,表示工作已準備好由工作人員執行,將產生工作建立事件。 此外,工作建立事件將為基本移動工作 (不是透過範本工作移動) 產生,即使該工作不是作為開放工作建立的。

此行為的一個顯著例外是週期盤點工作,目前不支援使用。 MH 系統中的庫存盤點不在 MHAX 範圍內,盤點結果必須匯入庫存盤點日記帳。

建立工作後,MHAX 服務會處理產生的工作行,並將工作行對識別碼指派給為每個工作標題產生的所有工作行。 目標是將具有後續放置的所有揀料工作行分組在一個工作行對識別碼之下。 (這些群組對應於工作範本中的揀料/放置對。) 這樣,單個識別碼就可用於報告所有相關揀料和放置行的工作完成情況。 分組過程從第一行開始,然後以相同的識別碼繼續,直到遇到一對後續的放置/揀料工作行。 執行的識別碼指派至該對的放置行。 然後會有一個新的識別碼用於下一對的揀料行。 這個過程一直持續到處理完所有屬於工作標題的行為止。

作為工作建立事件的一個特點,如果工作標題的鎖定波次選項設定為,產生事件的狀態為已封鎖,而不是常用於傳送至 MH 系統的就緒狀態。 工作標題的鎖定波次旗標,表示工作標題尚未準備好讓工作人員執行,可能是因為未完成的補貨工作。 鎖定波次旗標清除時,已經產生的事件將解除封鎖,並且可由 MH 系統從佇列中取出。

工作起始事件 (WorkInitiation)

工作狀態在工作更新期間從開放變為進行中時,就會觸發工作起始事件。

工作完成事件 (WorkCompletion)

工作狀態在工作更新期間從進行中變為關閉時,就會觸發工作完成事件。

工作取消事件 (WorkCancel)

工作狀態在工作更新期間從已取消以外的任何狀態變為已取消時,就會觸發工作取消事件。 此外,與工作標題相關的其他所有事件,都將從所有訂閱的佇列中刪除。 這種方式可以防止外部系統處理不需要的事件。

揀料/放置完成事件(PickCompletion/PutCompletion)

揀料/放置狀態在工作行更新期間從進行中變為關閉時,就會觸發揀料/放置完成事件。

監控出站佇列

要查看您的出站佇列,請前往材料處理設備介面 > 一般 > 出站佇列出站佇列頁面列出了每個出站佇列品項及其狀態。 選擇一個佇列項目以查看其詳細資料。 這些詳細資料包括品項的交易類型、品項使用的訂閱,以及每個資料欄位的值 (data01data10) 和承載。

清理出站佇列

最終,您的出站佇列將開始充滿已發送的佇列品項。 要刪除這些品項,請前往材料處理設備介面 > 例行工作 > 清理 > 出站佇列清理

入站事件

本節介紹 MH 系統可以向 WMS 系統回報的各種類型入站事件。 其中還解釋了資料必須由 MH 系統提供,以及每個入站事件在 WMS 系統中的作用。

入站事件結構

提交入站事件時,外部系統必須提供入站交易類型以及最多 10 個參數 (data01data10)。 選用的驗證功能可以確保 MHAX 服務沒有多次收到相同的入站事件。 要啟用此驗證,每個入站事件必須具有唯一的訊息識別碼。 如果收到重複的訊息識別碼,且如果材料處理設備介面參數頁面的啟用入站訊息識別碼選項設定為,訊息將遭拒絕。 一條錯誤訊息將表明該訊息已存在。

除了傳入資料欄位外,系統還會為事件指派唯一的入站佇列識別碼。

入站事件類型

本節介紹支援的入站事件類型 (交易類型),以及必須為預訂處理事件提供的資料。

工作確認事件 (WorkConfirm)

工作確認事件要求傳入的資料欄位包含以下資訊:

  • data01 – 工作行配對識別碼。

  • data02 – 工作行記錄識別碼 (RecId 值)。

    附註

    必須存在 data01 欄位 data02 欄位。

  • data03 – 要從中選擇的牌照識別碼。

  • data04 – 工作標題的目標牌照識別碼。

如果提供了工作行對識別碼,則所有由工作行對識別碼標記且狀態為開放進行中的所有揀料、放置或自訂工作行,將會依序執行。 如果提供工作行記錄識別碼 (RecId值),則工作行必須是狀態為開放進行中的揀料、放置或自訂工作行。

從牌照控制位置挑選需要由 data03 指定挑選牌照的行,無論行是由工作行記錄識別碼還是工作行對識別碼標記。 data04 欄位必須為揀料指定工作標題的目標牌照。

放置行不接受進一步的資訊。 它們僅根據目前工作行的位置和工作的目標牌照執行。 如果必須在不同的位置進行放置,請按照本文之後覆寫事件一節所說明的方式變更工作行位置。

自訂工作行不需要或支援入站事件中的任何其他資訊。

揀料短缺事件 (ShortPick)

揀料短缺事件要求傳入的資料欄位包含以下資訊:

  • data02 – 工作記錄識別碼 (RecId 值)。
  • data03 – 要從中選擇的牌照識別碼。
  • data04 – 要揀料的數量。
  • data05 – 連結到工作異常記錄的揀料短缺異常代碼,在紀錄中異常類型值為 揀料短缺
  • data06 – 工作標題的目標牌照識別碼。 此識別碼設定為自動產生時,可以留空。

附註

data01 欄位不用於揀料短缺事件。

此事件類似於工作確認事件,但僅適用於揀料行。

覆寫事件 (Override)

覆寫事件要求傳入的資料欄位包含以下資訊:

  • data01 – 工作記錄識別碼 (RecId 值)。
  • data02 – 新的位置識別碼。

工作行的狀態必須為開放進行中,並且新位置必須存在。

牌照接收事件 (LPReceipt)

牌照接收事件要求傳入的資料欄位包含以下資訊:

  • data01 – 要接收的入站牌照識別碼。

系統根據以 data01 欄位值傳送的牌照執行牌照接收作業。

監控入站佇列

要查看您的入站佇列,請前往材料處理設備介面 > 一般 > 入站佇列入站佇列頁面列出了每個入站佇列品項及其狀態。 選擇一個佇列項目以查看其詳細資料。 這些詳細資料包括品項的交易類型、訊息識別碼,以及每個資料欄位的值 (data01data10)。

如果在處理入站事件時發生錯誤或其他類型的記錄品項,您可以在動作窗格選擇錯誤記錄以檢查記錄。

入站事件處理

入站事件首先寫入資料庫,然後立即 (同步) 執行。 如果處理過程中發生錯誤,事件仍然寫入佇列,但狀態設定為錯誤。 MHAX 服務向 MH 系統傳回錯誤訊息,並將錯誤記錄儲存在入站事件記錄中以供以後調查。

狀態為錯誤的事件可於錯誤條件修復時於稍後重新處理。 若要重新處理,請按照以下步驟之一操作:

  • 前往材料處理設備介面 > 一般 > 入站佇列。 選擇相關的入站佇列,然後在動作窗格選擇重新處理
  • 前往材料處理設備介面 > 一般 > 重新處理錯誤的入站佇列。 會出現標準批次工作對話方塊。 您可以在其中設定記錄篩選器,並排程或執行批次工作以重新處理佇列。

所有工作作業 (揀料及放置) 都使用在材料處理設備介面參數頁面使用者識別碼欄位選取的工作人員執行。

清理入站佇列

最終,您的入站佇列將開始充滿已處理的佇列品項。 要刪除這些品項,請前往材料處理設備介面 > 例行工作 > 清理 > 入站佇列清理

使用佇列管理員快速概覽

要快速瞭解與入站和出站佇列相關的所有活動,請前往材料處理設備介面 > 工作區 > 佇列管理員佇列管理員頁面提供了一組索引標籤和磚,您可以使用它們來監控和瀏覽您的佇列。 其中還提供各項實用連結,可連往本文提到的大多數其他頁面。

連線到 MHAX 服務

MHAX 是以自訂服務實作。 因此,可以透過 SOAP 和 REST 呼叫進行存取。 以下是 SOAP 和 REST 端點的位址:

  • SOAP:https://base_environment_URL/soap/services/WMHEServices
  • REST:https://base_environment_URL/api/services/WMHEServices/WMHEService

從出站佇列中取出訊息

要從出站佇列中取出訊息,請使用以下方法之一:

  • 使用 readOutboundSubscriptionQueue 根據訂閱識別碼取出事件。
  • 使用 readOutboundWarehouseQueue 根據事件類型和倉庫識別碼跨多個訂閱取出事件。