Dynamics CRM(任意のバージョン)で「公開」や「すべて公開」のようなメッセージに対して実行されるプラグインを作成できるかどうかは疑問でした。可能であれば、同一またはコードスニペットのサンプル参照を共有することができます。すべてのメッセージを公開して公開するためのCRMプラグイン
答えて
これは、PublishとPublishAllメッセージで動作するプラグインです。この目的のために作成したエンティティを使用してイベントをログに記録します(必要に応じて変更できます)。
イベントがパブリッシュの場合、プラグインはParameterXmlパラメータ(MSDN)を使用して、パブリッシュされているコンポーネントを記録します。 PublishAllメッセージの場合、このパラメータは存在しないため、詳細は表示されません(すべてを公開しているため意味があります)。
public class PublishPlugin : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
if (context.MessageName != "Publish" && context.MessageName != "PublishAll")
return;
string parameterXml = string.Empty;
if (context.MessageName == "Publish")
{
if (context.InputParameters.Contains("ParameterXml"))
{
parameterXml = (string)context.InputParameters["ParameterXml"];
}
}
CreatePublishAuditRecord(service, context.MessageName, context.InitiatingUserId, parameterXml);
}
private void CreatePublishAuditRecord(IOrganizationService service, string messageName, Guid userId, string parameterXml)
{
Entity auditRecord = new Entity("fjo_publishaudit");
auditRecord["fjo_message"] = messageName;
auditRecord["fjo_publishbyid"] = new EntityReference("systemuser", userId);
auditRecord["fjo_publishon"] = DateTime.Now;
auditRecord["fjo_parameterxml"] = parameterXml;
service.Create(auditRecord);
}
}
これは、CRMでどのように見えるかです:
あなたは私のGitHubからプラグインプロジェクトとCRMソリューションをダウンロードすることができます。
有効なDynamics CRMメッセージの一覧については、こちらを参照してください。 PublishとPublishAllの両方がリストされています。 2011年以降のCRMの全バージョンでも有効です。
https://msdn.microsoft.com/en-us/library/gg328576.aspx
は、他のようなあなたのプラグインを登録が、メッセージのために公開またはPublishAll使用し、ブランクとしてエンティティを残します。
パブリッシュの場合、パブリッシュされているエンティティを絞り込むことができないというドキュメントを見ているようです。必要に応じて、あなたが扱っているエンティティを調べることができるかどうかを調べるために、入力パラメータがあなたに与えるものを見てみる必要があります。
パブリッシュメッセージでは、ParameterXmlプロパティ(プラグインのInputParameterコレクションにあります)を使用して、どのコンポーネントが公開されているかを絞り込むことができます。** [MSDN](https://msdn.microsoft.com/en -ie/library/microsoft.crm.sdk.messages.publishxmlrequest.parameterxml.aspx) –
- 1. CodeIgniter設定ファイルを公開して公開するためのGit
- 2. 公開カードで公開しているコンテンツを公開しました
- 3. Grailsプラグインを公開する
- 4. 公開されたトピックをすべて
- 5. Akka.Net(C#)クラスタ内のすべてのアクタにメッセージを公開
- 6. Dynamics CRM 2011エンティティを公開する
- 7. フィードバックを得るためのAureliaプラグインを公開する場所
- 8. jQueryプラグインのプロパティを公開する
- 9. 閲覧公開されていない宝石の公開活動のため
- 10. Visual Studioアプリケーションが公開前に公開されていて公開前に公開されていない
- 11. 公開ビデオストリーミングの公開
- 12. 公開グラフアクションをグループに公開する
- 13. トピックにメッセージを公開
- 14. Umbraco umbraco APIを使用して未公開のサブノードすべてを公開する方法
- 15. JUnit:テストするためにすべてのメソッドを公開する方法
- 16. Solaceにメッセージを公開する手順
- 17. C++:公開と非公開ですべての宣言を削除するのは正しいですか?
- 18. プッシャーチャネル:公開または非公開?
- 19. Facebookグラフオブジェクト - 公開または非公開?
- 20. ACL制限付きコンテンツのフィードを公開してフィードを公開する
- 21. NServiceBusを使用してローカルでメッセージを公開/受信する
- 22. CIFSプラグインを使用して公開する
- 23. KubernetesのCockroachDBを公開IPに公開
- 24. 送る多くのメッセージを公開:あまりにも多くの進捗エラーで公開してい
- 25. 公開鍵を使用したPythonでの公開解除
- 26. iOS-Designerで公開されたボタンを公開するには?
- 27. デフォルトで公開されたファイルをS3に公開する
- 28. Microsoft CRMの「公開」または「すべてのカスタマイズを公開」ボタンにイベント/機能を書くことはできますか
- 29. laravel 5.2:php artisan vendor:公開していない公開
- 30. Facebookアプリケーションの公開公開アクセス許可
@ Federico-Joussetありがとうございます。私の問題を解決するのに役立ちます。 –