CRM 솔루션을 사용자 지정하는 과정에 있지만 현재 문제가 있습니다. OnSave 이벤트에 의해 트리거되는 JavaScript가 있습니다. 이 자바 스크립트는 양식의 필드를 업데이트하고 다시 저장하려고합니다.OnSave 이벤트에 의해 트리거되는 필드 업데이트 저장
스크립트를 실행하면 변경하려는 필드를 볼 수 있지만 양식이 다시로드되면 해당 필드는 이전 값을 유지합니다. 나는 아래에 약간의 sudo 코드를 넣었다. 다른 누구도이 문제를 겪은 적이 있습니까?
가 된 OnSave 게시 된 코드가 더 복사/붙여 넣기 오류가없는 경우
//Update field
Xrm.Page.getAttribute("fieldname").setValue(value);
//Set submit mode to always
Xrm.Page.getAttribute.setSubmitMode("always");
//Force save
Xrm.Page.data.entity.save();
@ckeller에게 감사드립니다. 나는 그 변화를 만들었지 만 나는 여전히 같은 문제를 겪고있다. 나는 일종의 경쟁 조건이 있다고 생각한다. onsave를 실행하는 매우 짧은 스크립트를 사용하면 업데이트 된 필드가 저장되어 PostRetrieve에 올바르게 표시됩니다. 그러나 좀 더 복잡한 스크립트를 사용하여 다른 엔터티를 쿼리하면 (따라서 더 오래 걸림) PostRetrieve에 업데이트가 저장되지 않습니다. –
사실이 문제를 해결하는 방법을 알아 냈습니다. 저장 이벤트를 방지하고 업데이트 된 필드가 더티인지 아닌지 확인하여 값을 업데이트 한 후 저장을 강제 수행 할 수있었습니다. –
이 문제를 직접 해결 한 적이 있습니까? Async JS로 인해 발생하는 것 같습니다. 누구든지 이것을 처리하는 더 좋은 방법을 알고 있습니까? 저장을 막고 콜백에서 다시 호출을 저장해야하는 것은 어리석은 것처럼 보입니다. 특히 간단한 업데이트 만 수행하면됩니다. – Ant