520 likes | 527 Views
Learn how to easily migrate to a new Chart of Accounts without affecting subsystems that use the COA. Explore Oracle 11g feature Rules Manager and Expression Filter.
E N D
Easy migration to a new Chart of Accounts Chitra Kanakaraj
Agenda • The University of Waikato • Easy migration to a new Chart of Accounts without affecting the subsystems that uses the COA • Oracle 11g feature Rules Manager and Expression Filter • Oracle Business Rules
The University of Waikato • About Me • What was the need to migrate to New COA • Impact of the change • How to ... • Wondered how to modify and manage business logic easily
Modify and Manage Business logic • Oracle 11g feature Rules Manager and Expression Filter • What is this? • How it works? • Skills Needed • Practical Implementation
Rules Manager • Rules manager API - Defines, manage and enforce complex rules in Oracle Database • This API can be used across multisession and environment • Rules manager can model any event-condition-action(ECA)-based system. • Applications for Rules Manager are ...
What is a Rule? • Typically, rules follow Event-Condition-Action (ECA) • The ECA components are defined as: • Event -- the state information for the process • Condition -- the Boolean condition that evaluates to true or false for the event • Action -- the action to be carried out if the rule condition evaluates to true for the event.
PL/SQL Code to Create Event Structure • CREATE TYPE validCOA AS OBJECT ( Seg1 VARCHAR2(2), Seg2 VARCHAR2(2), Seg3 VARCHAR2(4), Seg4 VARCHAR2(2), Seg5 VARCHAR2(4), Seg6 VARCHAR2(4));
PL/SQL Code to Create Rule Class • BEGIN dbms_rlmgr.create_rule_class ( rule_class => 'COARules', event_struct => 'validCOA', action_cbk => 'getGatePass', actprf_spec => 'SubSystemName VARCHAR2(50)'); END;
Modify the Procedure getGatePass If rlm$rule.subsystemname = 'UniMarket' then dbms_output.put_line ('This is a valid COA code for the UniMarket Sub System'); end if; If rlm$rule.subsystemname = 'StaffClaim' then dbms_output.put_line ('This is a valid COA code for the StaffClaim Sub System'); end if;
Insert Row in the Rules Class Table • Each row inserted typically contains a rule identifier, a condition, and values for action preferences. • Adding rules consists of using the SQL INSERT statement to add a row for each rule.
PL/SQL Code to Insert Rows in the Rules Class Table • --COA Rules for the UniMarket subsystem INSERT INTO COARules (rlm$ruleid, SUBSYSTEMNAME, rlm$rulecond) VALUES ('987', 'UniMarket', 'REGEXP_INSTR(Seg5, ''^8[4-5][0-9][0-9]$'') > 0 and REGEXP_INSTR(Seg4, ''^[2,4,6,9]0$'') > 0');
PL/SQL Code to Insert Rows in the Rules Class Table --COA Rules for the StaffClaim subsystem INSERT INTO COARules (rlm$ruleid, SUBSYSTEMNAME, rlm$rulecond) VALUES('973', 'StaffClaim', 'REGEXP_INSTR(Seg5, ''^2[0-6][0-9][0-9]$'') > 0 and REGEXP_INSTR(Seg4, ''^[2,4,6,8]0$'') > 0');
Process the rules for an event • Use the dbms_rlmgr.process_rules( ) procedure to process the rules in a rule class for an event instance. • Processing the rules consists of passing in an event instance as a string of name-value pairs (generated using the getVarchar( ) procedure)
PL/SQL Code to Process the Rules • BEGIN • dbms_rlmgr.process_rules ( • rule_class => 'COARULES', • event_inst => VALIDCOA.getVarchar('XX', 'XX', 'xxxx', '60','8573', 'zzzz')); • END;
Oracle Issued an Obsolescence Notice • Obsolescence Notice: Rules Manager and Expression Filter features of Oracle Database are obsolete in the next major release after Oracle Database 11g Release 2 (11.2). • Support will only be available for the life of Oracle Database Release11g Release 2. See My Oracle Support Note ID 1244535.1 for more information.
Creating a Business Rule Component 1 4 Define Decision Service name in Advanced tab 2 Define initial XML Facts Tick to expose 3 Input... Output.... 5
Rules Editor in Jdeveloper - Facts Element attributes derived from the input schema Bucketset Attached with Attributes Facts Type
Rules Editor in Jdeveloper - Bucketsets Range or LOV Constraints for Seg5
Rules Editor in Jdeveloper - Rulesets RuleSet Rule IF/THEN Condition Condition If Seg5 is between 8400 to 8599 and Seg4 is any value in (20, 40, 60, 80) Action Modify the systemName value to “UNIMARKET”
Rules Editor in Jdeveloper – Decision Functions Web Service for executing exposed decision functions for underlying Oracle Business Rules
Deploy Web Service • Business rules created in an SOA application are deployed as part of the SOA composite when you create a deployment profile in Oracle JDeveloper. • The SOA composite application ‘COA_RULES_CHITRA’ is deployed to Oracle Enterprise Manager 11g. • Test the Decision Service in the Oracle Enterprise Manager.
Testing the Web Service Input values for Seg4, Seg5,SystemName
Testing Web Service Out Put Modified value for the SystemName
Summary • Yes you can easily migrate to a new Chart of Accounts in eBusiness Suite, without affecting the subsystems that uses the Chat of Accounts. • How :- By having the business logic as rules or expressions in an Oracle 11g table or exposing the business logic as a Decision Service. • Products :- Oracle 11g Rules Manager and Expression Filter OR Oracle Business Rules