Abaixo, a maneira a qual o objeto foi instanciado:
axSalesTable = AxSalesTable::constructValidateInput(salesTable);
O meu problema ocorreu no momento em que os dados eram validados, na árvore do Infolog, com a execução em CIL habilitada:
Percebam que o resultado do validateFieldValue da SalesTable, ficou fora do nível correto na árvore.
Quando executado em X++, a árvore era montada corretamente:
Como neste caso eu não tinha acesso ao validateFieldValue da classe xRecord, sobrescrevi o método na SalesTable, da seguinte forma:
public server boolean validateFieldValue(FieldName _fieldName, int _arrayIndex = 1)
{
boolean ret;
str infoOld;
str infoNew;
boolean isCLRSession;
{
boolean ret;
str infoOld;
str infoNew;
boolean isCLRSession;
isCLRSession = xSession::isCLRSession();
if (isCLRSession)
{
infoOld = infolog.text(Global::infologLine());
}
{
infoOld = infolog.text(Global::infologLine());
}
ret = super(_fieldName, _arrayIndex);
if (isCLRSession)
{
infoNew = infolog.text(Global::infologLine());
if(infoOld != infoNew)
{
infolog.cut(Global::infologLine(),Global::infologLine());
Global::warning(infoNew);
}
}
return ret;
}
{
infolog.cut(Global::infologLine(),Global::infologLine());
Global::warning(infoNew);
}
}
return ret;
}
Com isso o prefix voltou a ser respeitado no validateFieldValue, quando executado em CIL!