我正在制作一个外部服务,它将在 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 的用户没有系统管理员角色的特权,如何克服异常。
验证分配给该“普通用户”的任何安全角色是否具有在“销售”选项卡下的“订单”实体(销售订单)的最低用户级别(橙色饼图)上授予的创建权限。我猜不是。
授予该权限并验证相同的代码执行。
我是一名优秀的程序员,十分优秀!