0

あるパートナーから、CRM 2011 Web サービスに必要な一連の機能が提供されました。

どれも書くのが本当に難しいわけではありませんが、Web サービスの機能を拡張する方法がわかりません。

私が書くべきメソッド実装の例はここにあります:

<wsdl:operation name="GetUnitConversions">
    <soap:operation style="document" soapAction="http://tempuri.org/ISales/GetUnitConversions"/>
    <wsdl:input>
        <soap:header message="tns:ServiceHeader" use="literal" part="Header"/>
        <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
        <soap:header message="tns:ServiceHeader" use="literal" part="Header"/>
        <soap:body use="literal"/>
    </wsdl:output>
</wsdl:operation>

CRM サーバーに変更が必要なファイルはありますか? それはマイクロソフトによってサポートされていますか? 代替案はありますか?

4

2 に答える 2

3

Microsoft Web サービス自体を「拡張」する実際の方法はありません。Web サービスとメソッドの固定セットを提供する固定フレームワークです。

CRM Online の場合 このようなものを提供できる唯一の方法は、プラットフォームを拡張し、その前線で利用できるものを拡張することです。「コード」ベースの主な領域は次のとおりです。

  • プラグイン
  • カスタム ワークフロー アクティビティ
  • HTML/Javascript/Silverlight Web リソース

これらのいくつかはエンティティ (例: プラグイン) でサポートする必要がありますが、他のものはスタンドアロンで、いくつかの一般的な作業を行うことができます (例: HTML および Silverlight ページ)。

したがって、基本的に、フレームワークに追加された「関数」の標準セットが必要な場合は、上記の方法を使用してこれを提供するために工夫する必要があります。

オンプレミスの場合は、CRM に対するアクションを認証および実行する方法を順番に認識している外部サービスをおそらく作成できます。

更新された質問をカバーするための更新された回答:

Microsoft が提供する Web サービスを拡張するサポートされている方法は絶対にありません。そして、DLL を物理的にハッキングせずに、サポートされていないことを行う方法さえ私が知っている方法はありません。

サポートされている方法は、上記のいずれかの方法を使用することです。上記の方法を実装できるサポートされている方法の例を示すには:

  • 「WebServiceCall」というエンティティを作成します
  • これに「メソッド」と「結果」の 2 つの属性を作成します。
  • このエンティティの on PreCreate で同期プラグインを作成します
  • プラグインが起動すると、メソッドが読み取られ、関連するコードが実行され、結果が設定されます。

「GetUnitConversions」というメソッドを実行するには、次のことを行う必要があります。

  • タイプ WebServiceCall の新しいレコードを作成し、メソッドを「GetUnitConversions」に設定します
  • これが完了すると、作成されたレコードのIDが返されます
  • ID を使用してエンティティを取得し、結果を読み取ります。

これは、Crm Online と OnPremise の両方をサポートするソリューションに最も近いものです。

于 2013-09-06T08:32:00.400 に答える