如何使用SAP的後設資料框架 (MDF) 構建自定義業務規則?

banq發表於2022-02-15

SAP SuccessFactors利用後設資料框架(MDF)物件和業務規則做很多事情。業務規則適用於許多不同的情況,並且有大量關於如何使用它們的文件。不幸的是,這裡明顯缺乏定製解決方案的指南。
如果一個企業必須使用幾個相連的業務規則,他們如何從這些規則中實現他們期望的行為?
可悲的是,業務規則並沒有得到非常明確的解釋,這讓那些想要實施定製解決方案的企業感到他們必須透過實驗來找出事情的真相。我們將介紹企業在構建使用MDF物件的業務規則的定製解決方案時需要了解的一些基本知識。
 

將場景上下文切換為“基於 MDF 的物件的規則”
基本場景不是為使用基於 MDF 的物件而設計的,因此場景“基於 MDF 的物件的規則”更適合我們正在嘗試做的事情。它為企業提供了很多好處,其中包括:

  • 完全內建於擴充套件中心
  • 僅涵蓋適合特定用途的功能
  • 允許從業務規則導航到呼叫它的事件

每當企業打算使用 MDF 物件時,建議他們使用這些“基於 MDF 的物件的規則”,因為該場景對使用者友好且可靠。
 

建立新規則
建立新的自定義規則會顯示需要編輯以完成規則設定的欄位。
 

規則 ID
僅在未選擇物件時可編輯。ID 至關重要,因為它是我們匯入和匯出業務規則及其對物件定義的分配的方式。規則名稱應包含有關規則的固定事實,例如:

  • 實施專案的簡稱
  • 基礎物件程式碼
  • 規則的目的
  • 儲存業務規則的程式碼型別

因此,例如,有效的規則 ID 可能類似於 COMPANY_Position_externalCode_Evaluate。

規則名稱
規則名稱可以隨時更改。規則名稱和規則 ID 在配置工具中表示時始終可見。因為規則名稱在系統內的 UI 中是可見且可修改的,所以它是儲存有關規則的可變資料的理想場所。專案如:

  • 諸如“被刪除”或“被替換”之類的操作。
  • 任何呼叫規則的事件
  • 規則的執行順序
  • 前一個規則 ID(如果有此規則的前任規則)
  • 可變的 IF 條件以及要更改哪些欄位等。

分配事件順序
在任何事件中,新增到事件中的業務規則都按照新增的順序執行。通常,如果規則是獨立的,這不會引起任何問題。但是,某些規則需要先前規則的結果。在這些情況下,執行順序對於確保沒有中斷至關重要。將規則連結在一起並不少見,但某些配置往往比其他配置發生得更多。配置這些鏈時,OnLoad- 和 Initialize-Purposed 規則可能很複雜。供應商-消費者鏈應避免實施這樣的鏈。Evaluate-Purposed 規則經常出現在消費者-供應商鏈中,並適用於 OnChange 和 Save 事件。
不幸的是,工作流專用規則不尊重物件定義中的分配順序。他們在事件中具有固定的位置。在 Sve 事件上,首先執行工作流專用規則。在刪除事件上,工作流專用規則在其他所有內容之後執行。
 

測序事件
事件根據物件上發生的操作進行排序。
 

編寫業務規則的提示
那麼,企業在制定自定義業務規則時應該注意什麼?

  • 業務規則應儘可能簡單(KISS 原則)
  • 如果存在複雜的條件(IF 語句),則應儘可能簡化它們
  • 應避免對大量引數使用邏輯組合(AND 語句)
  • 首先應說明最可能的情況
  • 任何使用重複計算或“魔術”數字的東西都應該用變數代替
  • 業務規則永遠不應替代關聯和欄位標準。

乍一看,構建自定義業務規則可能看起來很複雜。但是,一旦一個人瞭解了後端是如何完成的,就更容易掌握如何編寫成功的規則。他們應該有一個深思熟慮的名稱和 ID,以便任何使用它的人一目瞭然地描述規則。他們還應該儘可能地簡單,但不要簡單到一事無成。在制定這些規則時要找到平衡點需要一些實踐,但值得擁有一個更精簡的系統來處理可能影響業務效率和生產的複雜條件。
 

相關文章