我正在做一个外部服务,它将在Dynamics 365的 Order 实体中创建一条记录,其中的默认字段(例如:创建者和一些默认字段)将以想要创建。
为此,我尝试使用 OrganizationServiceProxy 类的 CallerId 属性。我由实际上想要创建记录的CRM用户设置CallerId属性。但是,只有crm用户具有系统管理员角色,我才能创建记录。
添加了一些代码块以便更好地理解:
public void Get(Guid userId)
{
var proxy = new OrganizationServiceProxy(new Uri(c.ServiceUri), null, crmCredentials, null);
proxy.EnableProxyTypes();
var context = new OrganizationContext(proxy);
// now setting caller id
proxy.CallerId = userId;
// generating order entity
var t = new SalesOrder();
t.Name = "Demo";
.....
...
.
context.AddObject(t);
context.SaveChanges(); // getting exceptions for normal user on save changes
}
现在我的问题是,如果crm用户没有使用系统管理员角色的特权,那么如何克服此异常。