As we have been converting our code to packages, we have several
examples of the same package that differ only in the name of one or more
custom attributes that were added to the IDVault schema.

Some customers impose different naming standards for these custom
attributes and it seems counter-productive to need to produce customer
specific packages simply because they don't use the same name for a
custom attribute.

The solution we have been testing is to build the package with ~GCVNAME~
in both filter extensions and schema mapping and prompt for the value of
GCVNAME in the package wizard.

I've tested this under IDM 4.0.1 and use of a GCV (denoted by ~GCVNAME~)
in both filter extensions and schema mapping works fine for a deployed
driver. During driver startup, this is replaced by the actual value from
the GCV.

Thereafter it is as-if the value was static. My understanding is that
this is the design intent of GCVs when represented as ~GCVNAME~ (unlike
the other methods of representing a GCV in policy which are resolved at
runtime rather than driver start)

However is this supported? Is there any validation that the attributes
specified in the filter are present in the IDVault during driver startup?

In designer dataflow view, the ~GCVNAME~ is displayed.

In iManager the ~GCVNAME~ is displayed and trying to retrieve the
IDVault value for this attribute gives "The following namespace
Exception occurred when trying to access the directory,
(ATTRIBUTE_NOT_DEFINED)". This error seems to occur because iManager
queries for the literal string ~GCVNAME~ rather than first expanding the
GCV and then querying for the expanded value.

The iManager issue is the only gotcha I've encountered so far (and yes I
have logged a bug about that). I'm just concerned that the solution may
have other drawbacks which I haven't yet encountered.

Has anyone else tried this type of approach or have any general feedback?

Does anyone have any ideas for an alternate solution?