TSM - BRFplus – o privire de ansamblu a Business Rule Management System SAP

Mihai Dorian Popescu - SAP Developer @ Siemens

Piețele aflate în evoluție continuă au plasat toate afacerile pe traiectoria "Adaptează-te sau mori" ("Adapt or die"). Cinică, această afirmație este cum nu se poate mai departe de adevăr. Cheia succesului nu este o rețetă valabilă pentru toți, dar acest lucru nu presupune că nu există metode care să faciliteze atingerea succesului. Orice afacere prosperă are în centru un bun proces decizional care ajută managementul să aibă o imagine clară asupra proceselor sale și să ia decizii mai bune. În acest sens, în multe cazuri clienții simt nevoia ca sistemul lor informațional să le permită să își configureze procesele și fluxul operațional din cadrul afacerii. Pentru a servi acestui scop, SAP a introdus soluția unui sistem BRFplus - Business Rule Management pentru aplicațiile ABAP, care le permite utilizatorilor săi să creeze, să gestioneze și să implementeze reguli de complexitate variată.

Ce este BRFplus - Business Rule Management (Gestionarea bazată pe reguli a afacerilor) pentru aplicații ABAP

BRFplus nu este doar un produs, ci un nou Business Rule Management System (BRMS) oferit de SAP clienților săi. Principiul de bază este că orice afacere are propriile sale reguli, cu nivele diferite de complexitate, pe baza cărora se iau decizii. BRFplus este un BRMS unde aceste reguli pot fi gestionate și integrate cu sistemele SAP ale clienților. Prima variantă a sistemului a fost prezentată sub formă pilot în 2008 prin intermediul Enhancement Package 1 al SAP NetWeaver 7.0, ca mai apoi să fie disponibil tuturor clienților prin intermediul Enhancement Package 2 of SAP NetWeaver 7.0.

Diagrama 1. Ansamblul BRFplus

Un BRMS este un sistem software ce gestionează regulile unei afaceri permițând utilizatorilor să definească, să execute, să monitorizeze și să facă mentenanța logicii decizionale a diferitelor reguli de business, fiind un instrument cheie al procesului de luare de decizii de către management. Fiind un sistem software, acesta este format din:

BRFplus se bazează pe aceleași principii și se poate integra cu aplicații de tip ABAP. Conține Web Dynpro ABAP Workbench unde utilizatorul poate crea, edita sau gestiona regulile. Printre funcționalitățile sale de top amintim faptul că rulează în browser, deci nu are nevoie de instalare pe partea client și integrează datele existente definite în ABAP Dictionary. De asemenea, oferă posibilitatea organizării obiectelor create în cataloage diferite sau permite personalizarea componentei Workbench conform profilului de utilizator. Mai mult, un real avantaj pentru acest BRMS este că oferă posibilitatea simulării fluxului de reguli definite și, deci, a testării lor pentru a verifica dacă regulile respectă cerințele inițiale, înainte de lansarea în producție.

BRFplus Engine oferă un obiect API ABAP ce permite utilizatorilor să integreze regulile create în aplicațiile ABAP. Componenta permite ca pentru fiecare artefact BRFplus să se genereze cod specific ce va fi folosit la inițializarea aplicației. Prin urmare, utilizatorii nu au nevoie de cunoștințe vaste de ABAP pentru a crea regulile. Fiecare regulă poate fi asociată cu date de tip timestamp, ceea ce permite crearea de aplicații complexe ce pot avea reguli active la un moment dat, bazate pe condiții specifice.

Componenta Repository poate stoca regulile ca elemente dependente sau independente de partea client în funcție de nevoile aplicației, permițând obiecte locale sau flotante (transportable). Mai multe, componenta oferă un mecanism de definire a permisiunilor și a nivelelor de acces utilizând concepte de autorizare SAP.

Componentele BRFplus

Cum funcționează BRFplus? O aplicație BRFplus este un container de obiecte BRFplus care sunt configurate pentru a deservi regulile fluxului. Fiecare obiect creat în cadrul aplicației va moșteni toate caracteristicile aplicației: constrângeri, informație administrativă, ieșiri, opțiuni de navigare, etc. . Deoarece BRFplus oferă posibilitatea de a face obiectele locale sau flotante (transportable), acest lucru se va aplica și aplicației BRFplus, ce poate fi privită similar unui proiect din alte IDE-uri sau pachete ABAP.

Diagrama 2. Procesul BRFplus

Fiecare obiect creat are un set de proprietăți generale și specifice. Unele sunt moștenite, iar pentru altele utilizatorul poate asigura mentenanța. Cea mai importantă proprietate este ID-ul obiectului care este generat unic în momentul creării și care este folosit pentru a accesa obiectul prin intermediul ABAP API.

Obiectul central (core) ce va face legătura între aplicația BRFplus și aplicațiile cu care clienții trebuie să se integreze este funcția BRFplus. Funcția va defini scopul aplicației prin intermediul semnăturii funcției. Aceasta include: tipul datelor de intrare, rezultatul și modul în care datele sunt procesate conform regulilor definite. Există trei moduri diferite de a procesa funcția, ceea ce va influența complexitatea funcției. Putem opta pentru abordarea de sus în jos (top-down), utilă pentru cazurile simple de business, abordarea numită și Functional Mode (Mod Funcțional), sau putem opta pentru mai multă complexitate prin intermediul Event Mode (Mod Eveniment) unde putem implementa diferite seturi de reguli. A treia abordare este o combinare a primelor două moduri.

Pentru a testa rezultatul funcției create, BRFplus oferă un tool de simulare ce ajută la testarea comportamentului regulilor definite pentru scenarii diferite. Toolul va procesa toate obiectele active și va permite utilizatorilor fie să introducă date de un singur tip (date pentru câmpuri de intrare simple, structuri imbricate sau tabele) sau date pentru testare în masă prin importarea de parametri contextuali via un fișier Microsoft Excel. Fișierul va avea nevoie de un antet, iar pentru fiecare parametru de intrare contextual o coloană. Pentru a avea o structură exactă, este recomandată exportarea fișierului din toolul de simulare.

Tipurile de obiecte de date folosite sunt elemente precum amount, boolean, number, text, etc. ; structuri și tabele definite pe diferite structuri de date. Fiecare din aceste tipuri de date poate fi legat de un tip deja existent în ABAP Data Dictionary.

Diagrama 3. Integrarea BRFplus cu SAP

Regulile aplicației sunt combinate în obiecte numite Rulesets (seturi de reguli). Utilizatorul poate asigna aceste obiecte unui singur obiect funcție, poate asigna priorități diferite sau (pre)condiții de tip timestamp. Pentru fiecare Ruleset se pot defini și inițializa variabile sau variabile globale. BRFplus permite și definirea condițiilor de ieșire pentru reguli, ceea ce adaugă complexitate fluxului de reguli. Fiecare Ruleset este construit prin intermediul de reguli simple, reguli ce au structura standard IF-THEN-ELSE. Regula poate realiza acțiuni, poate asigna o valoare sau poate inițializa contexte, procese sau alte reguli.

Expresiile BRFplus constituie corpul unei reguli. Acestea sunt unități independente având propriul lor set de proprietăți și propria logică. Oferim informații despre cele mai uzuale expresii:

Performanța aplicațiilor BRFplus

Deoarece acest tool este proiectat să ofere suport în procesul decizional al unei companii, performanța atinsă în procesarea regulilor de business complexe și multiple este un aspect prioritar. Acesta este strâns legat de modul în care este creată aplicația BRFplus și de modul în care fiecare obiect BRFplus este implementat. Depinde și de hardware-ul avut la dispoziție, de capacitatea rețelei și de alte procese ce rulează în sistem.

Un factor cheie ce poate îmbunătăți performanța în procesul de creare a unei aplicații BRFplus ar putea fi utilizarea operațiilor loop și table acolo unde este nevoie. Elementele loop imbricate sau expresiile DB Lookup din cadrul unei expresii loop ar trebui evitate, iar elementul loop ar trebui gândit să aibă un număr finit de pași. În interacțiunea cu baza de date, aplicăm aceleași principii precum interogarea coloanelor cheie ale tabelelor sau utilizarea tabelelor buffered pentru acces mai rapid la date. Când apelăm proceduri, performanța expresiilor aplicației BRFplus este dependentă de implementarea metodei apelate sau de modulul funcțiilor, din moment ce BRFplus mapează doar variabilele parametrilor de intrare.

Concluzie

De ce am dori să folosim BRFplus în configurarea procesului nostru decizional? BRFplus oferă posibilitatea unei modelizări unificate și a unui mediu de runtime pentru regulile de business. Mai mult, BRFplus oferă o perspectivă simplificată a regulilor de business atât pentru utilizatorii tehnici, cât și pentru utilizatorii de business, singurul factor cheie fiind cerințele de business.

Din punct de vedere tehnic, BRFplus poate fi ușor integrat într-un mediu SAP NetWeaver utilizând API-urile aflate la dispoziție ce oferă acces la Data Dictionary și diferite workflow-uri. Un mare avantaj al aplicației BRFplus vine din codul generat pentru fiecare obiect BRFplus creat la runtime, prin intermediul motorului propriu. Astfel, utilizatorilor le va fi mai simplu să creeze și să implementeze scenariul de business necesar.

Cu cât este mai pregătită o companie pentru optimizarea și gestionarea propriului proces decizional, cu atât compania va înregistra succes pe piața aflată în continuă evoluție. Tehnologia a facilitat acest lucru în diverse forme, iar una dintre acestea este soluția SAP pentru BRMS ce se concretizează în BRFplus.