/*------------------------------------------------------------------------ File : convert-parent-groups.p Purpose : Converts parent groups from SmartGroup to SmartParentGroup ----------------------------------------------------------------------*/ /* *************************** Definitions ************************** */ BLOCK-LEVEL ON ERROR UNDO, THROW. {Consultingwerk/products.i} /* *************************** Main Block *************************** */ &IF "{&SmartGroupInheritance}" NE "multiple" &THEN MESSAGE "This routine should only be executed when using the" SKIP "multiple group inheritance feature (SCL-3069)!" VIEW-AS ALERT-BOX ERROR . RETURN . &ENDIF DO TRANSACTION: FOR EACH SmartGroup WHERE SmartGroup.ParentGroupGuid > "":U EXCLUSIVE-LOCK: IF NOT CAN-FIND (SmartParentGroup WHERE SmartParentGroup.GroupGuid = SmartGroup.GroupGuid AND SmartParentGroup.ParentingGroupGuid = SmartGroup.ParentGroupGuid) THEN DO: DISPLAY SmartGroup.GroupName WITH DOWN . CREATE SmartParentGroup . ASSIGN SmartParentGroup.GroupGuid = SmartGroup.GroupGuid SmartParentGroup.ParentingGroupGuid = SmartGroup.ParentGroupGuid . END. ASSIGN SmartGroup.ParentGroupGuid = "":U . END. /* Uncommend for test run MESSAGE "Undo" VIEW-AS ALERT-BOX. UNDO . */ END.