Find members held in more than one environment
ProprietaryReport every member an environment library holds a copy of, one row from each copy to each of the others, saying whether the two still agree and by how many lines they differ. Promotion is supposed to leave the same member in each environment, and when it stops doing so nothing announces it: the copy that was fixed in production and never merged back reads like every other. A bind deck is the one member meant to differ — it names the DB2 subsystem it binds on, the collection its packages land in and the library it reads its DBRMs from — so a deck differing in exactly those names is reported as bound elsewhere rather than as drift. Each pair is also a COPIED_TO relationship between the two copies as library members, and every copy with company is marked.
io. moderne. mainframe. inventory. FindEnvironmentCopiesOptional
Which folders of a path say where a member is held. A segment written as itself is matched as itself, {environment} takes the segment naming the environment and {application} the one naming the application whose library it is, and what is left of the path is the member. Defaults to environments/{environment}, which reads environments/PROD/ctlcard/SRTCLM01.ctl as ctlcard/SRTCLM01.ctl in PROD. A shop keeping a library per application per environment writes {application}/{environment} instead.
mod run . --recipe= io. moderne. mainframe. inventory. FindEnvironmentCopiesInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.