You created either a validation, substitution or a rule, but the results are not what you expected.
Example: you created a validation and when you use it, the messages configured for this validation are always displayed even when it is not appropriate for the action you performed (posting, entering master data).
Possible causes:
- 1. The logical statement contains an error.
- 2. One of the fields used in the logical statement is not filled by the application that calls the rule.
- 3. The logical statement has not been interpreted by the system because you forgot to close the comment within the rule editor. Although this does not cause a syntax error (only as of Release 3.0E), it does mean that the entire rule entered, after the first inverted commas "", is considered to be a comment.
- 4. The value of a field has been changed before the logical statement has been evaluated. This can happen when a subsititution was called up for a field that is used in a statement of a validation that is later called up.
- 5. The validation, substitution or rule is not active for the application from which it is being called.
- 6. You are using a rule in the validation or substitution. The generated source code belonging to the rule is missing. It is possible that message GB081 "Table... cannot be used in the rule" is displayed.
You can solve problems 1, 3, 4, 5 and 6 yourself. Contact SAP in order to solve the second problem.
To identify the problem, we recommend that you follow the following steps:
- 1. Use the simulation tool in the validation/substitution/rule editor to check the logical statement. You can enter different combinations for the values in your rule. The elements used in the rule are evaluated using the same generated ABAP/4 code that is called up from the application. The results of the rule are displayed. This allows you to check your logical statement.
- 2. Use the TRACE function to check the results of your defined rules in the actual callup (for example in a FI posting). You can examine the values which are passed to the rule and see the evaluations of the elements used in the rule. The generated ABAP/4 code is used in order to evaluate the rule(s). The results of the TRACE should, therefore agree with the results of the actual execution.
Other users working in the same system are not affected by the TRACE. The TRACE is activated specifically for each user. Using this tool you can determine the exact cause of the problem.
For Release 3.0 this tool is no longer integrated in the user environment. For more detailed information on this tool refer to the release notes for FI-GLX or FI-SL (2.2 Trace/Simulation; 3.0 handling improvements).
- 3. Close each open comment to ensure that your entire logical expression is interpreted correctly.
- 4. If the TRACE has been activated, but the results of the rule evaluation are not displayed, then the rule is not active for this callup point. Check if you activated the rule for the callup point (for example, for FI, the validation/substitution is activated at the company code level in the configuration menu).
- 5. If none of the above mentioned solutions help you solve the problem, you can set a breakpoint at the point where the rule is called up. You must be familiar with ABAP/4 if you want to use this method.
- a) If you want to examine a validation, set the breakpoint at the beginning of the function module G_VSR_VALIDATION_CALL.
- b) If you want to examine a substitution, set the breakpoint at the beginning of the function module G_VSR_SUBSTITUTION_CALL.
- c) Execute the action in which you expect the callup of the validation or substitution. If the validation is called up, you can check the field contents that have been transferred.
- 6. Implement the attached advance correction. Then execute program RGUGBR00, marking all the options except for the last one ('Gen.substn routns in all clnts'). The corrections are contained in Hot Package SAPKH40B10. If you have already applied this Hot Package, then execute program RGUGBR00 as described above.
No comments:
Post a Comment