다음을 통해 공유


"일관성 없는 유효성 검사 데이터로 인해 백그라운드에서 유효성 검사가 다시 시작되었습니다." 오류

이 문서는 동기 저장 이벤트 제한으로 인해 Microsoft Dynamics 365 Field Service 양식에서 오류 메시지가 발생하는 문제를 해결하는 데 도움이 됩니다.

증상

폼의 특정 필드가 변경되면 Dynamics 365 Field Service는 AsyncJobTracker 이 패턴을 사용하여 관련 레코드를 검색하고 캐시합니다. 캐시된 레코드는 이벤트 중에 유효성 검사에 OnSave 사용됩니다. 동기 저장 이벤트 제한으로 인해 시스템은 비동기 호출을 기다리지 않습니다. Dynamics 365 Field Service 양식에는 다음 오류 메시지가 표시됩니다.

유효성 검사 데이터가 일관되지 않아 유효성 검사가 백그라운드에서 다시 시작되었습니다. 잠시 후에 다시 시도하세요.

원인

Dynamics 365 Field Service에는 관련 엔터티에서 데이터를 검색해야 하는 유효성 검사가 있습니다. 그러나 제한 사항으로 인해 모든 비동기 호출이 완료되기를 기다리는 저장을 차단할 수 없습니다.

패턴은 AsyncJobTracker 변경된 오프라인 레코드의 유효성을 검사하고 서버로 다시 동기화할 수 있도록 오프라인 모드에서만 사용하도록 설정됩니다.

캐시된 레코드가 현재 조회 필드와 일치하지 않으면 오류 메시지가 표시됩니다.

해결

여러 시나리오에서 이 문제가 발생할 수 있습니다. 해결 방법은 시나리오에 따라 달라집니다.

  • 시나리오 1: 사용자가 레코드에 액세스할 수 없습니다. 예를 들어 엔터티가 오프라인 프로필에 포함되지 않았거나 사용자에게 레코드에 액세스할 수 있는 권한이 없는 경우입니다.

    이 문제를 해결하려면 엔터티가 오프라인 프로필 필터에 추가되고 사용자에게 레코드에 액세스할 수 있는 권한이 있는 보안 역할이 부여되었는지 확인합니다.

  • 시나리오 2: 사용자 지정은 필드를 업데이트하는 JavaScript 논리를 도입하지만 이러한 업데이트는 이벤트를 트리거 OnChange 하지 않습니다.

    이 문제를 해결하려면 사용자 지정 JavaScript를 사용하여 조회 필드를 업데이트할 때 fireOnChange 특성을 사용합니다.

    필요에 따라 함수를 setTimeout 사용하여 호출을 지연하고 유효성 검사가 완료되는 시간을 허용합니다.

  • 시나리오 3: 모바일 앱이 기본적으로 오프라인 상태가 아닌 시나리오에서는 사용자가 온라인 모드에서 양식을 열 수 있습니다. 그런 다음 양식이 열려 있는 동안 오프라인으로 전환됩니다. 양식이 온라인 모드일 때는 AsyncJobTracker 실행되지 않으며 레코드를 캐시하지 않습니다.

    이 문제를 해결하려면 온라인으로 이동하여 레코드를 저장합니다.