我有一个与多个用户共享的实体记录。我想取消激活它时取消共享此记录。我想在插件中做到这一点。但我无法理解如何让共享列表中的所有用户都能访问此记录。怎么做?
这是我的代码段:
protected void ExecutePostPersonSetStateDynamicEntity(LocalPluginContext localContext)
{
if (localContext == null)
{
throw new ArgumentNullException("localContext");
}
var context = localContext.PluginExecutionContext;
var targetEntity = (Entity)context.InputParameters["EntityMoniker"];
var state = (OptionSetValue)context.InputParameters["State"];
var columns = new ColumnSet(new[] { "statecode" });
var retrivedEntity = localContext.OrganizationService.Retrieve(targetEntity.LogicalName, targetEntity.Id, columns);
if (state.Value == 1)
{
RevokeAccessRequest revokeRequest = new RevokeAccessRequest()
{
Target = new EntityReference(personEntity.LogicalName, personEntity.Id),
Revokee = new EntityReference(neededEntity.LogicalName, needed.Id)
};
// Execute the request.
}
}
正如你所看到的,我需要一个实体“neededEntity”,我不知道如何从“targetEntity”或“retrieveEntity”中获取它。
答案 0 :(得分:3)
您需要使用RetrieveSharedPrincipalsAndAccessRequest
您可以从包含的示例开始,基本上在您调用foreach
RevokeAcessRequest
内部