使用工作流更新子记录

??Ever wish you could use a workflow to update related/child records? For example, when I update the address on an account, update the address on all of the related contacts.

You can, with the help of the very helpful CRM 2011 Distribute Workflow Activity assembly written by Alberto Gemin on Codeplex.

我应该都非常希望使用工作流来更新主记录的子记录,比如:Address 和 Contract 是1对多关系,那么怎么才能实现更新Address 的时候也批量更新Contract记录呢?虽然系统并没有为我们提供这样的原生支持,但是我们任然可以使用第三方的开源工具来实现这个有意思的需求。

While this says “CRM 2011″ in the name, it works fine on CRM 2013 and CRM 2013 SP1.

这个工具从4.0开始就存在了,并且现在以及支持最新版本的Dynamics CRM 2013了。下面是使用该工具的步骤:

  1. Import the solution from Codeplex
    导入下载下来的解决方案
  2. Create your child entity workflow(s). In this example, create a workflow for the contrat entity, check the box to run as a child workflow, uncheck the box to run on create of a record, and add your desired step.
    创建一个子类型的工作流,在这个例子里面,我们需要创建一个更新contract实体的字工作流,并把它的在记录创建时运行这个复选框取消,并加上些自己期望的工作流步骤。
  3. Create the master workflow that will trigger the child workflow. In this example it would be a workflow that runs on update of the address fields.
    创建一个父工作流,该工作流用来调用刚创建的子工作流,在这个例子里面,它是作用在Address实体上的工作流。
  4. Add a step. If you have successfully deployed the solution, you should see a new step called “DWF AG Utilities:Distribute One to Many.”
    如果我们部署成功,你应该能在工作流设计界面的步骤选择菜单中找到“DWF AG Utilities: Distribute One to Many”这样的步骤。
  1. In the step properties you need to specify two values: the database name of the 1:N relationship and the child workflow you created in step 2.
    为"DWF AG Utilities: Distribute One to Many”步骤指定相应的值:刚创建的子工作流,父实体和子实体直接的关系名称。
  2. Publish the workflow.
    发布工作里

Now, every time the master workflow is executed, it will run the child workflow on each related record. This works with both background (asynchronous) and real-time (synchronous) workflow processes.
这样我们就可以借助这个第三方的工作流来更新系统啦,它分别支持同步和异步类型的工作流。

??

使用工作流更新子记录,布布扣,bubuko.com

时间: 2024-08-07 00:15:21

使用工作流更新子记录的相关文章

小玩意:如何克隆一份记录及其子记录

做一个克隆功能, 复制一份记录及其子记录, 除了主键和相关外键换一下, 其它不变. 表面上看起来简单, 但不用循环就要稍多花点心思了. 写一个类似的例子, 以后备用, 也算是造福人类吧. IF OBJECT_ID('A') IS NOT NULL DROP TABLE A GO IF OBJECT_ID('B') IS NOT NULL DROP TABLE B GO IF OBJECT_ID('C') IS NOT NULL DROP TABLE C GO CREATE TABLE A( Ai

安装Visual Studio 2013 update 2 更新包记录和新功能简单体验

昨天下载了进4个小时,将visual studio 2013 update 2 更新包和visual studio 2013 完整安装包(包含UPDATE2)的下载完成,今天抽出时间体验一下,昨天在网上看了一下英文翻译的说明,增加了一些支持和改进,我只是针对于我所看到的来操作使用一下,看看有啥变化吧.将ISO文件加载到虚拟光驱,然后开始安装更新包,界面弹出后告诉我需要大概3个多G的硬盘空间,嗨真是大啊.点击安装开始继续安装,我截个图如下 剩下是就是等着安装完成了,整个安装过程还是比较慢的,安装的

更新数据记录

更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 -- 字段n=值n where 条件表达式"

使用hibernate更新数据库记录的信息的相关学习记录

截选代码(可能遗漏标点符号): package name.sql; import java.util.List; import name.session.HibernateSessionFactory; import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction; public class SqlHelper { //增 public void save(Object obj){

hibernate 不能实时获取数据库中更新的记录问题解决

项目用到hibernate进行与mysql数据库的连接和操作,有一个"查询"模块和"添加"模块,是用不同的hibernate配置文件来做的.在做完添加后做查询时发现了问题,查询的结果总是添加之前的,而最新更新的记录却没有被查询得到.只有重启tomcat服务器才能查到更新的记录. google之. 网上提到了hibernate的缓存机制,http://blog.csdn.net/fjun0910/article/details/6092829 按其中所说,查询前用se

Salesforce 小知识:大量“子记录”的处理方法

大量"子记录"的存放 例子:系统中导入了很多"联系人"(Contact)记录,它们没有具体所属的"客户"(Account)记录.那么我们就要将它们作为"子记录"临时保存在一个Account记录下. 问题:当保存Contact和Account的关系时,系统会同时锁定这两条记录.那么如果要利用多线程同时保存大量的Contact记录到同一个Account记录下,很有可能会出错. 解决方案: 尽可能的在同一个Account记录下保存少

Jbpm工作流表补数记录

一: 历史数据表 11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表 存放Activity Instance的历史记录 12.  JBPM4_HIST_DETAIL  流程历史详细表    保存Variable的变更记录 13.  JBPM4_HIST_PROCINST 流程实例历史表 存放Process Instance的历史信息 14.  JBPM4_HIST_TASK  流程任务实例历史表 Task的历史信息. 15.  JBPM4_HIST_VAR 流程变量(上下文)

MySQL数据库update更新子查询

比如: UPDATE test.tb_vobile a set a.name = '111 'WHEREa.id = (select max(id) id from test.tb_vobile) 报错: [SQL]UPDATE test.tb_vobile a set a.name = '111 'WHEREa.id = (select max(id) id from test.tb_vobile) [Err] 1093 - You can't specify target table 'a'

c# 主窗体更新子窗体 进程间通信

1.窗体间数据传输 主窗体连续不断更新给子窗体  本文章来源于网络 年代久远 如有侵犯 请联系删除 1.通过 在windows form之间传值,我总结了有四个方法:全局变量.属性.窗体构造函数和delegate. 第一个全局变量: 这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下: 在form1中定义一个static变量public static int i= 9 ; 1 Form2中的钮扣按钮如下: 2 3 private void butt