我正在创建一个外部服务,它将创建一个Order entity of Dynamics365中的记录,其中的默认字段(例如:由和一些默认字段创建)将以想要创建的用户命名。
为此,我尝试在OrganizationServiceProxy类上使用CallerId属性。我正在通过客户关系管理的用户设置CallerId属性,用户实际上想要创建一个记录。但是,只有当客户关系管理系统的用户具有系统管理员角色时,我才能创建记录。
为了更好地理解,添加了一些代码块:
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
}现在,我的问题是,如果客户关系管理系统的用户没有系统管理员角色的特权,那么如何克服这个例外。
发布于 2019-03-24 21:21:53
验证分配给该“普通用户”的任何安全角色是否在“Sales”选项卡下的“order”实体(sales )的最低用户级别(橙色饼)上创建特权。我想不是。
授予该权限&验证相同的代码执行。

发布于 2019-03-24 20:12:06
只要您正在设置的用户具有CallerId的销售经理安全角色,您的代码就能正常工作。与您登录的用户还必须至少具有一个销售经理安全角色和代表另一个用户特权的法案,该权限可以在Business选项卡下找到。
https://stackoverflow.com/questions/55324796
复制相似问题