【问题标题】:How to make changes made to an entity's attributes automatically cause a change in another entity?如何使对实体属性的更改自动导致另一个实体的更改?
【发布时间】:2013-01-18 19:35:38
【问题描述】:

我有一个名为 Events 的实体(父实体),它包含以下属性

  1. 事件ID
  2. 事件开始日期
  3. 事件结束日期

与另一个名为 ChildEvents 的实体具有 1-N 关系,该实体包含以下属性

  1. 子事件ID
  2. EventID(查找)
  3. EventStartDate(只读)
  4. EventEndDate(只读)

我编写了一个 JavaScript 代码,当 EventID 更新时会自动填充 EventStartDateEventEndDate

我的问题是这样的:

我有一个EventID = "A"EventStartDate = "today"EventEndDate = "tomo" 并将其添加到 ChildEventID = "C_A" 并保存。

我返回到我的事件实体并将EventID = "A" 的开始日期和结束日期更改为其他内容并保存。

现在,当我打开子事件记录 "C_A" 时,我没有看到 NewEventStartDateNewEventEndDate 正在自动更新。

我错过了什么吗?我必须为它编写代码吗?因为我认为它会自动更新。

注意:两个实体都是自定义实体。

【问题讨论】:

    标签: dynamics-crm-2011 crm


    【解决方案1】:

    您希望在父项中的日期更改时让父项更新其子项?然后你应该写一个插件(在父实体上)。

    【讨论】:

      【解决方案2】:

      我明白这一点:您想根据父实体中所做的更改来更新实体的子记录。如果我们假设这一点,您应该使用分布式工作流。 This link 帮助你。这是一个直接的解决方案,您可以轻松导入和使用。

      【讨论】:

        【解决方案3】:

        非常好的问题!您需要记住的是,JavaScript 只管理进程的客户端。这意味着,有点不正确但很容易理解,无论您使用 JS 做什么,都会模拟用户通过自己在 GUI 中导航可能导致的结果。

        如果我的问题正确,您希望实体(子实体上的只读字段)中的数据在另一个实体(父实体上的开始日期)更新时得到更新。

        最强大和最可靠的方法是添加一个插件来响应消息update(当然,也响应消息create)和从那里进行神奇的更新。

        这种方法的缺点是初学者的门槛可能非常非常高。特别是如果你缺乏 C# 方面的经验,注册步骤/图像,配置和上传程序集等。(我第一次制作插件时,我设法 FUBAR 我们的 CRM 服务器,MVP 花了两天时间让它重新启动并运行。并且十多年来,我一直在编写 C#,哈哈。)

        好处是,一旦您开始使用它,您几乎可以使用 CRM 做任何事情。限制消失了。如果您打算与 CRM 合作,这就是您要走的路。这是一个艰难的方式,但它也是唯一的,严肃的方式,恕我直言。

        如果您需要有关插件的指针 - 请查看博客。 (当然,我的是最好的,呵呵。)继续问!

        【讨论】:

        • 非常感谢康拉德!这真的很有帮助。我是 CRM 新手。就像你说的那样,我害怕注册我的插件并弄乱正常工作的东西,所以我想如果我能找到其他方法,我会更喜欢那些。但由于插件是唯一的方法,我会尝试做同样的事情。感谢您的精彩见解!也会查看你的博客。再次感谢!
        • @user1639515 (1) 很高兴能为您提供帮助。 (2)检查其中一个回复为“答案”(最好是我的,哈哈。(3)插件很棘手但合乎逻辑。你不会破坏任何东西(如果你这样做了,我们会帮助你消除错误,因为只要你不在公司的生产环境里做事)。(4)设置一个“我想实现”的场景并开始提问。我不介意一些额外的声誉和......
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-18
        • 2014-12-03
        • 2014-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多