1

これは単純なことですが、CRM 2011ですぐにわかっているので、単純なことはほとんどありません...

とにかく、私はカスタムアクティビティタイプ「トリップ」を持っています。トリップは、サービス技術者によるクライアントのサイトへの1回の訪問を表します。旅行は常にケース(インシデント)に関連して作成され、他のエンティティタイプには関連しないため、エンティティは「アクティビティメニューに表示」されないカスタムアクティビティとして存在します。これにより、Tripsのサブグリッドをプライマリケースビューにドロップして、これらのものを作成できる唯一の場所にすることができます。

問題は、ケースフォームから新しいトリップを作成しようとすると(サブグリッドをクリックしてリボンから[新しいトリップの追加]を選択することにより)、[関連]フィールドに以前のケースが表示されないことです。 「追加」をクリックしました。「組み込み」のアクティビティタイプはどれも、対応するフィールドを問題なくデフォルト設定するので、ここでも同じことができるように思えます。このデフォルトが機能すると、フィールドは読み取り専用になるはずですが、新しい旅行を作成するときに参照を設定できるように、編集可能にしました。もちろん、ルックアップをポップアップするときに、この旅行をに割り当てることができます。何でも(そもそもフィールドを読み取り専用にしたいのはそのためです)。

トリップフォームが読み込まれたときに親ケースをデフォルトにするフォームが必要です。最初の保存時に存在しない場合は、他のデフォルト値(つまり、同じケースに存在する場合と存在しない場合がある他のトリップに関連するデータ)を設定するプラグインコードが勝ったため、最初に作成されたときに存在する必要があります正しく動作しません。

親エンティティのフィールドに基づいてさまざまなフィールドの値をデフォルト設定できるリレーションシップフィールドマッピングについて読みましたが、インシデントとトリップの関係はどちらの側からもマッピング可能としてリストされておらず、その方法がわかりません。マップ可能にします。JavaScriptを使用してデフォルト値を設定することも可能ですが、この特定の動作を設定するための「カスタム」の方法が少ない場合は、その方法を知りたいと思います。

4

1 に答える 1

3

Mike のコメントに基づく碑文として、Microsoft はこれを望んでいないようです。しかし、それはまだ可能です。基本的な手順は次のとおりです。

  • リボン ワークベンチ ソリューションをダウンロードし、CRM にインポートします。
  • カスタマイズできるエンティティを含む新しいソリューションを作成します。
  • 必要なフォームを開き、必要な情報をパラメーターとして渡す関数を含む JavaScript ファイルを作成します。パラメータを指定する方法は 2 つあります。フォームでカスタム パラメータを定義するか、関連フィールドに Microsoft の文書化されていないパラメータを使用できます。

    function OpenNewTripFromCase()
    {
        var entityId = Xrm.Page.data.entity.getId();
        var entityTypeCode= Xrm.Page.context.getQueryStringParameters().etc;
        var entityDisplayName = Xrm.Page.getAttribute("title").getValue();
    
        var params = {};
        params["pId"] = entityId;
        params["pType"] = entityTypeCode;
        params["pName"] = entityDisplayName;
    
        Xrm.Utility.openEntityForm("cst_trip", null, params);
    }
    
  • この JavaScript ファイルを Web リソースとしてインポートし、ソリューションに追加して、リボン ワークベンチで使用できるようにします。
  • リボン ワークベンチを開き、エンティティとリソースで作成したソリューションを開きます。[ソリューション要素] タブをクリックし、[コマンド] 項目を見つけます。右クリックして「新規追加」を選択します。リストを展開し、新しいコマンドを見つけてクリックします。[プロパティ] ペインで、コマンドの名前をよりわかりやすい名前に変更し (3 番目の "Command#" 用語のみを変更することをお勧めします)、[アクション] フィールドの右側にある虫眼鏡ボタンをクリックします。

  • ポップアップ ウィンドウで [追加] をクリックし、[JavaScript 関数アクション] を選択します。アクション リストに新しいアイテムが追加されます。それをクリックし、右側のプロパティ ペインで関数を含むライブラリを見つけて、関数名を入力します。ここでは、IntelliSense をまったく取得していないので、関数名を慎重に入力してください。必要に応じてパラメーターを追加し (上記のコードでは必要ありません)、[OK] をクリックします。

  • ここで、リボン ワークベンチのエンティティ リストでカスタム アクティビティ エンティティをクリックし、リボン レイアウトの右上にあるドロップダウンで、SubGrid リボンを選択します。このリボンにボタンを作成し、必要なアイコンとテキストを指定して、[プロパティ] ウィンドウで、コマンドを作成したばかりのコマンドに設定します。

カスタマイズされたソリューションを公開すると、すべてを正しく行った場合、サブグリッドを選択したときに「新規追加」ボタンと同じことを行う新しいボタンが表示されますが、さらに関連フィールドにデータが入力されます。

于 2013-02-20T15:55:16.597 に答える