Booster Maintain Static Domain Business Rules?
Does anyknow know where I can find the utility "Maintain Static Domain Business Rules" in Headstart for Designer 6i?
Jeroen van Veldhuizen
Rene, thanks for your reply but if I generate the CAPI's I get errors like these:
LINE/COL ERROR
676/4 PLS-00201: identifier 'CAE_VTR_CAPI.PRE_OPERATION' must be
declared
676/4 PL/SQL: Statement ignored
884/4 PLS-00201: identifier 'CAE_VTR_CAPI.POST_INSERT' must be declared
884/4 PL/SQL: Statement ignored
943/4 PLS-00201: identifier 'CAE_VTR_CAPI.PRE_OPERATION' must be
declared
943/4 PL/SQL: Statement ignored
1294/4 PLS-00201: identifier 'CAE_VTR_CAPI.POST_UPDATE' must be declared
1294/4 PL/SQL: Statement ignored
1419/4 PLS-00201: identifier 'CAE_VTR_CAPI.PRE_OPERATION' must be
declared
1419/4 PL/SQL: Statement ignored
1425/7 PLS-00201: identifier 'CAE_VTR_CAPI.G_RECORD' must be declared
1425/7 PL/SQL: Statement ignored
Lilian.
Similar Messages
-
Maintain Super/Subtype Business Rules
Headstart Utilities
Utility : Maintain Super/Subtype Business Rules
Revision : 6.5.1.1
Message : Activity aborted with ORACLE internal errors. -6502 ORA-06502: PL/SQL: numeric or value error
Situation : Super-entity, with two sub-entities. Both the sub-entities have no attributes, the super-entity contains all the attributes. From each of the sub-entities, a relation is defined to another entity (the sub-entities are the parent).
Ludovic SwiggersRene, thanks for your reply but if I generate the CAPI's I get errors like these:
LINE/COL ERROR
676/4 PLS-00201: identifier 'CAE_VTR_CAPI.PRE_OPERATION' must be
declared
676/4 PL/SQL: Statement ignored
884/4 PLS-00201: identifier 'CAE_VTR_CAPI.POST_INSERT' must be declared
884/4 PL/SQL: Statement ignored
943/4 PLS-00201: identifier 'CAE_VTR_CAPI.PRE_OPERATION' must be
declared
943/4 PL/SQL: Statement ignored
1294/4 PLS-00201: identifier 'CAE_VTR_CAPI.POST_UPDATE' must be declared
1294/4 PL/SQL: Statement ignored
1419/4 PLS-00201: identifier 'CAE_VTR_CAPI.PRE_OPERATION' must be
declared
1419/4 PL/SQL: Statement ignored
1425/7 PLS-00201: identifier 'CAE_VTR_CAPI.G_RECORD' must be declared
1425/7 PL/SQL: Statement ignored
Lilian. -
Different tables used in Consolidation Business Rules
I was going through the documentation of different tables that needs to be maintained for consolidation business rules. I am a little confused and need some clarifications.
These are different tables that needs to be maintained for consolidation -
clcELIM - This table will tell what each source account needs to be divided into what 4 destination accounts.
clcRULES - The RULES will tell how this source account needs to be divided (percentage wise as stored in the OWNERSHIP application) into these 4 destination accounts.
clcMETHOD - This table lists down the different methods (along with their types and description) and its used in the clcRULES table
clcELIMH_- What does this table do and where does it come into picture?
*clcELIM_ - Is this same as clcELIM table mentioned above?
clcRULESH - What does this table do and where does it come into picture?
Also, what am I looking at is what is the sequence in which these tables needs to be defined.
For example -
1. clcELIM has a field called RULE whose details are mentioned in clcRULES.
2. clcRULES has a field called METHOD and I_METHOD whose detailes are mentioend in clcMETHOD.
3. .... I am not sure what other tables do? Please fill in the gaps.
Thanks everyone for their help so far.
Ameya Kulkarni
Edited by: Ameya Kulkarni on Sep 18, 2008 7:19 PM
Edited by: Ameya Kulkarni on Sep 18, 2008 7:21 PM
Edited by: Ameya Kulkarni on Sep 18, 2008 7:21 PMGreat explanation Alwin!
Since I am new to SAP BPC world and to tell the truth, consolidation world as well (I am a planning & forecasting guy), my follow up questions are -
(Sorry if the questions are naive).
So according to what you have explained, clcELIM and clcELIMH work together along with clcMETHOD to define the elimination rules for entities.
What do clcRULES and clcRULESH do?
Also you said that these are the SQL tables (clcELIM, clcRULES, clcELIMH etc.) and its advisable not to configure them directly. So what business rules from the administration side update these tables. I am sure the METHOD administration will update clcMETHOD while RULES administration will update clcRULES and clcRULESH, is that right? what about ELIM and ELIMH.
I am asking these questions since I dont have the system to work on yet but will be getting it on Monday next week. Right now I am trying to grasp as much as I can. So if you can send me some snapshots to amey420 at gmail dot com, that will be really appreciated.
Also you can send me the other documents you were talking about. I will shoot you an email as well.
Thanks a lot for your help.
Ameya Kulkarni -
Best practice for business rules
Our business rules have
Fix ( [Cost Center] )
to extract the user's Cost Center from his form so that it runs faster.
What is the best practice for running that same Business Rule but for all Cost Center? Will it be to put that Business Rule in a menu somewhere and let it prompt users to manually type "Cost Center" so that the Business Rule processes all cost centers ?
Thanks.
DavidYou can try this way: create your primary business rule with FIX(@RELATIVE(VarCostCenter,0)), where VarCostCenter is a run time promt. Then you could easily use it to calculate only current member on ther form (fix will give you only 1 member).
Then you create a new sequence and add there your business rule, go to "Launch Variables" tab, find promt for Cost Center, set it to "Total Cost Centers" and click hide. So basically now you have a copy of the primary rule but it runs for all cost centers automatically.
So using this technique you will have to maintain only one business rule! -
BUSINESS RULES FOR Vendor, Customer & PRODUCT
Hi,
Can any one help me to provide Business Rules(Validation Rules) of Vendor, Customer & Product domain to be considered in integrating with other technologies.
Thanks & Best Regards,
GiriHi Joseph,
First tell me how you want to maintain Inventory size wise?? If it is your A is Length, B is Width and C is your Height and you are not maintaining size wise stock then use Length,Width and Height which is in Item master here you can set fix values and activate same columns in document and you can change it in document. But in this case you cannot maintain size wise stock
If you are maintaining stock size wise then you have to create new item code every time.
You cannot use BP catalog number for this.
Thanks
Sachin -
Validation - Business Rule or/and UJ_Validation
Hi experts,
I'm on BPC 7.5 NW, I'm facing problem to construct a simple validation where I need to compare the amount from one parent account against to other. Let's explain the business scenario and after the technical solutions.
Business Scenario
Compare the Total Assets is equal to the Total Liabilities. The Total Assets is represented by a parent account "1", the Total Liabilities is represented by a parent account "2". If it is different show a warning.
This is need to trigger, after the Actual Transactional Data Load + Journals.
Technical Solution
Application: Legal
Dimensions: Empresa (Entity), Conta (Account), Fonte (C_DataScr), Versao (C_Category), Groups, Intco, MesAno (Time), TipMov (Flow), CCusto (User Defined), CLucro (User Defined)
1 - Business Rule
Validation Definition
Validation Account Remark Validation Operand Other destination dimension Members Validation Tolerance
ZATIVO_X_PASSIVO Ativo x Passivo = CONTA=VALIDATIVPASS,INTCO=SPTOTAL,CLucro=ACTEDUMMY,CCusto=ACTENONE 0
Account 1 Flow 1 Sign 1 Account 2 Flow 2 Sign 2 Remark
1 TMTOTAL* 1 2 TMTOTAL* 1 Ativo x Passivo
*The TMTotal Flow is a parent from every data on the master data TipMov (flow)
Validation.lgf
*RUN_PROGRAM VALIDATION
CATEGORY = %VERSAO_SET%
CURRENCY = %GROUPS_SET%
TID_RA = %MESANO_SET%
OTHER = [ENTITY=%EMPRESA_SET%]//For More than one other scope parameters: OTHER = [ENTITY=%ENTITY_SET%;INTCO=%INTCO_SET%...]
*ENDRUN_PROGRAM
Result
When I run with this parameters I receive the message : "UJP_PROCESS_EXCEPTION:Data for category not found in application LEGAL"
2 - Validation with UJ_Validation
Assign the driver dimension to Legal - in case I used the CONTA (Account)
Rule Maintenance
Assigned Member: "1" and "2"
Use Logic Table
Dimension = Empresa (Entity)
Operator "="
Members = TECSA - This is a parent from every Entities.
Result
When I run with this parameters I receive the message : "UJP_PROCESS_EXCEPTION:Data for category not found in application LEGAL"
3 - Validation with UJ_Validation and BADI
Assign the driver dimension to Legal - in case I used the CONTA (Account)
Rule Maintenance
Assigned Member: "1" and "2"
Use BAdI Implementation
BADI_UJ_VALIDATION_RULE_LOGIC
Create a Enhancement ZATIVO_X_PASSIVO
Filter
Rule_Num = 1
APPSET_ID = ZTECSA
DIMENSION = CONTA
Class
METHOD if_uj_validation_rule_logic~do_validation_logic.
FIELD-SYMBOLS:
<field1> TYPE ANY,
<field2> TYPE ANY.
ASSIGN COMPONENT 'FIELD1' OF STRUCTURE is_data TO <field1>.
ASSIGN COMPONENT 'FIELD2' OF STRUCTURE is_data TO <field2>.
IF <field1> NE <field2>.
es_message-message = 'Error in Validation'.
es_message-recno = 1.
es_message-MSGTY = 'W'.
ENDIF.
ENDMETHOD.
And add this line to the script
*START_BADI_UJ_VALIDATION_RULE_LOGIC~DO_VALIDATION_LOGIC
QUERY = ON
WRITE = ON
*END_BADI
Result
Data Region:
[WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:CCUSTO WILL QUERY ON ALL BASE MEMBERS.
[WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:CLUCRO WILL QUERY ON ALL BASE MEMBERS.
[WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:CONTA WILL QUERY ON ALL BASE MEMBERS.
[WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:FONTE WILL QUERY ON ALL BASE MEMBERS.
[WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:INTCO WILL QUERY ON ALL BASE MEMBERS.
[WARNING!] NO MEMBER SPECIFIED FOR DIMENSION:TIPMOV WILL QUERY ON ALL BASE MEMBERS.
[WARNING!] MEASURES IS NOT SPECIFIED!
So what could I make to maintain all my options to do what I need ?
I appreciate any help
Best Regards
Alexandre Mendoza CollepicoloHi,
Just to check, can you try and hardcode the category in the rules itself...just for a test to see if it is working.
You can have the category mentioned as CATEGORY=ACTUAL in the rules itself for Other source dimension members and other destination members. J
This is to check if the validation package runs successfully or not.
Thanks,
Sreeni -
Is it possible to use "not" logical operator in a Business Rule Condition?
This seems like a very simple request to me, but I cannot see any other questions/answers about it.
Can I add a "not" to my Conditions in a Business Rule?
My scenario is that I have a core Entity with a Type. The Type is a domain attribute with a Code and Name. The Code of the core Entity should in the form 'AA-9999', where 'AA' is the Code from Type.
The idea is that I have a business rule with the condition "not
Code starts with DBA.Type.Code" and the Action would be "Code is not valid".
Is this possible? Is there a better way of implementing this?
Thanks,
MichaelYeah! This is the board in question! But it has lots of versions, like K7T Pro, K7T Pro2 (my one!), K7T Turbo, K7T Turbo Limited Edition and K7T Turbo2, all of then are WS-6330 Lite... They phisically diferent, but the BIOS seens to be the same... I want to know is this feature in the newer version is going to work or not on my board (MS 6330 Lite K7T Pro2 Ver:1) ....
Doesn´t matter what board you choose (PRO, PRO2, Turbo, Turbo2) the MSI page shows all the same BIOS to Download... But I think that this feature is only applicable for K7T Turbo2, but will make no difference in my! At least that´s what I think...
But you´re right! The board that I have is the one on the link you said!
Thanks! -
Solving "COMMIT business rules" on the database server
Headstart Oracle Designer related white paper
"CDM RuleFrame Overview: 6 Reasons to get Framed"
(at //otn.oracle.com/products/headstart/content.html) says:
"For a number of business rules it is not possible to implement these in the server
using traditional check constraints and database triggers. Below you can find two examples:
Example rule 1: An Order must have at least one Order Line ..."
But, one method exists that allows solving "COMMIT rules" completely on the database level.
That method consists of the possibility of delaying the checking of the declarative constraints (NOT NULL, Primary Key, Unique Key, Foreign Key, Check Constraints) until the commit
(that method was introduced first in the version 8.0.).
E.g. we add the field "num_emps" to the DEPT table, which always has the value of the number
of the belonging EMP rows and add DEFERRED CK which uses the values from that field:
ALTER TABLE dept ADD num_emps NUMBER DEFAULT 0 NOT NULL
UPDATE dept
SET num_emps = (SELECT COUNT (*) FROM emp WHERE emp.deptno = dept.deptno)
DELETE dept WHERE num_emps = 0
ALTER TABLE dept ADD CONSTRAINT dept_num_emps_ck CHECK (num_emps > 0) INITIALLY DEFERRED
Triggers that insure the solving of the server side "COMMIT rules" are fairly simple.
We need a packed variable that is set and reset in the EMP triggers and those value
is read in the bur_dept trigger (of course, we could have place the variable in the package
specification and change/read it directly, thus not needing the package body,
but this is a "cleaner" way to do it):
CREATE OR REPLACE PACKAGE pack IS
PROCEDURE set_flag;
PROCEDURE reset_flag;
FUNCTION dml_from_emp RETURN BOOLEAN;
END;
CREATE OR REPLACE PACKAGE BODY pack IS
m_dml_from_emp BOOLEAN := FALSE;
PROCEDURE set_flag IS
BEGIN
m_dml_from_emp := TRUE;
END;
PROCEDURE reset_flag IS
BEGIN
m_dml_from_emp := FALSE;
END;
FUNCTION dml_from_emp RETURN BOOLEAN IS
BEGIN
RETURN m_dml_from_emp;
END;
END;
CREATE OR REPLACE TRIGGER bir_dept
BEFORE INSERT ON dept
FOR EACH ROW
BEGIN
:NEW.num_emps := 0;
END;
CREATE OR REPLACE TRIGGER bur_dept
BEFORE UPDATE ON dept
FOR EACH ROW
BEGIN
IF :OLD.deptno <> :NEW.deptno THEN
RAISE_APPLICATION_ERROR (-20001, 'Can''t change deptno in DEPT!');
END IF;
-- only EMP trigger can change "num_emps" column
IF NOT pack.dml_from_emp THEN
:NEW.num_emps := :OLD.num_emps;
END IF;
END;
CREATE OR REPLACE TRIGGER air_emp
AFTER INSERT ON emp
FOR EACH ROW
BEGIN
pack.set_flag;
UPDATE dept
SET num_emps = num_emps + 1
WHERE deptno = :NEW.deptno;
pack.reset_flag;
END;
CREATE OR REPLACE TRIGGER aur_emp
AFTER UPDATE ON emp
FOR EACH ROW
BEGIN
IF NVL (:OLD.deptno, 0) <> NVL (:NEW.deptno, 0) THEN
pack.set_flag;
UPDATE dept
SET num_emps = num_emps - 1
WHERE deptno = :OLD.deptno;
UPDATE dept
SET num_emps = num_emps + 1
WHERE deptno = :NEW.deptno;
pack.reset_flag;
END IF;
END;
CREATE OR REPLACE TRIGGER adr_emp
AFTER DELETE ON emp
FOR EACH ROW
BEGIN
pack.set_flag;
UPDATE dept
SET num_emps = num_emps - 1
WHERE deptno = :OLD.deptno;
pack.reset_flag;
END;
If we insert a new DEPT without the belonging EMP, or delete all EMPs belonging to a certain DEPT, or move all EMPs of a certain DEPT, when the COMMIT is issued we get the following error:
ORA-02091: transaction rolled back
ORA-02290: check constraint (SCOTT.DEPT_NUM_EMPS_CK) violated
Disvantage is that one "auxiliary" column is (mostly) needed for each "COMMIT rule".
If we'd like to add another "COMMIT rule" to the DEPT table, like:
"SUM (sal) FROM emp WHERE deptno = p_deptno must be <= p_max_dept_sal"
we would have to add another column, like "dept_sal".
CDM RuleFrame advantage is that it does not force us to add "auxiliary" columns.
We must emphasize that in real life we would not write PL/SQL code directly in the database triggers, but in packages, nor would we directly use RAISE_APPLICATION_ERROR.
It is written this way in this sample only for the code clarity purpose.
Regards
Zlatko SiroticZlatko,
You are right, your method is a way to implement "COMMIT rules" completely on the database level.
As you said yourself, disadvantage is that you need an extra column for each such rule,
while with CDM RuleFrame this is not necessary.
A few remarks:
- By adding an auxiliary column (like NUM_EMPS in the DEPT table) for each "COMMIT rule",
you effectively change the type of the rule from Dynamic (depending on the type of operation)
to a combination of Change Event (for updating NUM_EMPS) and Static (deferred check constraint on NUM_EMPS).
- Deferred database constraints have the following disadvantages:
When something goes wrong within the transaction, then the complete transaction is rolled back, not just the piece that went
wrong. Therefore, it becomes more important to use appropriate commit units.
There is no report of the exact row responsible for the violation nor are further violations either by other rows or of other
constraints reported.
If you use Oracle Forms as a front end application, the errors raised from deferred constraints are not handled very well.
- CDM discourages the use of check constraints. One of the reasons is, that when all tuple rules are placed in the CAPI,
any violations can be reported at the end of the transaction level together with all other rule violations.
A violated check constraint would abort the transaction right away, without the possibility of reporting back other rule violations.
So I think your tip is a good alternative if for some reason you cannot use CDM RuleFrame,
but you'd miss out on all the other advantages of RuleFrame that are mentioned in the paper!
kind regards, Sandra -
Hello All, We are currently experiencing the problem with the Business Rules. After some idle time in the application, we get an error "Cannot connect to essbase server" and the business rules fail to run.
We are using Planning: 9.3.1.1.5 and Oracle :10 R2
below are some details:
Last usage time: 5:27 PM on 7/7/08
User logged in at 7:27 AM on 7/8/08
the hbrlaunch.log file has the following Exception entry at 7:27 AM:
************************ Date/Time Ended: 2008/07/08:07:27:30.399 CDT Type/Server/Application/Database: Essbase/xxx..domain.com/CC_Plan/CC_Plan Business Rule Name: CC_CurrencyAndAgg_MnthlyInp_OpsMisc By HBR user: user1 By Essbase user: admin Date/Time Ended: 2008/07/08:07:28:05.901 CDT Type/Server/Application/Database: Essbase/xxx.domain.com/CC_Plan/CC_Plan Business Rule Name: CC_AddAcct_OpsMisc_MonthlyInput By HBR user: user1 By Essbase user: admin Exception: Error connecting to Essbase server xxx.domain.com. *************************
After logging the above exception about error connecting to essbase, no more exceptions are logged. In AAS_out.log, at around the same time the user experieced error, the following entry was found. not sure if they are related.
2008-07-08 07:27:08,735 INFO Thread-23 com.hyperion.hbr.db.DBPluginDataTable - Deleting Plugin data older than TO_DATE('2008/07/08 07:25:44','YYYY/MM/DD HH24:MI:SS')
Some exceptions were logged a few hours prior to the error being occurred:
2008-07-06 19:25:01,258 WARN [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' com.hyperion.hbr.security.HbrSecurityAPI - Exception occured: MSG_USER_PROVISIONING_NATIVEPROVIDER_SETUP_ERROR
At around the same time in essbase application log, we have these errors:
[Tue Jul 08 07:27:55 2008]Local/CC_Plan/CC_Plan/admin/Error(1200315) Error parsing formula for [REGION DEFINITION] (line 0): invalid object type [Tue Jul 08 07:27:55 2008]Local/CC_Plan/CC_Plan/admin/Warning(1080014) Transaction [ 0x310231( 0x48735d4b.0x2da78 ) ] aborted due to status [1200315].
In Essbase.log file, right around the same time the error occurred, it logs some errors stating thet the substution variables does not exist.
[Tue Jul 08 07:05:15 2008]Local/ESSBASE0///Info(1051001) Received client request: Logout (from user [admin]) [Tue Jul 08 07:05:15 2008]Local/ESSBASE0///Info(1051037) Logging out user [admin], active for 5 minutes
[Tue Jul 08 07:26:15 2008]Local/ESSBASE0///Error(1051021) You have been logged out due to inactivity or explicitly by the administrator.
[Tue Jul 08 07:27:14 2008]Local/ESSBASE0///Error(1051007) Invalid login id - request [Logout] failed
*** errors about substitution variables *****
[Tue Jul 08 07:27:55 2008]Local/ESSBASE0///Warning(1051003) Error 1051083 processing request [Get Substitution Variable] - disconnecting
[Tue Jul 08 07:50:20 2008]Local/ESSBASE0///Warning(1051003) Error 1051083 processing request [Get Substitution Variable] - disconnecting
********************************************************************************************* Planning_err.log file has the following entries: ********************************************************************************************
Creating rebind thread to RMI java.lang.RuntimeException: Unable to aquire activity lease on activity 1 as the activity is currently leased by another server.
The table: hbrplugindata in the AAS schema, is refreshed every minute.
A new record is inserted as per the logs, but there is only one record in the table. It could be that the delete command is not logged.
No exception are logged either. Could it be that there are exceptions during this operation and thus results in the failure of BR's?
Currently we have to restart planning and RMI services to get the business rules to be working again.
Any help in this matter is welcome. Thanks!Hi, we have the same error (region definition error, rules in planning not running for approx. 15 min) - then suddenly working again.
This is a desaster, as planning users save not-calculated data and cause inconsistency in the system.
had this in planning 4 installation up to Aug.08 and then in system 9 (with planning patch 5) - rel. 9.3.1.1.5 using IBM Websphere -
all quick solution from hyperion did not really help: increase number of ports, java cache, change netrelay, netretryconect etc. in essbase.cfg and
Olap.server.net retry +Olap.server.net connect delay in essbase.properties files
Review business rules and users for errors, hardware, caches, fragmentation, potential system overload, search for corrupted database, invalid formulas in outline ...
it came out, that it was just 1 business rule causing this trouble: our only rule, where you enter in a user prompt a numeric value -problem is quotation marks.
we installed the cumulative Service Fix 11 for this (and other reasons) last week (takes approx. 4 hours to install with all the manual steps - just came out in May - Rel. 9.3.1.1.11)
as the error happened only from time to time in the peak of our planning session, we will monitor next months but are very optimistic to have things fixed (solution obviously in fix 9 already)
this link may help as well:
http://www.network54.com/Forum/58296/thread/1201134375/1217512299/Strange+behaviour+with+HBR++%28Planning+931%29
I suggest to install Service Fix 11 - if you read the manual, you probably find more fixed errors in there. (Patch is for Planning and BR Rules/AAS EAS) -
Dynamic Business Rules - Where to place
Hi,
I am doing POC for a fortune 10 client and they have some business rules before crud actions are going to take place in DB. We have very minimal tables (less than 10) and its small application but web service (btw, this has to be webservice app) consumers are around 200 per sec.
The requirement with respect to business rules are also minimal (like 30 rules for entire project) but these rules will change very often(like once in a month). Assume these rules are on the enterprise level and not on the application level.
I am looking for best possible solution to achieve by developing small rules engine or putting them into another xml and apply transformation once request arrives.
I am confused of deciding which is better like putting business rules in xslt vs java business object. XSLT is allowing me to change rules with minimum impact on the system but it is hard to maintain and adding new rules (we are not anticipating any more new rules within next two years).
On the other hand, If I put in Java business object then it allows lot of flexibility to inject new rules and easy to maintain with cleaner code.
So, in short my questions are below.
1. Is it good practice to put small set of business rules in xml/xslt?
2.are there any alternative business rules engines are available?
Any other suggestion related to above discussions are welcome.
Thanks.I believe this is what you want.
DROOLS - drools - dynamic rules for java
http://sourceforge.net/project/showfiles.php?group_id=37037
http://www.onjava.com/pub/a/onjava/2005/08/03/drools.html?page=2
good luck. -
Thanks in advance
Business rules framework: Organizations may need to process information differently depending on the data submitted. In the case of BizTalk, information is submitted
via a message, and data within that message may require special processing once it has been received by an orchestration. The orchestration must be able to determine what that data is and how to process it. Additionally, rules around how that data is interpreted
may change at any given time, even after the solution is in production. For example, a rule may be required that allows processing messages as long as a specific field has a value less than 10, but must stop processing and notify an administrator when this
value is equal to or exceeds 10. The ability to store and access such a rule and to make it available for customization through a user-friendly interface is provided by the BizTalk business rules framework.
Vocabularies: They are specific to
business rules framework. These consist of all defined values that you can use when creating
a rule, including constants, predicates, XML nodes, and so on.
The terms used to define rule conditions and actions are usually expressed by domain or industry-specific nomenclature. For example, an e-mail user writes rules in terms
of messages "received from" and messages "received after," while an insurance business analyst writes rules in terms of "risk factors" and "coverage amount."
Underlying this domain-specific terminology are the technology artifacts (objects, database tables, and XML documents) that implement rule conditions and rule actions.
Vocabularies are designed to bridge the gap between business semantics and implementation.
Reference:
BizTalk 2010 Recipes: A Problem-Solution Approach
MSDN:
Business Rules Engine
MSDN:
Vocabularies
TechNet Wiki:
https://social.technet.microsoft.com/wiki/contents/articles/6480.biztalk-server-business-rule-engine-survival-guide.aspx
If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply. -
Error creating 'Journalling Business Rules'
When running 'Maintain Journalling Business Rules' for a table with 19 columns an EMPTY 'BR_xxx_JRN_DEL' trigger is created , hence the CAPI definition fails.
If I add 1 more column to make it 20 columns the 'BR_xxx_JRN_DEL' and the CAPI are both generating correctly.
Has anyone else found this ?????Sandra,
Ok we have the modified version of hsd and we still have similar problem. Here is the detailed log
Log Messages
Utility Maintain Journalling Business Rules
Revision 6.5.3.2
Parameters
Prompt Value
Table to be Journalled app/ my table
Errors
Message
Activity aborted with ORACLE internal errors.
-6502 ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Debug Detailed
Message
BLAPI.OPEN_ACTIVITY
Number of Tables to create/delete Journalling Rules for: 1
Business Rule Design Definition for BR_xxx_JRN_UPD
No Update Trigger Columns specified. Business Rule BR_xxx_JRN_UPD will fire when any column is updated.
end of initial_checks
Create/maintain message with constraint_name = HRS_BR_xxx_JRN_UPD
Message QMS-00151 already exists in Headstart message tables, no new message was created.
Activity aborted with ORACLE internal errors.
-6502 ORA-06502: PL/SQL: numeric or value error: character string buffer too small
and this is the piece of code from bltext
-- 6.5.2.3 changed if condition
-- if length(l_text_lines(l_ctr + 1))+ 2 + length(l_build_string) > 1990
if length(replace(l_text_lines(l_ctr + 1), chr(10), NL_CR)||NL_CR)
+
length(l_build_string) > 2000
then
exit;
end if;
end loop; -- compose 1 build string
-- 6.5.2.3 changed if condition
-- if nvl(length(l_build_string),'') > 0
if nvl(length(l_build_string),0) > 0
then
-- 6.5.0.1 column element_type_for added.
insert into cdi_text
( txt_ref
, txt_seq
, txt_type
, txt_text
, element_type_for
values
( p_el_id
, l_insert_at_seq
, p_text_type
, l_build_string
, p_el_type
end if; -- nvl(length(l_build_string),'') > 0
if l_ctr >= p_text_counter
then
exit;
else
l_build_string:= '';
l_insert_at_seq:= l_insert_at_seq + 1;
end if; -- l_ctr = p_text_counter
end loop; -- (maximum) over all lines in local text-store
end if; -- l_lock
exception
when others
then
bllog.write
('Exception: '||sqlerrm
, bllog.debug
bllog.write
(' Length Buildstring '||to_char(length(l_build_string))
, bllog.debug
bllog.write
(' Line number '||to_char(l_insert_at_seq)||' Text type = '||p_text_type
, bllog.debug
bllog.write
( 'Exception; Note that the text for this element may have been corrupted.'
, bllog.errors
end write_lines_to_repository; -
Problem with Business Rules access from Shared Services
Hello,
When trying to access Business Rules from Shared Services (expand Business Rules and click on the application) I get the "Refer to the Security Guide to configure security permissions for this application" message, but the user is fully provisioned for Business Rules. It happens even logged on as admin. Access from Administration Services works fine. The version Hyperion system 9 (9.3.0.1). What is wrong? Help, please.
Thanks,
TimurYou can't access Business Rules from Shared Services. This is no different from any other application - Planning, Essbase, etc. You can provision users to the application roles, but you can't actually do anything with the application, other than security, in Shared Services. You use Admin Services to maintain Business Rules.
-
Validate data - business rules.
Hi,
We're using CDM Ruleframe to implement our business rules. As there was a need to bulk load a bunch of data, I disabled the business rules temporarily using the procedure disable_all_br.
Is there a way to find out (afterwards) which of the records are in conflict with one or more business rules? I now that it can be checked for the static business rules via the procedure validate_all_statis_br, but what about the dynamic ones?
Your replies are highly appreciated.
Best regards,
Nancy.Hi Vijay,
just to make sure that I understand your scenario correctly:
You import some business data in a table into the BRF+ (e. g. column1 = country, column2 = city ...). Now you want to process the lines of the table via a decision table namely one column (i. e. the corresponding business data) is equal to a condition column in your decision table (e. g. one condition column = country).
If this is the case I am afraid that there is no other option than to loop over your table with the data and evaluate the line with the decision table.
Concerning your performance problems:
In general there are a lot of notes that optimize the performance for the processing of decision tables, see these blogs:
Great Performance Improvements in NW DSM/BRFplus
Notes for Performance Optimization in BRFplus
When you have your decision table in single match mode (so when the first matching entry is hit, the processing of the decision table stops and the result is returned) you can tune the performance be rearranging the row so that the ones that will match most propably are at the top of the decision table.
Maybe there are combinations of data in your input that do not need to be processed in the decision table (I do not know your scenario, but theoretically that is possible) so perhaps you can reduce the amount of data that has to be processed by excluding these entries in the loop
Hope that helps
BR
Christian -
Hi Friends,
I came across this questions during my discussion with stakeholders who plan to leverage OBR in their applications:
Q] If we edit Business Rules at run time, how can we maintain versions to track changes and revert to a previous version if required?
Any suggestions/experiences?
Thanks,
Sachin.Yep. Since MDS is included in SQL Server I have several customers who use it to create a simple way for end users to manage "homeless" data.
David
David http://blogs.msdn.com/b/dbrowne/
Maybe you are looking for
-
Trying to use Acrobat 9 standard on a PC running VISTA business, but it crashes immediately and fails and the error message states Run Time Error and Abnormal program termination. Lots of stuff on the internet about Adobe and run time errors but no
-
Well I've had a [expletive deleted] of a day with your Adobe Creative Cloud. Let me tell you about it: 1) Had to replace a single bit of video footage in Premiere project I was working on. It was eported as an FLV originall, as it was a Flash file or
-
I was trying to upload pic of my phone, I said my Icloud was not up to date so it took me to Icloud and it gave me two options I chose update I cloud then the update stopped and said Restore failed and I haven't been able to do anything on my phone i
-
How do I get Mozilla to be the browser that opens whn I start my computer. Also, wwwhen I click a site on my email, I want it to go to Mozilla, not Internet Explorer.
-
are