1

CRMプラグインからAzureサービスバスキューにメッセージを正常に投稿しています。理想的には、私はトピック(サブスクリプション)を聞き取り、受信時にアクションを実行するためにCRMが必要です。私はこれがCRMで可能かどうかわからないし、それを実装する方法を見つけることができません。私は、以下でキューから読むことができます。AzureサービスバストピックCRMプラグインを購読します

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(QueueConnectionString); 

    //Receiving a message 
    MessageReceiver testQueueReceiver = factory.CreateMessageReceiver(QueueName); 
    while (true) 
    { 
     using (BrokeredMessage retrievedMessage = testQueueReceiver.Receive()) 
     { 
      try 
      { 
       var message = new StreamReader(retrievedMessage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd(); 
       retrievedMessage.Complete(); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.ToString()); 
       retrievedMessage.Abandon(); 
      } 
     } 
    } 

ただし、これは、ユーザーアクションによってプラグインが実行されたときに呼び出されます。私は常に聞く必要があります。これはCRMで実現できますか? Azureでホストされているメッセージバスを使用して、前提条件でCRM 2016を使用しています。

ありがとうございます。

答えて

2

CRMは常に聴いているアプリケーションではありません。これは、HTTP要求によってトリガーされるWebアプリケーションです。このギャップを埋めるために、Azure関数を使用することができます。 Azure関数はサービスバスによってトリガされるので、Dynamics CRMを呼び出すことができます。

サービスバスキューによってトリガーされるAzure関数をデプロイする必要があります。 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus

があなたAzureの機能のためのpackage.jsonを作成します:これはよくで文書化されて

{ 
"bindings": [ 
    { 
    "queueName": "testqueue", 
    "connection": "MyServiceBusConnection", 
    "name": "myQueueItem", 
    "type": "serviceBusTrigger", 
    "direction": "in" 
    } 
], 
"disabled": false 
} 

基本機能コード:

public static void Run(string myQueueItem, TraceWriter log) 
{ 
    log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}"); 
} 

あなたはこのあなたはAzureの機能コードを構築することができます作業したらDynamics CRMに接続する - 他のコードと同じです。

project.json(ここで説明したように、これはまさに正しい取得する必要があります:http://crmtipoftheday.com/2016/12/12/connect-to-dynamics-365-in-azure-functions/):への依存関係を追加

{ 
    "frameworks": { 
    "net46":{ 
     "dependencies": { 
     "Microsoft.CrmSdk.CoreAssemblies": "8.2.0", 
     "Microsoft.CrmSdk.XrmTooling.CoreAssembly": "8.2.0" 
     } 
    } 
    } 
} 
+0

すごい - あなたの非常に完全な答えをありがとう!非常に役立ちます。正確に私が必要なもの。 – creatiive

関連する問題