동일한 플러그인에 대한 여러 호출간에 IPluginExecutionContext의 SharedVariable을 사용하려고합니다. 다음과 같은 시나리오가 있습니다 :CRM 2011 플러그인의 공유 변수
사용자가 새로운 엔티티 레코드를 생성하려고 시도하고 플러그인이 사전 단계에서 트리거되었습니다. 어떤 논리를 바탕으로, 정말 같은 SharedVariable을 설정하고 있습니다 :
var context = (IPluginExecutionContext) serviceProvider.GetService(typeof (IPluginExecutionContext));
context.SharedVariables.Add("MySharedVariable", true);
나는 다음과 같이 동일한 개체의 다른 레코드를 업데이트하려고 :
var qe = new QueryExpression("new_myentity");
qe.Criteria.AddCondition("ecs_myfield", ConditionOperator.Equal,"someValue");
var results = service.RetrieveMultiple(qe);
foreach (var foo in results.Entities)
{
//Do something to foo
service.Update(foo);
}
는 또한 등록 플러그인을 그러나 Pre 단계에서 업데이트를하면 MySharedVariable을 확인하고 설정 여부에 따라 다른 작업을 수행하려고합니다.
업데이트에서 컨텍스트에 'MySharedVariable'키가 없습니다. ITracingService를 사용하여이를 확인했습니다.
다른 레코드에서 실행되는 플러그인간에 공유 변수를 전달하는 데 몇 가지 제한 사항이 있습니까?
의 플러그인 실행 모드를 모두 작성 및 업데이트는 동기로 설정하고 이미 설명, 모두
? 나는 그들이 트랜잭션과 마찬가지로 전달되었다고 생각하고 있었고, 그래서 당신의 플러그인이 트리거하는 플러그인이 무엇이든간에, 그들은 따라 가게 될 것입니다, 맞지 않습니까? – Daryl
일반적인 시나리오의 테스트 일괄 처리만으로도이를 명확히 할 수 있다고 생각합니다. –
무엇을?!?!? 당신은 할 시간이 없다는 테스트를 할 수있는 무한한 시간이 없다는 것을 의미합니까 ??? :) – Daryl