SAP中的BRF+

即使努力去嘗試最小化SAP系統中的自定義內容,一般仍是沒法避免大量的自定義業務邏輯。在過去,這意味着須要在系統的各類地方引入自定義ABAP代碼,包括user-exits,enhancement,BAdi和自定義程序等等。考慮到SAP系統的複雜性和相互依賴性,人們不得不當心翼翼地管理基於ABAP的自定義內容,以保證不一樣的功能區域的業務邏輯一致、且不重複。html

如今,Business Rule Framework Plus(業務規則框架,如下簡稱BRFplus或BRF+)來了,它是SAP推出的新功能,能夠在一個位置、經過可複用的方式管理你的全部自定義業務邏輯。web

 

本文連接:http://www.cnblogs.com/hhelibeb/p/9021665.htmlexpress

英文標題:BRFplus - a hidden gem within your SAP system編程

可用性

一般來講,BRF+功能在任何基於合適版本的SAP NeWeaver的系統均可用。要快速地檢驗它是否在你的系統上可用,只須要執行事務代碼BRFPULS或者BRF+。若是你看到了在新瀏覽器窗口打開的web應用,那麼基本上你的環境容許使用BRF+。(若是不能的話打開的話,有多是系統自己不支持,也有多是沒有配置webdynpro相關服務等)
api

值得注意的是,在2013年,SAP發佈了一個名爲Decision Service Management(DSM)的解決方案,它創建在BRF+的基礎上,而且添加了某些新的功能。最重要的是DSM容許跨SAP系統和實例的中央業務規則管理。然而,DSM須要額外的許可證,相反通常BRF+經過已有的SAP許可證就可使用。咱們發現對絕大多數客戶來講,DSM的功能有點過了頭,BRF+則更適合使用。瀏覽器

使用場景

如今你知道了一點BRF+的歷史,那麼在你能用它來作什麼呢?這裏是一些真實世界利用BRF+知足業務需求的例子:app

  • 輸出表單中的Logo判斷
  • 服務提醒文檔的默認優先級和截止日期判斷
  • 銷售訂單的默認工廠判斷
  • SAP Transportation Management中的默認載具判斷

從技術的觀點看,BRF+最多見的用例是在user-exits和加強中的自定義業務邏輯實施中。事實上,在這些狀況下,BRF+是咱們實現自定義業務邏輯的首選實現手段。它在較高層面上能夠被描述爲2步:框架

  1. 在BRF+中建立一個function,依據須要的業務邏輯,它接收輸入、進行處理,而後給出輸出結果。
  2. 經過ABAP在user-exits/BAdi/enhancement/自定義程序等地方調用先前建立的BRF+應用。

很重要的一點是,在上述的方式中你仍是須要寫一些ABAP代碼來調用BRF+ function。(和徹底使用ABAP代碼實現業務邏輯的)區別在於,一般來講,在這種狀況下,ABAP代碼只負責調用BRF+,不會直接包含業務邏輯。你可能要問這樣作的好處在哪裏。它的好處是:工具

  • BRF+ function易於複用,一般能夠大大地減小系統中重複業務邏輯實現的數量。
  • BRF+包含一個巨大的expression庫,能夠加速映射業務規則的開發過程,特別是這些業務規則比較複雜的狀況下。使用ABAP編碼來從零開始(from scratch)實現某些東西,也許能夠花上數天甚至數週的時間,可是在BRF+裏只要使用expression就能夠快速地建模實現。
  • 你的全部自定義業務邏輯能夠在一個地方實現——BRF+事務。你不須要從龐大的自開發程序、加強中搜尋代碼以調整現有的業務邏輯。
  • 對現有的業務邏輯的簡單調整能夠經由非編碼的方式實現,不須要開發人員的參與。

最後一點值得詳細闡述。SAP一般建議經過BRF+工具讓業務用戶代替ABAP開發者來做爲他們本身的邏輯的維護者。坦白說,這種建議有點誇張(exaggerattion)。實際上,BRF+元素(function, expression等)的建立依然是一件至關技術性的活動。大部分沒有技術背景的SAP專家可能會發現,想要掌握BRF+的所有內容是件具備挑戰性的事情。瞭解一些基本的編程概念,如變量和循環,會對BRF+的使用起很大幫助,即使你只是經過鼠標來建立這些對象,而不是寫ABAP代碼。可是撇開陡峭的學習曲線不說,在具有足夠多的學習時間和努力的狀況下,SAP功能分析師固然是能夠精通BRF+的,由此即可以在不依賴開發者的狀況下構建複雜的自定義業務邏輯。然而,業務用戶徹底是另外一回事。業務用戶對BRF+進行某些實驗性的調整是可能的,例如改變已有的decision table中的值,可是BRF+內的主要變動仍是須要由IT團隊進行。學習

特性

BRF+中包含不少了不得的特性,使得它是一個傑出的業務規則框架。

expressions

在許多方面上expressions是BRF+中第一個使人心動的東西。它們是預包裝的邏輯對象,能夠在BRF+環境中大大加速業務規則的建模。雖然BRF+中支持多種表達式類型,但最經常使用的一種是Decision Table。若是你熟悉SAP系統中的條件技術,decision table會給你類似的感受,而且它會提供擴展性更強的功能。除了能夠從表的頂部檢索到底部直到找到匹配的記錄爲止外,你也能夠維護輸入值爲多值的range、sets、經過空白來表示任意值、以及使用其它一些邏輯操做符等。

customizing and master data applications

定製和主數據應用(customizing and master data applications)是BRF+中的一個靈巧的特性。定製應用須要使用SAP transports來在不一樣SAP系統之間移動修改,相反主數據應用容許直接在每一個SAP系統和client直接進行修改。在你將主數據值,好比客戶、供應商、物料等是業務邏輯的一部分時特別有用。記住,由於在多數狀況下BRF+經過ABAP調用,function自己須要存在在一個定製應用中。可是這些定製級別的function接下來能夠利用存在於主數據級別應用下的expressions(例如decision tables)。一言蔽之,你能夠在一個業務規則中混合使用定製和主數據BRF+對象。

user interface

BRF+中的建模大多經過「點擊」的用戶界面進行,經過事務代碼BRF+訪問它。你能夠經過簡單地右擊屏幕左側的節點來建立新的對象,而且經過上下文菜單選擇合適的條目。

api

你也能夠經過API和BRF+交互。這意味着你不只能夠經過事務BRF+來建立和更新BRF+對象,你也能夠經過標準交付ABAP類和方法(standard delivered ABAP classes and methods)實現一樣的事情。例如,在某個場景中咱們須要存儲美國的柴油平均價到BRF+的decision table中。咱們能夠建立一個自定義ABAP程序經過公網服務來查找上週的柴油價格,而且最後經由BRF+ API更新decision table。

web services

BRF+ functions能夠很容易地暴露爲web services。這意味着你能夠同時在SAP和非SAP系統中消費BRF+業務邏輯。

helper tools

BRF+伴隨着大量的工具,能夠幫助你開發、導入/導出、檢查和BRF+對象和排查故障。其中某些工具能夠從BRF+事務中的菜單訪問,不過最簡單的查找他們的方式是在SE38中運行程序FDT_HELPERS。較早地瞭解這些工具,你就能夠在未來省下不少時間。例如,下圖裏選中的工具容許你快速地識別和解決大部分有關係統間傳輸BRF+對象的問題。

 

總而言之,大部分SAP客戶均可以在不須要額外許可證的條件下使用BRF+。咱們鼓勵你仔細瞭解BRF+、而且開始爲你的自定義業務邏輯需求使用它。

個人BRF+教程系列:http://www.cnblogs.com/hhelibeb/tag/BRFplus/

相關文章
相關標籤/搜索