We've got a development team who have 5 applications (and all of their source in the same System/Subsystem). Each of these applications has it's own version of a particular program. If they make a functional change to one program they want to ensure that this is made to all 5 versions of the program, so we want Endevor to throw a warning or an error if they only make a change to one of the programs.
Now I'm sure I can fiddle with the processor for this particular use case to get it to throw an error, however I've been told they might have a number of other similar use cases for other types.
So to avoid filling my processors with hardcoding I wonder if anyone has got any other solutions or have come across similar requests? I was thinking maybe an additional 'LINKELM' type containing a list of linked elements?
There's a couple of ways you could approach this. Starting with the easiest from an Endevor perspective would be to change the bulk of the program into a COPYBOOK (or multiple COPYBOOKs). Then have the 5 different programs with unique names use the copybook as the body of their program. Changes take place in the commonly shared copybook rather than in the "skeleton" member itself.
Once the developers have done that, it's easy-peasy for Endevor to keep track of which programs are using which copybooks! And package validation gives you the integrity you need.
A messier suggestion I can think of has to do with CONRELE.... but you could create a stub type that tracks the other "versions" of the code and then use CONRELE to associate the member to the program. When it changes, an ACM query in the generate processor could trigger an alert to the other applications. But like I said, from an Endevor perspective, that's messier...