Поля таблицы Microsoft Dynamics NAV не найдены
Я создал две новые таблицы в нашей установке Dynamics NAV 2013: 50086 заказов по периодам и 50089 продаж по периодам. Каждый из них содержит поля Date, Decimal, Integer и Text, а также поля Code, используемые в ключе. Я оставил все свойства поля по умолчанию. При обращении к таблицам в моем блоке кода некоторые, но не все, поля вызывают ошибки компиляции, поскольку они не распознаются, с ошибкой "Вы указали неизвестную переменную". В коде у меня есть таблицы, на которые ссылаются как на локальные переменные типа Record.
Я пробовал несколько разных способов обращения к полям таблицы в случае, если ошибка была в коде, но все они вызывают ту же ошибку. Мой текущий код:
ItemRevenue.VALIDATE("Last Period Orders", 1);
Перекомпиляция объектов (таблиц и кодов) не устранила проблему. Чтобы заставить компилятор использовать последнюю версию таблиц, я удалил все ссылки на таблицы из блока кода, перекомпилировал таблицы, затем добавил ссылки обратно и перекомпилировал блок кода. Это не исправило это, те же самые поля все еще вызывают ошибки компиляции.
Все поля таблицы присутствуют в таблицах SQL Server.
Что я должен сделать, чтобы все новые поля таблицы были видны компилятору?
2 ответа
Я никогда не понимал, почему компилятор не распознает имена полей таблицы, но используя меню символов C/AL для добавления имен полей вместо их ввода или копирования и вставки их из определения таблицы, создавал компилируемый код. Для человеческого глаза не было никакой разницы в именах полей, но компилятор распознавал имена полей, вставленные через меню символов C/AL, тогда как он не распознавал их раньше.
Если вы добавляете поля в таблицу, когда кодовый блок ссылается на открытую таблицу, C/AL будет выдавать эту ошибку до тех пор, пока вы снова не откроете кодовый блок. Это единственный способ обновить определение таблицы для codeunit.
Однако, если кодовый блок объявлен как SingleInstance, просто повторно открыть кодовый блок недостаточно. Вам необходимо перезапустить клиентское приложение или как оно называется в более новых версиях среды разработки. Это обновит определение таблицы для единичного кода.