BDI Query with Macro Expressions does not work when initial query returns 0 rows

  • 7022538
  • 11-Jan-2018
  • 11-Jan-2018

Environment

Operations Center 5.X

Situation

You have Data Integrator (BDI) Adapter based off of a BDI Definition which is setup to do a Delta Query using Macro Expressions. On starting the Adapter the initial BDI query returns 0 rows from the given database, and in the Formula.trc you see a warning stating the BDI Adapter is throwing a type mismatch message.

Resolution

Modify the BDI Definition to check if the Computed property is set to NULL or is set to a value.

Example BDI Definition:
#if ( ${query.initial} || !${query.getProperty().ComLastOccurTime})
     DATEADD(ss, LastOccurTime, '19700101')  >  dateadd(hour, -1, getdate())
#else
     LastOccurTime  >   '${query.getProperty().ComLastOccurTime}'
#end 

In the above example I have ${query.getProperty().ComLastOccurTime} as my computed property.

Cause

The cause is due to Macro Expression Engine setting the “computed” property to “NULL” when the initial query returns 0 rows. On the next iteration of the BDI Adapter it will execute the else portion of the statement and plug in "NULL" for the "Computed" property.

Feedback service temporarily unavailable. For content questions or problems, please contact Support.