edmiRemoteDeleteGroup

EdmiError edmiRemoteDeleteGroup(SdaiServerContext serverContextId,
                                  SdaiGroup         groupId, 
                                  SdaiInvocationId  *edmiInvocationId);

Deletes an EDMgroup identified by its groupId from a remote EDMdatabase. An EDMgroup may not be deleted as long as an EDMuser is connected to the remote EDMserver with this EDMgroup account. Neither may it be deleted if any data in the database have the actual EDMgroup to be deleted as the owner group. Only the superuser may use this function.

Arguments


TypeNameComment
 SdaiServerContext

serverContextId

Context identification, from edmiDefineServerContext

 SdaiGroup

groupId

The numeric groupID that uniquely identifies the EDMgroup to be deleted.

SdaiInvocationId  

edmiInvocationId

Currently not used.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

 

Options


  

 

Example


 

 /* Delete the Group 'Guest' and Give
 all objects owned by 'Guest' to  
 group 'Friend'. */ 
 EdmiError rstat;
 SdaiServerContext suContext;
  
 /* Define Remote Server Context
 for the superuser */ 
 rstat = edmiDefineServerContext("SuperUserContext",
 "superuser", NULL, "xfx56kl9",
 "TCP", "9090", "MyServerHost",
 NULL, NULL, NULL, NULL, NULL, &suContext); 
  
 /* Try to delete group 'Guest' */
 rstat = edmiRemoteDeleteGroupBN(suContext, "Guest", NULL);
 if (rstat == edmiE_GROUP_OWNS) {
 /* 'Guest' may not own objects when deleted. 
 Must locate an object owned by 'Guest'. */ 
 SdaiAggr _instAggr; 
 SdaiModel _instId; 
 SdaiInteger _index, _nInst, _nTot; 
 SdaiUser _guestGroupId, _friendGroupId; 
  
 /* Get the 'Guest' group Id */ 
 rstat = edmiRemoteGetGroup(suContext, "Guest", &_guestGroupId, NULL); 
  
 /* Get all edm_models from the ExpressDataManager model */ 
 rstat = edmiRemoteGetEntityExtentBN(suContext, "SystemRepository",  
 "ExpressDataManager", "EDM_MODEL", 0,  
 &_instAggr, &_nInst, &_nTot, NULL); 
 _index = 0; 
 _nInst = 1; 
 _instId = 0; 
 /* Look for models owned by 'Guest' */ 
 rstat = edmiRemoteFindAggrInstances(suContext, _instAggr,  
 "GROUP = _guestGroupId", 1,  
 &_index, &_nInst, &_instId, NULL);  
 if (!_instId) { 
 /* 'Guest' owns no models. Get all edm_repositories  
 from the ExpressDataManager model */ 
 rstat = edmiRemoteGetEntityExtentBN(suContext, "SystemRepository",  
 "ExpressDataManager", "EDM_REPOSITORY", 0,  
 &_instAggr, &_nInst, &_nTot, NULL); 
 _nInst = 1; 
 /* Look for repositories owned by 'Guest' */ 
 rstat = edmiRemoteFindAggrInstances(suContext, _instAggr,  
 "GROUP = _guestGroupId", 1,  
 &_index, &_nInst, &_instId, NULL);  
 if (!_instId) { 
 /* 'Guest' owns no protected objects. Something is wrong. 
 There is nothing more to be owned by 'Guest' !! */  
 printf("ERROR: Can not find object owned by 'Guest'"); 
 goto err; 
 } 
 } 
 /* Get the 'Friend' group Id */ 
 rstat = edmiRemoteGetGroup(suContext, "Friend", &_friendGroupId, NULL); 
  
 /* Give all objects owned by 'Guest' to 'Friend' */ 
 rstat = edmiRemoteChangeInstanceOwner(suContext, _instId,  
 _friendGroupId, FOR_ALL_OWNED_INSTANCES, NULL); 
  
 /* Delete 'Guest' */ 
 rstat = edmiRemoteDeleteGroup(suContext, _guestGroupId, NULL); 
 printf("\n'Guest' was deleted. 'Friend' was given ownership \ 
 to all objects previously owned by 'Guests'"); 
 }
 . . .

 

See also

Filter by label

There are no items with the selected labels at this time.

Â