
Hi community,
im confused as to why I get two different FieldIds for the same field.
public void jumpRefItemExtension_BEC(FormDataObject _dataObject)
{
Common callingRecord = _dataObject.datasource().cursor();
SysDictField dictField = new SysDictField(callingRecord.TableId, _dataObject.dataField());
SysDictField dictField2 = new SysDictField(callingRecord.TableId, fieldNum(InventTableExtension_BEC, ProductSubGroupId));
info("(dictField) : " dictField.name() ' ' any2Str(dictField.tableid()) '.' any2str(dictField.id()) ' value: ' callingRecord.(dictField.id()));
info("(dictField2) : " dictField2.name() ' ' any2Str(dictField2.tableid()) '.' any2str(dictField2.id()) ' value: ' callingRecord.(dictField2.id()));
...
}
But both FieldIds lead to the same field and value:
(note: _dataObject is initialized from jumpRef(FormDataObject _formDataObject) - method is executing when i click the value or right click field -> show details)
Problem is, when I use the approach of getting the _dataObject.fieldId() i cannot compare it withthe intrinsic function fieldNum(...) because they dont match
Is this new in D365? Im pretty sure that wasn't the case in AX2012
Thanks!
Hi Raphael,
There is a difference between the actual field number and an extended field number. The form data object is using the extended ID. There are functions to go from the actual field number to the extended number or vice versa. You can read about this here: docs.microsoft.com/.../extended-field-ids