주문 업데이트시 SOAP 메시지에 salesorder 데이터를 보내는 MS Dynamics CRM 4.0 용 간단한 플러그인을 만들려고합니다. 이상한 점은 내가 저장하려고 할 때마다이 오류가 발생한다는 것입니다. (플러그인을 실행하십시오). 제대로 및 실행주어진 키가 사전에 없습니다.
The given key was not present in the dictionary.
나는 (심지어 두 저장 사이에 아무 것도 변경하지 않고) 다시 바로 그 후 저장 : 나는 SalesOrder를의 (모든 필드)를 업데이트 한 다음 저장하면 그래서 나는 오류 내가 원하는 모든 데이터를 제공한다. 똑같은 때마다 정말로 : 첫 번째 저장 : 오류, 두 번째 저장 : 올바르게 실행.
어떤 아이디어일까요?
이것은 내 코드의 첫 번째 부분입니다. 실제로이 경우 SalesOrder를의 데이터 세트를 가져옵니다 여기서
public class CompleteOrderPlugin : IPlugin
{
public void Execute(IPluginExecutionContext context)
{
DynamicEntity entity = null;
if (context.InputParameters.Properties.Contains(ParameterName.Target) &&
context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
{
entity = (DynamicEntity)context.InputParameters[ParameterName.Target];
if (entity.Name != EntityName.salesorder.ToString()) { return; }
}
else
{
return;
}
난 내 자신의 변수를 채우기 위해 속성의 값을 사용하는 경우 나머지입니다.
필자는 Fiddler를 사용하여 두 요청을 비교할 것입니다. 두 요청이 실제로 정확히 같은 요청인지 확인하십시오. 나는 거기에없는 동적 엔티티의 속성에 액세스 할 때 일반적인 오류라고 생각합니다. 하지만 Salesorders에는 CRM에 대한 추가 동작이있을 수 있습니다 (CRM의 내부 플러그인과 플러그인인지 여부는 알 수 없습니다). 피들러 추적이 도움이되지 않으면 디버거를 연결하고 플러그인을 단계별로 실행합니다. –
또한 플러그인 코드를 자유롭게 게시 할 수 있습니다. –
도움 주셔서 감사합니다! – AaronTjong