9

CRM Online 2011 の関連データを更新するエンティティのリボン ボタンをクリックすると、いくつかのコードを実行する必要があります。このロジックをすべて JScript で記述する必要はありません。JScript から C# コードを呼び出す方法はありますか? Microsoft がリボンから使用している JScript ファイルを調べたところ、次のようになっています。

Mscrm.Campaign.copyCampaign = function (campaignId, saveAsTemplate) {
    var $v_0 = new RemoteCommand("MarketingAutomation", "CopyCampaign", null);
    $v_0.SetParameter("campaignId", campaignId);
    $v_0.SetParameter("saveAsTemplate", saveAsTemplate.toString());
    var $v_1 = $v_0.Execute(),
        $v_2 = $v_1.ReturnValue;
    openObj(Mscrm.EntityTypeCode.Campaign, $v_2, null, null, Mscrm.NavigationMode.NavigationModeInline, null);
    Mscrm.Utilities.refreshParentGrid(Mscrm.EntityTypeCode.Campaign, campaignId)
};

Web サービス関数に戻ると思われる RemoteCommand 呼び出しが行われています。私はこのようなことをしたいと思っています。独自の Web サービス関数を追加できますか?

テストとして、エンティティの「割り当て」メッセージを送信するために JScript から呼び出しを行うことができました。これはプラグインで機能する可能性がありますが、C# コード (「割り当て」、「更新」など) を実行するためだけに実際には発生しなかった実行イベントのメッセージを送信するのは奇妙に思えます。独自のメッセージを作成する方法はありません。

4

5 に答える 5

10

2011 では、独自の Web サービスを追加したり、独自のカスタム プラグイン メッセージを作成したりすることはできません。

  1. サーバー上でカスタム コードを実行するためだけに存在するエンティティをセットアップします。
  2. メッセージ名と呼ばれる属性と、任意の形式 (XML、JSON など) でパラメーターを渡す別のプロパティを指定します。
  3. JavaScript から、正しいパラメーターを渡すエンティティのインスタンスを作成します。
  4. そのエンティティの Create メッセージにプラグインをアタッチすると、パラメータが読み込まれ、必要なカスタム コードが実行されます。

割り当てメッセージなどをランダムに渡すだけでも機能する可能性がありますが、Microsoft の目にはおそらくサポートされておらず、他の誰かがこのシステムを見る必要があった場合にデバッグするのは非常に困難です.

于 2011-02-23T16:36:58.183 に答える
4

別の方法として、フォームに 2 つのオプションを挿入します。リボンで作成したカスタム ボタンをクリックすると、2 つのオプションの値が true になり、エンティティ用に作成したプラグインでフォームの保存メソッドが実行されます。 2 つのオプションの値が true の場合は、コードを実行してから、2 つのオプションの値を再度 false にします。また、フォームで 2 つのオプションを非表示にすることもできます。

于 2011-06-01T06:59:25.580 に答える
1

これはあなたが探しているものだと思いますhttp://geekswithblogs.net/Nilesh/archive/2011/08/25/call-c-code-inside-silverlight-application-on-click-of-custom.aspx

于 2011-08-29T05:40:14.010 に答える
1

多くの JavaScript ロジックを記述するのは面倒ですが、作成操作 (多かれ少なかれコマンド パターン) を介して「実際の」ロジックをトリガーする js コードを作成することも、複雑なソリューションになります。

複雑さと要件のレベルに応じて (たとえば、別のユーザーの振る舞いに対して操作を実行することは js では不可能です)、私は常に純粋な js アプローチを好みます。複雑さを軽減するには、機能的にコアを提供するライブラリを試してください。

CrmRestKit

XrmServiceToolkit

楽しむ

ダニエル

于 2012-05-21T16:19:43.987 に答える