none
エンティティ間の関連付けの方法

    質問

  • こちらで質問した内容に関連するのですが、

    https://social.technet.microsoft.com/Forums/ja-JP/9c885f64-3173-42dc-8b17-83a65c1e1020?forum=crmja

    マスターのようなデータをLookupする設定がうまく行かず質問させてください。

    二つのエンティティがあります。

    entity_calender  (フィールド calender_date, close_date があります )
    entity_uriage   (フィールド uriage_date, uriage_close_date , uriage_suu があります)

    entity_calender  には、下記のようなデータが入ってます。
    calender_date    close_date
    ----------------  --------------
    2016/9/19         2016/9/30
    2016/9/20         2016/9/30
    2016/9/21         2016/10/31

    entity_uriageとentity_calender を関連づけて、entity_uriageのuriage_dateに日付が入力された時点で
    entity_calenderのclose_date をLookupしてuriage_close_date に設定したいと考えてます。

    entity_calender と entity_uriage をcalender_date<->uriage_date で1:Nの関連付けをして、
    ワークフローでentity_uriage のレコード作成時にuriage_close_date を設定しようと試みてるのですが、うまくいきません。

    手順は以下の通りです。

    (1) entity_calender を作成
        フィールド calender_date,close_dateは日付型(日付のみ)
    (2) entity_uriage を作成
      フィールドuriage_date, uriage_close_date は日付型(日付のみ)
    (3) entity_uriage のN:1関連付けを作成
        ここで、calender_date<->uriage_date を紐づける方法がわかりません。


    アドバイスいただければ有難いのですが。

    2016年9月15日 3:13

回答

  • まず、関連付けの仕様を理解されるとよいかもしれません。

    Dynamics CRMでは、テキストフィールドでのみ関連フィールドとして定義ができます。

    これは、エンティティのプライマリーフィールド(デフォルトではnew_nameとなるフィールド)となります。

    ※内部的にはGUID(一意の乱数)をもち、これで一致を判断します。CRM UI上には表示されません。

    ですので、日付型をlookupすることはできません。

    実現されたいことが理解できていないのですが、calenderに対してuriageのデータをN個保持し、

    最後に作成されたuriageのclose_dateでcalenderのclose_dateを更新する(最新のclose_dateをuriageで保持する)

    ということであれば、何等かのフィールドで普通に関連付けをし、ワークフローで更新すれはうまくいくと思います。

    ※的外れでしたらすみません。

    • 回答としてマーク M.Hanafusa 2016年9月20日 4:13
    2016年9月16日 9:42

すべての返信

  • まず、関連付けの仕様を理解されるとよいかもしれません。

    Dynamics CRMでは、テキストフィールドでのみ関連フィールドとして定義ができます。

    これは、エンティティのプライマリーフィールド(デフォルトではnew_nameとなるフィールド)となります。

    ※内部的にはGUID(一意の乱数)をもち、これで一致を判断します。CRM UI上には表示されません。

    ですので、日付型をlookupすることはできません。

    実現されたいことが理解できていないのですが、calenderに対してuriageのデータをN個保持し、

    最後に作成されたuriageのclose_dateでcalenderのclose_dateを更新する(最新のclose_dateをuriageで保持する)

    ということであれば、何等かのフィールドで普通に関連付けをし、ワークフローで更新すれはうまくいくと思います。

    ※的外れでしたらすみません。

    • 回答としてマーク M.Hanafusa 2016年9月20日 4:13
    2016年9月16日 9:42
  • masa-suzuki様、

    いつもアドバイスありがとうございあます。

    >テキストフィールドでのみ関連フィールドとして定義ができます。これは、エンティティのプライマリーフィールド

    日付型のフィールドでLookupできないものかと思っていたのですが、テキストフィールドのみしか関連フィールドとして定義できないのですね。

    Plug-inでプログラムを書いて対応する方向でいきます。

    ありがとうございました。



    2016年9月20日 4:12