是否可以在插件管道CRM 2011之外设置共享变量

时间:2013-10-24 19:05:21

标签: variables dynamics-crm-2011 shared

我想创建一个实体的记录,但我需要将一个guid列表传递给pre create插件。我不想创建字段或相关实体来执行此操作。我可以使用共享变量来完成吗?

换句话说,是否可以在启动动作之前设置共享变量,从而触发将使用它们的插件?

编辑:

我可以从不同的点创建这种类型的记录,这些记录与crm,silverlight,外部页面甚至是其他实体的插件集成在一起。我当前的问题可以通过实体上的字段来解决,但是如果我必须发送参数来控制插件的执行以进行两个或更多独立操作,我将需要每个操作一个字段,或者只使用一个字段一个复杂的格式/解析模式,用于参数化每个不同的操作。使用字段来完成此功能看起来有点过分。

如果可以在调用将触发插件的操作之前设置共享变量来解决问题而且我不必在crm数据库中创建字段,因为我想要传递给插件的数据它只会在那时需要,就像函数中的参数一样,不需要将它们保存在数据库中。

但如果不可能,我将不得不坚持使用这些字段:(

2 个答案:

答案 0 :(得分:1)

如果它们因插件的实体/执行而有所不同。

选项:

  1. 如果它们没有更改但需要更新,请在插件配置中设置它们 没有重新编译。
  2. 如果每个记录的数据不同,请将它们作为分隔字符串应用于实体的单个字段。
  3. 不想使用2的原因是什么?

答案 1 :(得分:1)

不。我能想到的最简单的解决方案是向实体添加BAT(大屁股文本)字段,并使用逗号分隔的GUID列表填充它,然后在Create插件中访问该字段。如果你不想在系统中获得额外的数据,你甚至可以清除它。

修改后修改: 关于你的思考过程的一般评论:你可能会过度思考它。 :)使用单个字段,您可以使用json或xml格式的字符串传入任何类型的“命令”。如上所述,在预创建插件中,在提取此“参数”字段后,您可以清除Target实体图像中的该字段,并且该数据永远不会持久保存到数据库中。从技术上讲,它可以实现您想要的确切结果,唯一的副作用是在数据库中始终为NULL的一个额外“参数”字段。不要那么辛苦打简单! :)