One of the most handy things come with generic relations is that you can limit field range based on generic relations. Prior to that, you could only limit value range of a code field. Now you can limit range of any sd entity. For example based on the template you could limit the value range of assignment to work group. Or using a single ui rule could limit the value range of service call classification based on service.
Furthermore you can create relationships between same items, like service call to service call. The only limitation I have found so far, is that on the view of incoming/outgoing relations the relation type cannot be shown.
Thanks for the reply John, using generic relations to limit values is definitely very handy.
As for showing the incoming and outgoing generic relations, have you tried using a reporting tool to display the information from the database before? I haven't yet looked, but I imagine that they would be stored in a database view which might be handy for reporting.
select rct.rct_name as 'Generic relation Name', ent_from.ent_name as 'Entity From', ent_to.ent_name as 'Entity To' from IFC_GENERICRELATIONS grl inner join REP_CODES_TEXT rct on grl.grl_rcd_oid=rct.RCT_RCD_OID inner join REP_CODES rcd on rcd.RCD_OID=rct.RCT_RCD_OID inner join ifc_entities ent_from on ent_from.ENT_OID=rcd.RCD_FROM_ENT_OID inner join ifc_entities ent_to on ent_to.ENT_OID=rcd.RCD_TO_ENT_OID where rct.RCT_LNG_OID=1033
The point is that this should also be listed on the outgoing/incoming relations. If for example you create a generic relation between two service calls, then in the list of generic relations on the service call form it will only display From;Description and To;Description. This is not enough, it should also display the relation name, for example "Service Call to Service Call".
SELECT GRL.grl_from_oid RELATION_FROM , GRL.grl_to_oid RELATION_TO , ENT.ent_name FROM_ENT_TYPE , ENT2.ent_name TO_ENT_TYPE , RCT.rct_name REL_TYPE FROM IFC_GENERICRELATIONS GRL , REP_CODES RCD , REP_CODES_TEXT RCT , IFC_ENTITIES ENT , IFC_ENTITIES ENT2 WHERE GRL.GRL_RCD_OID = RCD.RCD_OID AND RCD.rcd_to_ent_oid = ENT.ent_oid AND RCD.rcd_from_ent_oid = ENT2.ent_oid AND RCD.rcd_oid = RCT.RCT_RCD_OID
The output of this will show the OIDs of the entities that are related and the relation type. Based on this query, I could customise more database views to show the information that I want.
Peter, though it's true that database and UI rules can achieve what you want in terms of limiting, for new implementations or for future limiting rules the generic relations could be easier (for example I like being able to limit assignable workgroups based on Service) and I like being able to relate a Change record directly to multiple CI records.