Fout 'Objectverwijzing is niet ingesteld op een exemplaar van een object' in Microsoft Management Reporter 2012 voor Microsoft Dynamics AX 2012

Dit artikel biedt een oplossing voor de objectverwijzing die niet is ingesteld op een exemplaar van een objectfout die optreedt in Microsoft Management Reporter 2012 voor Microsoft Dynamics AX 2012.

Van toepassing op: Microsoft Management Reporter 2012, Microsoft Dynamics AX 2012 R3
Origineel KB-nummer: 2967363

Symptomen

U ontvangt de volgende fout in de integratielogboeken in de Management Reporter Configuration Console in Microsoft Management Reporter 2012 voor Microsoft Dynamics AX 2012:

[AX 2012 Accounts to Account] heeft een fout opgetreden. De verwerking wordt afgebroken. Fouttekst: Objectverwijzing is niet ingesteld op een exemplaar van een object.

Bovendien kan de volgende fout ook worden weergegeven in de Logboeken:

Gevangen uitzondering: [System.NullReferenceException] Objectverwijzing is niet ingesteld op een exemplaar van een object. Stacktracering:at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.DataAccessHelper.GetEnumLabelId(EnumMetadata enumList, Nullable'1 value) at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.DataAccessHelper.GetEnumLabelId(EnumMetadata enumList, Nullable'1 value) at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AX2012GLAdapter.GetEnumValueLabelString(String enumName, Nullable'1 value) at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.PopulateAccountAttributes(SqlDataReader accountReader) at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.CreateAccount(SqlDataReader reader, Dimension mainAccountDimension, Int64 mainAccountRecId) bij Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.QueryAccountValues() at
Microsoft.Dynamics.Integration.Adapters.AX2012GL.AccountObjectProvider.ReadObjectKeys(DateTime modifiedDate) op
Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ReadObjectKeyList(DbMap map, DateTime queryDate, Int32& count)at
Microsoft.Dynamics.Integration.Service.Tasks.MapWork.ProcessRecordsImplementation(OperationType operationType)

Oorzaak

Dit probleem treedt op omdat een berichttype bestaat in de tabel MainAccount in de AX-database, maar niet in AOT (Application Object Tree).

Oplossing

Voer de volgende stappen uit om dit probleem op te lossen:

  1. Voer de volgende SQL-instructie uit op de AX-database om het type boeking van de accounts te controleren:

    select distinct (postingtype) from MainAccount
    
  2. Meld u aan bij AX en controleer de AOT. Als u naar AOT wilt bladeren, selecteert u Gegevenswoordenlijst, selecteert u Base-opsommingen en selecteert u vervolgens LedgerPostingType. Controleer de eigenschappen van elk item en noteer de tabel EnumValues.

  3. Als er verschillen worden gevonden tussen de tabel MainAccount en de tabel EnumValues in AOT, moeten de accounts die ongeldige boekingstypen bevatten een geldige boekingstypeset hebben.

    Gebruik bijvoorbeeld de volgende instructie om de tabel MainAccount bij te werken waarin een ongeldig boekingstype van 255 niet voorkomt in AOT. Met deze instructie wordt het type boeking ingesteld op een geldig type 0.

    update MainAccount set postingtype = 0 where postingtype = 255
    
  4. Wanneer u de tabel MainAccount bijwerkt, moet u de Management Reporter Data Mart opnieuw opbouwen. Ga hiervoor als volgt te werk:

    1. Selecteer Start en open de configuratieconsole op de server.
    2. Selecteer ERP-integraties in het linkernavigatiedeelvenster.
    3. Selecteer de integratie die wordt gebruikt en schakel de integratie uit door Integratie uitschakelen te selecteren.
    4. Selecteer Verwijderen om de ERP-integratie te verwijderen.
    5. Selecteer Management Reporter Services in het linkernavigatievenster en stop beide Management Reporter-services.
    6. Maak een back-up van de DDB-database en verwijder deze in Microsoft SQL Management Studio.
    7. Start de Management Reporter-services.
    8. Selecteer Bestand en selecteer vervolgens Configureren om de ERP-integratie opnieuw te configureren.
    9. Wanneer de integratie is geconfigureerd, selecteert u de integratie aan de linkerkant van de configuratieconsole en selecteert u vervolgens Integratie inschakelen.