궁극적으로 내가 찾고있는 것은 onSaveComplete
이벤트입니다.양식 저장 완료시 변경된 속성 감지
문제는 엔티티 데이터를 저장할 때이를 수정하는 플러그인이 있다는 것입니다. 저장이 완료된 후 데이터가 양식에서 갱신되기 때문에 대부분의 속성에 대해이 값은 유효합니다. 엔터티가 저장 될 때 값이 플러그인에 의해 업데이트되었음을 나타내는 이벤트가 없기 때문에 클라이언트 스크립트에 문제가 있습니다.
이내가 함께 온 가장 좋은 해결책은 onSave
이벤트에 후크 기본 조치를 저장 방지하고 대신 data.save()
을 사용하는 것입니다
function onSave(context) {
var args = context.getEventArgs();
args.preventDefault();
Xrm.Page.data.save().then(function() {
//check for changed attributes here
});
}
(실제 코드는 좀 더 재귀를 방지하기 위해 복잡하다, 등등. 그러나 당신은 아이디어를 얻는다.)
궁극적으로이 접근법은 끝이 난다. 그리고 내가 그것을 적용하는 형식이 많을수록 실제 해킹처럼 느껴진다. 그래서 제 질문은 이것에 접근하는 더 나은 표준 방법이 있습니까?
필드 속성은 플러그인의 변경 사항을 반영해야합니다. _onSaveComplete_ 메소드에서 정확히 무엇을해야합니까? –
@JasonFaulkner 그래, 속성이 변경 사항을 반영하지, 그 부분은 괜찮습니다. 그러나 플러그인에서 변경된 사항에 대한 응답으로 클라이언트 스크립트에 몇 가지 추가 변경 사항을 적용해야합니다. 그래서 내가 원하는 것은 특정 속성이 플러그인에 의해 변경되었을 때 알려주는 이벤트입니다. 특정 속성 변경 이벤트가 아니라면 해킹 할 필요가없는 일반 저장 완료 이벤트가 있습니다. 가장 혼란스러운 점은 새로운 CRM 2013 비동기 저장 모델을 사용하면 onSaveComplete 상자에 넣은 상태의 이벤트. – dkr88
나는 당신의 '해킹'방법이 당신이 찾고있는 것을 달성하는 유일한 지원 방법이라고 믿습니다. –