【问题标题】:CRM 2013: Passing Account Info into Webservice via PluginCRM 2013:通过插件将帐户信息传递到 Web 服务
【发布时间】:2014-11-03 23:25:45
【问题描述】:

我们正在使用 CRM 2013。我正在尝试创建一个在创建 CRM 帐户时触发的插件。然后插件将触发并将属性“AccountNumber”发送到内部网络服务。但是,现在似乎没有调用 Web 服务。

起初我以为我必须做一个 PostImage,但后来决定不再使用它。同样,起初我使用“EntityMoniker”作为插件参数,但后来将其更正为输入“Target”。

这是我的代码:

有人可以指导我正确的方向吗?

var targetEntity = context.GetParameterCollection<Entity>(context.InputParameters, 
                                                          "Target");

if (targetEntity == null)
  {throw new InvalidPluginExecutionException(OperationStatus.Failed, 
                                            "Target Entity cannot be null");}

// Make sure the new Account Id is available
if (!context.OutputParameters.Contains("id"))
  {return;}

var accountID = new Guid(context.OutputParameters["id"].ToString());

//putting postImage here but not being used
var postImage = context.PostEntityImages["PostImage"];

if (postImage == null)
  {throw new InvalidPluginExecutionException(OperationStatus.Failed, 
                                            "Post Image is required");}

var AccountNumber = context.OutputParameters["new_AccountNumber"].ToString();
var service = new ServiceClient("");
var newProp = new PropertySetup
{
  _prop = new Property
  {
    _propertyNm = AccountNumber
  }
};

service.CreateNewProperty(newProp);
service.Close();

【问题讨论】:

    标签: web-services plugins crm dynamics-crm-2013


    【解决方案1】:

    获取 new_AccountNumber 属性更改:

    var AccountNumber = context.OutputParameters["new_AccountNumber"].ToString();
    

    var AccountNumber = targetEntity.Attributes["new_AccountNumber"].ToString();
    

    【讨论】:

    • 谢谢。我改变了它,但是我仍然没有看到任何网络服务调用。有没有办法检查插件是否被触发?提前致谢。
    • 是的,有一种方法可以检查插件是否被触发。你可以简单地抛出一个异常或者你可以调试你的插件:inogic.com/blog/2012/06/how-to-debug-plugins-using-profiler
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    相关资源
    最近更新 更多