I was looking for some help on RSV use case, based on my understanding it ensure that all the rules referenced by a rule-set version of App stack must be present in Prerequisite list of rule-set versions.
1. With that said are we saying we should use RSV only for those case where App A may need some of the rules from App B where App A may not be built on App B. So use RSV to put all the Prerequisite rule-set version (RS_AppB:01-02-04) of App B in to one of the Rule-set (RS_AppA which is configured as RSV) of App A. So RS_AppB:01-02-04 is Prerequisite for RS_AppA :02-03-04. With this use case we are saying no need to include RS_AppB in app stack of App A if we are using only few rules from version like RS_AppB:01-02_04.
Plz clarify here for point 1.
2. Let us assume if RS_AppA :02-03-04 has 2 Prerequisite rule-set version RS_AppB:01-02-04, RS_AppBInt:01-02-05 in same order and 1 rule in present in both the rule-set version then which one will be referenced by RS_AppA :02-03-04 at design time.
Your first use case illustrates a reason why ABV is recommended as a best practice. If I interpret your use case correctly, your application would fail at run time with a rule not found error since there is a reference to a rule which is not in the application ruleset list (assuming it would be invoked). ABV guarantees that the run time ruleset stack is the same as the design time ruleset stack.
Regarding your second use case, I would assume that the rule in RS_AppB:01-02-04 would be validated first however as a developer I am not really concerned which rule would be used to validate that a reference exists. I am only concerned that a reference does exist and is accessible and I should be able to determine which one will be executed at run time. If you really want to answer this question, fire up the tracer and save the rule to see which one is referenced. Alternatively you may be able to setup an activity which call another (which exists in different rulesets) and use trace open rule to determine which activity is invoked.
Some history: ABV was introduced sometime in version 6.x to solve problems similar to use case 1.