需要:更新される要件を満たすためにCRMデータの実装に3ヶ月に1回、ワークフローを作成します。
調査はカスタマイズすることができます練習ワークフローCRMシステムが無限ループにならないことが判明した後、あなただけの7回を行うことができます。
あなただけのCRMに統合され、無限ループに達成するためにワークフローVSカスタムを作成することができます。
実装手順:
- 、CRMデータの更新の実現をカスタムワークフローアクティビティを作成します。
- 全体のプロセスを実装し、カスタムワークフローを作成します。
-
CRMへのカスタムワークフローの統合。
カスタムワークフローアクティビティを作成します。
- 開始のMicrosoft Visual Studioの2010年に。
- では、「ファイル」メニューをクリックし、「新規作成」、をクリックし、「プロジェクトを」。
- で、「新規プロジェクト」ダイアログボックス「インストールされたテンプレート」ペインを選択「Visual C#を」下「のワークフロー」、次に選択し、「活動図書館」。
- 名前とソリューションの場所、その後はをクリックし、「OK」。
- 移動し、「プロジェクト」メニューを選択し、「プロパティ」。で、「アプリケーション」タブ、指定」の.NET Framework 4"をターゲットフレームワークとして。
- 追加 Microsoft.Xrm.Sdk.dll と Microsoft.Xrm.Workflow.dll 参照アセンブリ。
- プロジェクトの削除 Activity1.xamlのファイルを。
- クラスファイル(.csファイル)プロジェクトに。ソリューションエクスプローラで、選択し、プロジェクトを右クリックし、「追加」をクリックします、「クラス」。では、「新しい項目の追加」ダイアログボックス、クリックしたクラスの名前を入力し、「追加」。
-
クラスファイルを開き、次の追加 使用して ディレクティブを:
使用してMicrosoft.Xrm.Sdkを。
使用してMicrosoft.Xrm.Sdk.Workflowを。
-
CodeActivityクラスは、クラスから継承します。
パブリッククラスSampleCustomActivity:CodeActivity
-
追加することにより、Executeメソッド機能クラスを追加します。
保護されたオーバーライド無効実行(CodeActivityContextコンテキスト)
{
//アクティビティコード
ここではデータの更新
}
- アセンブリを作成するプロジェクトをコンパイル(.dllファイル)を。
カスタムワークフローを作成します。
Microsoft Dynamics CRMのXAMLワークフローの外で作成または変更を使用するには、次のことを確認します。
- ユーザーアカウントは、Microsoft Dynamics CRMの中に持って展開管理者の権限を。
在 Microsoft Dynamics CRM 服务器上启用了声明性工作流。 PowerShell($setting.AllowDeclarativeWorkflows="True")
- 「ファイル」メニュー内のMicrosoft Visual Studioで、「新規作成」を選択し、をクリックし、「プロジェクト。」
- 「インストールされたテンプレート」の下に「Visual C#を」を展開し、次にクリックし、「ワークフローを。」
- 「アクティブ・データベース」をクリックして、」。NET Frameworkの4" を選択し、プロジェクトの名前と場所を指定し、[OK]をクリックします 『OK。』
- 「ソリューションエクスプローラ」、右クリックして「アクティビティライブラリ」では、クリックして「参照を追加します。」
- 「参照」をクリックして、見つけMicrosoft.Xrm.Sdk.dllとMicrosoft.Xrm.Sdk.Workflow.dllファイルを。ファイルを選択し、プロジェクトに追加します。
- カスタマイズされたワークフロー。
CRMへのカスタムワークフローの統合。
CRMにカスタムワークフローアクティビティのアセンブリを登録するには、プラグイン登録ツールを使用してください。
- 構築プラグイン登録ツール。あなたはできる \ PluginRegistration \ツールSDK ツールフォルダのソースコードを見つけます。構築し、プラグイン登録ツールを使用するには、最初にインストールする必要があります Windowsのアイデンティティ基盤。
- ユーザーアカウントは、システムカスタマイザまたはシステム管理者の役割を持っている必要があります。
カスタムワークフローを紹介
%TrainingKit%\ Labsの\ WorkflowVS2010の\ Sources \資産\ WorkflowXamlTool。
WorkflowXamlTool.slnを開き、ワークフロー名とprimaryentityを変更し、実行ソリューション。
VAR newWF = 新しい エンティティ("ワークフロー")。
(newWF.Attributes.Add "名前"、"テスト10311オン");
newWF.Attributes.Add("タイプ"、新 OptionSetValue(1));
newWF.Attributes.Add("scope", new OptionSetValue(4));
newWF.Attributes.Add("category", new OptionSetValue(0));
newWF.Attributes.Add("primaryentity", "abc_dummy");
newWF.Attributes.Add("xaml", content2);
newWF.Attributes.Add("ondemand", true);
try
{
_serviceProxy.Create(newWF);
MessageBox.Show("Workflow successfully imported.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (FaultException ex)
{
}
选择自定义xaml 文件,导入。
如何更新workflow activity dll
-
停止MSCRMAsyncService服务
-
执行iisreset – stop
-
替换dll 文件到C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly.
-
执行iisreset – start
-
开启MSCRMAsyncService服务
如何调试workflow activity
Attach 进程CrmAsyncService.exe,执行workflow.
Workflow activity如何更新数据
IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = serviceFactory.CreateOrganizationService(wfContext.UserId);
InfluencerContext context = new InfluencerContext(service);
context.ClearChanges();
context.Attach(influencer);
context.UpdateObject(influencer);
context.SaveChanges();
ます。https://www.cnblogs.com/csswuxi/archive/2012/11/02/2751342.htmlで再現