Forum Discussion

MarkBird's avatar
MarkBird
Contributor III
2 years ago

Connector Rule - Object reference not set to an instance of an object

Hi 

I always seem to get an "Object reference not set to an instance of an object" in the error log when I execute data loads that use connector rules.

The full error message is:

 

----------------------------------------
Exception Type: Unknown
Message: Object reference not set to an instance of an object.

Stack Trace:
at OneStream.Shared.Engine.XFTelemetryHelper.GetTaskActivityArgsInfo(SessionInfo si, TaskActivityArgs taskActivityArgs) in C:\agent\_work\411\s\Source\Shared\Engine\SharedEngineBase\UserActivity\XFTelemetryHelper.cs:line 55

 

The strange thing is that the data load is always successful... Does anyone know how to get rid of this error message?

Thanks,

Mark

 

 

  • If you are using multiple fields then I would do it as 

    Dim fieldValues as String() = args.line.split(",")

    Then fieldValues(0) is first column and filed values(3) is 4th column. 

13 Replies

  • Are these declared as instance variables? (declared as part of the class declaration).  If so, consider preceding them with underscores for clarity.   

     

     

     

     

    • MarkBird's avatar
      MarkBird
      Contributor III

      When I use that function, I get the following error:

      Those are declared as constants

      #Region "Constants and Enumerations"
      
      		Dim connectionName As String = "OneStream BI Blend"		
      		
      		Dim columnNames As String() = {"Account", "AccountType", "Amount", "Credit", "Debit", "Department", "Entity", "Flow", "IC", "Location", "PLCategory", "SourceID", "UD1_ProfitCentre", "UD2_Category", "UD3_Projects", "UD4_DataAudit"}
      		
      		Dim columnNamesDrillBack As String() = {"Entity", "EntityDesc", "Period", "Account", "AccountDesc", "AccountType", "Debit", "Credit", "Amount", "Debit", "Credit", "Amount", "PLCategory", "Division", "Department", "DepartmentDesc", "Location", "LocationDesc", "PropertyLocation", "PropertyLocationDesc", "ProjectCode", "ProjectCodeDesc"}
      		
      		Dim accountTypePL As String() = {"COGS", "DeferExpense", "Expense", "Income", "OthExpense", "OthIncome"}
      		Dim accountTypeBS As String() = {"AcctPay", "AcctRec", "Bank", "Equity", "FixedAsset", "OthAsset", "OthCurrAsset", "OthCurrLiab", "NonPosting"}
      	
      		Dim accountTypeSignFlip As String() = {"Income", "OthIncome", "AcctPay", "Equity", "OthCurrLiab"}
      		
      #End Region

       

      • MarkBird's avatar
        MarkBird
        Contributor III

        Changing it to the following worked though:

        MonthName(wfMonth, True)

         

  • Something your code references or returns is null.  That's what the error message means.  If you post the code you're running maybe we can help you find the bug.

     

    • MarkBird's avatar
      MarkBird
      Contributor III

      Hi Rob

      I have tried the following two scripts:

      api.Parser.ProcessSQLQuery(si, DbProviderType.OLEDB, connectionName, True , sSQL, False, api.ProcessInfo)
      'Get data from source.
      Using dbC As DbConnInfo = BRApi.Database.CreateExternalDbConnInfo(si, connectionName)
      	dt = BRApi.Database.ExecuteSql(dbC, sSQL, True)
      End Using
      
      'Execute the data load
      api.Parser.ProcessDataTable(si, dt, False, api.ProcessInfo)

      Both work, but both seem to produce the same message in the error log (on a side note, do you know which is the best one to use from a performance point of view?)

       

      • RobbSalzmann's avatar
        RobbSalzmann
        Valued Contributor II

        This is a fragment, it leaves out most possibilities to help you.  The problem is likely somewhere in the declarations/assignments, or in your return.

  • Subscript, "Array Index, all the same thing.

    At this point, I would experiment with writing the values of the variables to the log in your Catch block.

    This will require you to declare your variables before the try (you should do this anyway). 

    I would also chain your exception throwing and only write to the log from Main.  This will give you more of a stacktrace to work with.  

    • MarkBird's avatar
      MarkBird
      Contributor III

      When you say chain your exception throwing, is that not what I'm doing here?

      Catch ex As Exception
      	Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
      End Try

       

      • MarkBird's avatar
        MarkBird
        Contributor III

        I tried a log write in the catch of my Main function and it didn't write anything, so I'll raise a support ticket.

        Appreciate your efforts in trying to help me find the issue though!

        Mark