I'm still new to OPA and taking on existing rulebases at work. I have a question concerning maintenance.
Our rule has an Interview folder with the question screens that will be executed. I was told we are doing this because the business users wanted several questions that only collect data to appear on the same screen. In the .doc a condition such as "the screen 'Able to Work' has been displayed" exists. My question is can the screen name 'Able to Work' be a variable and not hardcoded? It just seems that this is open to a lot of errors if someone renamed the screen and then did not update the .doc.
The text of the variable "the screen 'Able to Work' has been displayed" is just text. There is an underlying boolean variable that will, presumably, be set to true when the appropriate screen has been displayed. If they change the name of the screen, the variable won't change, so it shouldn't break.
Changing the screen name, or even the boolean values text should not affect behavior, so, from this point of view you are probably ok, in that, its not as fragile as you think.
Frank - I think Carol's interpretation is correct. The attribute she mentioned ("the screen 'Able to Work' has been displayed") sounds like a screen attribute, not a regular attribute. This means that if the question screen is renamed, then the screen will no longer be picked up by the procedural rule, and instead I'd expect she'd get an automatic screen with the question "Has the screen 'Able to Work' been displayed?"
(Create a screen attribute: http://docs.oracle.com/html/E27987_01/Content/Interviews%20and%20flows/Create%20_modify_or_delete_a_question_screen.htm#CreateScreenAttribute) Carol - If you need to change the name of that question screen, then you will also need to edit the procedural rule which calls the screen. I see your point that this could lead to errors if people aren't being careful. You are correct on that. However, given that it's pretty simple to edit the rule, to identify where the screen attribute has been used (using Find Attribute usage), and to identify at runtime if the attribute hasn't been updated in the rule, I think it's not too much of a big deal. It's just one of those things people need to be mindful of.
It's not usual to make regular or extensive changes to screen names anyway, so it's probably not something you'll need to worry about much. And of course this issue only impacts screens where screen attributes have been used (which I assume is only a small number of screens).