2009-08-18 4 views
2

전자 메일 엔티티 용 플러그인을 작성하여 사전 작성 이벤트 (하위 파이프 라인)에 등록했습니다. 플러그인은 최대한 간단합니다.MS CRM - 사전 작성 플러그인이 등록 정보 값을 변경하지 않음

public class AddDescription : IPlugin 
{ 
    public void Execute(IPluginExecutionContext context) 
    { 
     DynamicEntity di = (DynamicEntity)context.InputParameters["Target"]; 

     di.Properties["description"] = "blabla"; 
    } 
} 

설명 (= 이메일 본문)은 동일하게 유지됩니다. 예외는 발생하지 않습니다. 내가 debuged 및 속성 컬렉션 ('blabla'설명이 추가됨) 변경된 것처럼 보이지만 저장되지 않습니다.

계정 엔티티 (Pre Create, 하위 파이프 라인)에 동일한 플러그인을 등록하면 정상적으로 작동합니다.

이메일 주체에서 생성시 속성을 변경하는 데 제약이 있습니까?

EDIT (MORE INFO) : 설명 및 적용하지 않았다 동안

내가 설명, 주제, 카테고리 및 하위 카테고리 내 깜짝 범주 및 하위 범주에 변경 시도가 변경되었습니다. 도움 안녕에 대한

TNX

답변

2

왜 당신은 자식 파이프 라인에 있습니까? 내 생각 엔 기본 활동이 기본 파이프 라인에 만들어지고 자식 활동 (Matt이 지적한대로 - 공유되지 않은 특성 만 포함)이 자식 파이프 라인을 통과하는 것입니다. 상위 파이프 라인에서 예상대로 작동합니까? 자식 파이프 라인에서 잡아야 할 시나리오가 있을까요?

+0

예, 상위 파이프 라인에서 작동하지만 빠른 캠페인이나 캠페인에서 이메일을 만들 때 실행되지 않습니다. –

+0

하위 아이디로 이동하여 하위 파이프 라인에서 CRM 서비스를 생성 할 수 있습니까? (Google 애널리틱스 기사 - 플러그인에서 서비스를 사용할 수 없음)? 그런 다음 필요한 업데이트를 수행합니까? –

+0

그게 유일한 옵션입니다. 그러나 포스트 플러그인에 예외가 발생하면 어떻게되는지 확인해야합니다. Pre 플러그인은이 경우 작동을 취소한다고 생각합니다. –

1

내 생각은 제목과 설명은 모든 활동에서 공유 속성합니다 (activitypointer 엔티티에)이기 때문에 종류와 하위 범주 이메일 엔티티에있는 동안이 있다는 것입니다.

디버깅 할 때 다른 DynamicEntity 속성이 있는지 확인하십시오. 여기에는 활동으로 이동하는 속성이 저장되어있을 수 있습니다.

+0

예, 몇 시간 동안 쳐다 보았습니다. 그리고 플러그 인에는 다른 매개 변수가 없으며 곧 생성 될 전자 메일의 DynamicEntity 만 있습니다. 물론 활동 엔터티에 대한 플러그인을 만들 수 없습니다. –

0

이것은 해결책입니다.

((DynamicEntity)context.InputParameters.Properties["Target"]).Properties["propertyname"]="propertyvalue"; 

이 엔티티에이 속성이없는 경우 추가해야합니다. 예를 들어, 대상의 속성을 포함하지 않는 문자열 속성을 설정하려고합니다. Tis 코드는 다음과 같습니다.

((DynamicEntity)context.InputParameters.Properties["Target"]).Properties.Add(CrmTypes.CreateStringProperty("propertyname", "propertyvalue"));