2016-08-05 1 views
0

나는 동적으로 표시된 질문과 답변을 포함하는 사용자 지정 엔티티에 대한 코드를 만들었습니다. 이전에 답변 된 질문과 답변을 업데이트 할 수있는 능력을 갖추고 있습니다. 그렇게하기 위해, 나는 특정 커스텀 엔티티 폼의 onLoad와 fire onSave의 특정 함수를 호출한다.동적 CRM - onLoad 처리와 OnSave 이벤트를 양식 스크립트로 처리하기

내 문제는 내 onLoad 코드가 저장 될 때마다 실행되어 onSave 코드의 출력을 효과적으로 지우는 것입니다. 폼을 처음로드 할 때만 onLoad 코드를 실행하면됩니다. 그렇지 않으면 onSave를 실행하려는 코드가 다른 모든 것을 처리해야합니다.

이 문제를 해결하기 위해 시도한 방법은 Xrm.Page.ui.getFormType();입니다.이 값은 1 또는 2의 값을 반환하며, 1은 생성되는 레코드에 해당하고 2는 업데이트되는 레코드에 해당합니다. 이 시나리오는 하나의 시나리오에서 작동했습니다. 사용자 정의 엔티티에 대한 새로운 레코드를 만들 때 내 onLoad 코드가 실행되는 것을 원하지 않았으며 getFormType()이이를 해결했습니다. 하지만 레코드를 저장하면 반환 값이 변경되고 OnLoad 코드가 OnSave를 실행하게되어 작업이 엉망이되었습니다.

어떻게하면 해결할 수 있을지에 대한 아이디어가 있습니까? getFormType()과 같은 것을 유용하게 사용할 수는 있지만, 일에 관해서는 약간의 손실이 있습니다. 감사!

답변

1

modifiedon 속성에 onChange 이벤트 핸들러를 추가하면이 값은 레코드가 저장 된 후에 만 ​​변경됩니다. 글로벌 매개 변수를 가질 수 있으며 해당 값을 설정하고 onLoad가 다시 실행되지 않도록 값을 사용할 수 있습니다.

var canRunOnLoadCode = true; 

//form onLoad function 
function onLoad() { 
if(!canRunOnLoadCode) return; 
//on load code below 
} 

//register the below function on change of modified on 
function afterOnSave(){ 
canRunOnLoadCode = false; 
} 
+0

감사합니다. 그 일은 훌륭했습니다. –

관련 문제