A format catalog is addressed as LIBREF.CATALOGNAME-FC. Two places assumed a dataset: - mpe_derived passed the name straight to mp_derivedvars, whose existence check aborted with 'Target table not found: DCTEST.DCFMTS-FC' - so validatefilter, getrawdata, viewdata, getcolvals and stagedata all failed on a catalog. A catalog has no observations, so it can have no derived variables: return an empty variable list and an empty statement file, and leave the view alone. - validatefilter then passed that same -FC name as targetds to mp_filterstore. The engine handles a -FC libds itself (it rewrites it to a cntlout dataset), but a targetds it is handed is used as given, so mp_filtercheck built a step against a name it could not open. targetds is now only passed when the derived view is actually in use. mpe_derived.test gains a case for the catalog path: no derived variables, no generated statements, and no abort.