Подготовил: Андрей Чумаков
Версия Microsoft Dynamics AX: D365
Selects
Работа с внутрихолдинговым функционалом для получения данных от всех перекрестных компаний
Чтобы получить данные от всех компаний сразу, а не только от текущей компании, как в случае с обычным select, используйте ключевое слово crosscompany.
Получение данных от нескольких перекрестных компаний
Чтобы выбрать данные не по всем компаниям сразу, а только по некоторым из них, используйте ключевое слово crosscompany и укажите список компаний:
вариант, при котором список компаний задается в контейнере
вариант, где список компаний задается в разделе где
Получение данных от одной указанной перекрестной компании
Другой способ получить данные от компании, отличной от текущей, — это «переключиться» на другую компанию с помощью changecompany. В этом случае весь код выполняется в контексте указанной компании.
Источники данных форм
Отображение данных от нескольких компаний
Если вам нужно получить данные из нескольких компаний одновременно в источнике данных формы, вам необходимо изменить значение свойства Автоматический запрос между компаниями на «Да». В этом случае данные будут выбираться из всех существующих компаний.
Чтобы ограничить список компаний, вам необходимо установить значения требуемых компаний в методе init () этого источника данных.
Копирование записей
Копирование с использованием функции buf2buf
Чтобы скопировать запись из одной компании в другую, вам нужно «переключиться» на желаемую компанию с помощью changecompany и инициализировать все поля (кроме системных полей) новой записи с помощью функции buf2buf.
Ниже приведен код метода, который создает новую запись и инициализирует ее поля значениями исходной записи:
В качестве примера использования стандартной функции buf2buf можно увидеть класс CustFreeInvoiceCorrection.
Копирование с использованием метода табличных данных с последующей настройкой системных полей
В тех случаях, когда по какой-либо причине вы сохраняете значения системных полей исходной записи, кроме поля DataAreaId, поскольку это поле в любом случае должно соответствовать компании, в которой создается новая запись, используйте данные таблицы метод.
В то же время при создании новой записи некоторые системные поля могут быть переопределены, а поле DataAreaId должно быть переопределено.
Переопределение системных полей должно быть разрешено специальной конструкцией с использованием OverwriteSystemfieldsPermission (). Assert () и overwriteSystemfields ().
Вот пример кода, который переопределяет системные поля в новой записи.
Внутрихолдинговые продажи \ заказы на закупку
Примером стандартных функций внутри компании является связь между заказом на покупку в одной компании и заказом на продажу в другой компании.
Имея заказ на покупку, вы можете получить внутрихолдинговый заказ на продажу, а имея заказ на продажу, вы можете получить внутрихолдинговый заказ на покупку.
Ниже приведены индивидуальные примеры получения заказов на продажу и покупку.
Вот пример стандартного кода в классе MarkupCopy, который получает внутрихолдинговый заказ на продажу.