演算法概要

系統中的許多功能是使用演算法來執行。演算法是在系統處理內的策略點 (通常稱為「外掛點」) 所呼叫,以執行特定程式碼。系統會預先設定產品的外掛點,並因物件而異。基準產品利用演算法來提供立即可用的功能。演算法架構提供一種方式讓實作插入自己的自訂程式碼,可用來取代基準提供的程式碼或作為另一項選擇。

備註:演算法 = 外掛。外掛與演算法這兩個詞在整份文件中會交替使用。

演算法類型與演算法的比較

文件通常只會使用「演算法」一詞,但實際上有兩個提供此外掛功能的重要物件。

  • 演算法類型會定義要執行的程式,並識別外掛點。您可以使用 Java 或使用外掛指令檔來定義程式。演算法類型也可定義必須提供給此類型之演算法的參數。
  • 演算法演算法類型的實例。如果演算法類型未定義任何參數,則該演算法類型只會有一個演算法。如果演算法已定義參數,則指定的演算法類型可能有數個演算法,針對一個指定使用案例,每一組唯一參數值都有一個演算法。演算法是設定系統時,在指定控制資料表中被參考的物件。

演算法外掛點

外掛點 (也稱為「演算法實體」和「系統事件」) 定義了所執行演算法功能的幾個面向。
  • 何時會執行系統處理中此外掛點的演算法?例如,在執行任何資料庫插入作業之前,新增待辦事項時會呼叫「安裝選項 - 待辦事項建立前」演算法。

  • 外掛點的 API。這通常稱為外掛點的「硬參數」。每個演算法程式在被呼叫時,都會獲得哪些資訊?此外,如果演算法應將資訊傳回呼叫程式,這也是硬參數的一部分。例如,「安裝選項 - 待辦事項建立前」外掛點會收到即將新增之待辦事項的所有相關資訊。它可以新增或更新值,也可以視需要傳回不建立待辦事項的指示。
    備註:硬參數與演算法類型上定義的參數不同。這些參數稱為「軟參數」。這些參數是用來設定演算法類型代碼依據其特定功能所使用的設定。
  • 外掛點的演算法責任為何?定義外掛點時,產品會定義為該外掛點建立之演算法類型的代碼責任。例如,演算法是否決定資訊並傳回資訊?或者,演算法是否應執行更新?「安裝選項 - 待辦事項建立前」外掛點的演算法不應執行任何更新。而是應該調整硬參數中的待辦事項資訊 (如果需要),然後將它們傳回。呼叫邏輯會在插入待辦事項記錄時使用該調整過的資訊。

  • 演算法要在哪裡設定?我們已使用「安裝選項 - 待辦事項建立前」外掛點作為範例。如描述所建議,這些演算法是在「安裝選項 - 演算法」集合上設定。每個外掛點會定義演算法外掛的位置 (在哪個控制資料表中)。定義可用外掛點之「演算法實體」標誌值描述的系統標準為「控制資料表名稱 - 事件」。例如,「待辦事項類型 - 計算優先順序」演算法外掛點表示演算法是在「待辦事項類型」上設定。此資訊也指出演算法的粒度。「安裝選項」演算法是全系統演算法。但舉例來說,外掛在「待辦事項類型」上的演算法則是指出只有該待辦事項類型的待辦事項才會讓該演算法執行。

  • 是否允許使用多個演算法?有些外掛點若支援多個演算法,是沒有意義的。此一情況的範例為「批次控制 - 選取記錄」外掛。此外掛由外掛導向的批次處理使用並負責選取要處理的記錄。指定的批次控制上只能有一個此類型的演算法。支援多個演算法的外掛點範例為驗證外掛點。請注意,當外掛點支援多個演算法時,在外掛點設計上可能還有其他的面向。

    • 在某些情況下,此類型的外掛點只是單純執行每個演算法。驗證外掛點即為此類範例。

    • 在某些情況下,演算法可將不執行任何後續演算法的指示傳回給外掛點「驅動程式」。「業務物件狀態 - 進入」是支援此功能的外掛點範例。

    • 在某些情況下,外掛點可支援從一個演算法共用資訊至下一個演算法。「移轉計畫 - 比較前」是支援此功能的外掛點範例。

如需有關所提供來顯示外掛點相關資訊之入口的資訊,請參考演算法實體

基準產品演算法

基準產品提供許多立即可用的演算法類型和演算法。有時候,我們是針對客戶將來需要的常見使用案例提供支援而提供演算法。然而,有許多演算法提供的原因是,我們實作系統功能時使用的基礎架構與功能,與我們的實作用於自己的自訂程式碼的基礎架構與功能相同。

提供演算法類型時,是否一併提供演算法的這個決定取決於某些因素,而這些因素與是否已定義演算法類型的軟參數有關。

  • 如果演算法類型未定義任何參數,則通常系統也會提供對應的演算法。

  • 如果已定義參數且值位於通常由實作所擁有的組態資料中,則系統可能不會定義基準演算法。

  • 如果已定義參數且值與組態資料無關,則系統可能提供一或多個演算法。

若要複查產品隨附的演算法類型,請前往「演算法類型」查詢。查詢提供數個搜尋選項,包括依演算法實體查尋值進行搜尋。