SugarCRM には、関連するモジュールのフィールドを参照して、プライマリ モジュールのフィールドを自動入力できる優れた機能があります。ただし、あるモジュールでは機能するのに別のモジュールでは機能しない理由を明確に判断することはできませんでした。私には疑いがありますが、私が正しければ、同じことを達成する別の方法を見つけなければなりません。
これは、自社サーバーでホストされている SugarCRM Professional 6.4.2 用です。
機能するもの
2 つのデフォルト モジュール (連絡先、商談)Opportunities.name
の使用: 次の式を使用して、連絡先から 2 つのフィールドを参照する計算フィールドを作成できます。
concat(related($contacts, "last_name"), ", ",related($contacts, "first_name")," - ", getDropdownValue("timeline_options", $timeline_interest_c))
これら 2 つのモジュールの関係は「多対多」です。Opportunities はプライマリ モジュール、Contacts はセカンダリ モジュールで、関係名は「opportunities_contacts」です。1 つの連絡先を複数の商談に関連付けることができ、1 つの商談を複数の連絡先に関連付けることができます。
機能しないもの
1 つのカスタム モジュール (モジュール ビルダーで作成および展開されたアプリケーション) と 1 つの既定のモジュール (連絡先)を使用: 次の式を使用して、Applications.name が連絡先から同じ2 つのフィールドを正しく参照するようにすることができません。
concat(related($contacts, "last_name"), ", ",related($contacts, "first_name")," - ", getDropdownValue("timeline_options", $timeline_choice))
これら 2 つのモジュールの関係は「1 対多」です。Contacts はプライマリ モジュール、Applications はセカンダリ モジュールで、関係名は「contacts_applications」です。1 つの連絡先は任意の数のアプリケーションを持つことができますが、すべてのアプリケーションは 1 つの連絡先にのみ関連付けることができます。
数式を保存しようとすると、ポップアップ メッセージに「不明なフィールド: 連絡先」が表示されます。
私は何が欠けていますか?
明らかに、これら 2 つのシナリオで異なるのは関係のタイプです。私が理解していないのは、その異なる関係の技術的な意味です。言い換えれば、$contacts
アプリケーション モジュールが認識していないときに、オポチュニティ モジュールが認識しているのはなぜでしょうか?
それは...ですか...
- 「多対多」対「1対多」の関係がどのように保存されるか? また、
- 最初のインスタンスでは、計算フィールドは関係の「プライマリ モジュール」に存在し、2 番目のインスタンスでは、計算フィールドは関係の「セカンダリ モジュール」に存在するという事実? また、
- まったく別の何か?
この質問への答えは、私が望むことを達成するために私が別の方法で試してみることを示唆しているかもしれません.
更新...まだ機能しないもの
最初にこの質問を送信して以来、さらにいくつかのことを試しました。
- Applications がプライマリ モジュールで、Contacts がセカンダリ モジュールになるように 1 対多の関係を再作成しましたが、役に立ちませんでした。同じエラーが発生します。これは、上記の #2 が問題ではないことを示しています。
- アプリケーションと1 対 1 の関係を持つ Opportunities の項目にアクセスして、別の式を試してみました。同じエラーが発生し、今度は「不明なフィールド: 商談」と表示されます。これは、上記の #1 のような問題を引き起こしているのは必ずしも "1 対多" の関係ではなく、おそらく"多対多" の関係ではないことを示しています。
望ましい答えには 2 つの部分があります
異なる動作の理由を理解したいです。また、関連するモジュール (「1 対多」の「1」側) のフィールドにアクセスして自動入力するための最良の方法も知りたいです。新しいモジュールの計算フィールド (「1 対多」の「多」側)。
よろしくお願いします!