Hello everyone! Can someone help me with the following error? I don't know when or what changed to make this error start occuring. My LCA started to not receive the table for my gqi. I'll leave the error image and my code bellow:
Thank you all in advance!!
private readonly GQIIntArgument _dmaArgument = new GQIIntArgument("DMA id") { IsRequired = true };
private readonly GQIIntArgument _elementArgument = new GQIIntArgument("Element id") { IsRequired = true };
private readonly GQIIntArgument _tableArgument = new GQIIntArgument("Table id") { IsRequired = true };
private GQIDMS _dms;
private int _dmaID;
private int _elementID;
private int _tableID;
public GQIArgument[] GetInputArguments() => new[] { _dmaArgument, _elementArgument, _tableArgument };
public OnArgumentsProcessedOutputArgs OnArgumentsProcessed(OnArgumentsProcessedInputArgs args)
{
_dmaID = args.GetArgumentValue(_dmaArgument);
_elementID = args.GetArgumentValue(_elementArgument);
_tableID = args.GetArgumentValue(_tableArgument);
return default;
}
public OnInitOutputArgs OnInit(OnInitInputArgs args)
{
_dms = args.DMS;
return default;
}
public GQIColumn[] GetColumns()
{
return new GQIColumn[]
{
//gqi column names...
};
}
public GQIPage GetNextPage(GetNextPageInputArgs args)
{
var table = GqiGetPartialTable.GetTable(_dms, _dmaID, _elementID, _tableID);
var rows = new List<GQIRow>();
foreach (var row in table)
{
rows.Add(new GQIRow(
new GQICell[]
{
// gqi values...
}));
}
return new GQIPage(rows.ToArray());
}

Hi Alberto, thank you for your help, but i already did those two steps, the element still exist in our dma and i did the re-link in the LCA, which return the same columns, but the error persists
Hi João,
I don't see any issue in the code you provided, however there are some missing pieces so I'll try to give some advice on how you can uncover the root cause.
It is indeed sometimes difficult to determine the source of an exception in an ad hoc data source. Fortunately, we made some improvements recently that will log the exact stack trace of any error that occurs in the implementation.
(Starting from DataMiner 10.4 (CU15), 10.5 (CU3) or 10.5.6 or when using the GQI DxM).
In the meantime, if you're on an older version, you can wrap the implementation of your GetNextPage method in a try/catch block and do one of the following:
- Log the full exception using the GQILogger.
- Throw a new GenIfException with the catched exception passed in as innerException. This should automatically log the full stack trace.
That should give you a starting point to see which object that you're trying to use is a null reference.
Additionally, you can add extra log statements throughout your code to verify the actual values.
In the future, we hope to enable full debugging capabilities to make these investigations more convenient.
I'd check if the original elements/tables are still there on the DMA – if not, you may need to re-link the components in the dashboard // LCA