Registered: 1158198299 Posts: 5,507
Reply with quote
Flags in Metastorm BPM 9 are slightly different that previous versions. One major advantage is that the parameters are well defined and strongly typed.
The real problem we have, however, is that because of this strong typing, and the way Metastorm have created the flag raising mechanism, we are stuffed if we change the parameters for a flag. Basically, every single instance where the flag is raised is instantly broken, and needs replacing. Worse, you have to replace all the parameters, not just add the new one. An alternative is to use the generic flag raising activity and pass in an array of parameters. The trouble with that is that you lose the strong typing, and you get no warning if you forget a parameter or get one wrong. It may even break the flag action at run time, which is worse. In addition, you get no warning for every instance so you cannot be sure you have changed all instances where the flag is raised. So what can we do? Well, there is a third way, and it works much better for us: There is a 'Flags' object in every Project. From this you can actually invoke the flag raising function, which is the same one the Activity uses. You can add the parameters properly, and it is fully validated. Better yet, you can merely add the required parameter when you add it for the Flag itself. Consider this: We have a flag to raise in our Development Solution to create a Test Case form a System Change. We raise this in two different ways (for the sake of example): The first is a 'normal' flag raising activity as generated by the system: The second uses the Flags object in a code segment: OK, so now we decide we want to add another parameter to the Flag: And what happens to our flag raising activities? The standard one fails and requires completely replacing: Whereas our code merely requires an additional parameter: Which is obviously much easier, and preserves the strong typing and validation. As far as we can see, there is also no down side at all. __________________ Post an example, and we will have a much better idea what the problem is. In about 90% of posts, the problem is one of communication. Examples bridge that gap.