다음을 통해 공유


Microsoft Dynamics AX 2012용 Microsoft Management Reporter 2012의 "개체 참조가 개체의 instance 설정되지 않음" 오류

이 문서에서는 Microsoft Dynamics AX 2012용 Microsoft Management Reporter 2012에서 발생하는 개체 오류의 instance 설정되지 않은 Object 참조에 대한 해결 방법을 제공합니다.

적용 대상: Microsoft Management Reporter 2012, Microsoft Dynamics AX 2012 R3
원래 KB 번호: 2967363

증상

Microsoft Dynamics AX 2012용 Microsoft Management Reporter 2012의 Management Reporter 구성 콘솔의 통합 로그에서 다음 오류가 표시됩니다.

[AX 2012 계정에서 계정]에 오류가 발생했습니다. 처리가 중단됩니다. 오류 텍스트: 개체 참조가 개체의 instance 설정되지 않았습니다.

또한 다음 오류는 이벤트 뷰어 나타날 수도 있습니다.

Catch된 예외: [System.NullReferenceException] 개체 참조가 개체의 instance 설정되지 않았습니다. 스택 추적:at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.DataAccessHelper.GetEnumLabelId(EnumMetadata enumList, Nullable'1 value)
Microsoft.Dynamics.Integration.Adapters.AX2012GL.DataAccessHelper.GetEnumLabelId(EnumMetadata enumList, Nullable'1 value)
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AX2012GLAdapter.GetEnumValueLabelString(String enumName, Nullable'1 value)
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.PopulateAccountAttributes(SqlDataReader accountReader)
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.CreateAccount(SqlDataReader reader, Dimension mainAccountDimension, Int64 mainAccountRecId) at Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.QueryAccountValues()
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.ReadObjectKeys(DateTime modifiedDate)
Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ReadObjectKeyList(DbMap map, DateTime queryDate, Int32& count)에서
Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ProcessRecordsImplementation(OperationType operationType)

원인

이 문제는 AX 데이터베이스의 MainAccount 테이블에 있지만 AOT(애플리케이션 개체 트리)에 없는 게시 형식이 있기 때문에 발생합니다.

해결 방법

이 문제를 resolve 다음 단계를 수행합니다.

  1. AX 데이터베이스에 대해 다음 SQL 문을 실행하여 계정의 게시 유형을 검사.

    select distinct (postingtype) from MainAccount
    
  2. AX에 로그인하고 AOT를 검사. AOT로 이동하려면 데이터 사전을 선택하고 기본 열거형을 선택한 다음 LedgerPostingType을 선택합니다. 각 항목의 속성을 확인하고 EnumValues 테이블을 기록해 둡니다.

  3. MainAccount 테이블과 AOT의 EnumValues 테이블 간에 차이점이 발견되면 잘못된 게시 유형을 포함하는 계정에 유효한 게시 유형이 설정되어 있어야 합니다.

    예를 들어 다음 문을 사용하여 잘못된 게시 유형 255가 AOT에 없는 MainAccount 테이블을 업데이트합니다. 이 문은 게시 형식을 유효한 종류의 0으로 설정합니다.

    update MainAccount set postingtype = 0 where postingtype = 255
    
  4. MainAccount 테이블을 업데이트할 때 관리 기자 데이터 마트를 다시 빌드해야 합니다. 이렇게 하려면 다음과 같이 하십시오.

    1. 시작을 선택하고 서버에서 구성 콘솔을 엽니다.
    2. 왼쪽 탐색 창에서 ERP 통합을 선택합니다.
    3. 사용 중인 통합을 선택한 다음 통합 사용 안 함을 선택하여 통합을 사용하지 않도록 설정합니다.
    4. 제거를 선택하여 ERP 통합을 제거합니다.
    5. 왼쪽 탐색 영역에서 관리 기자 서비스를 선택하고 두 관리 기자 서비스를 모두 중지합니다.
    6. Microsoft SQL Management Studio에서 DDB 데이터베이스를 백업하고 삭제합니다.
    7. 관리 기자 서비스를 시작합니다.
    8. 파일을 선택한 다음 구성을 선택하여 ERP 통합을 다시 구성합니다.
    9. 통합이 구성되면 구성 콘솔의 왼쪽에서 통합을 선택한 다음 통합 사용을 선택합니다.