Исходящие порты полезны только для асинхронной связи.
См. Экспорт данных AX 2012. с исходящими портами для примера (используя файловую систему).
Шаги для инициации отправки данных находятся в файле AIF_SendCustomer
.
Поскольку это нелегкая операция, вы можете рассмотреть возможность регистрации записей, которые необходимо интегрировать, в настраиваемую таблицу интеграции, а затем выполнить пакетную обработку.
Это делается в методе insert
и/или update
и, возможно, delete
. Для удаления требуется, чтобы вы сохранили значение поля RecId
во внешней системе, которое будет использоваться для запросов на удаление. Следующее не распространяется на это.
Для зарегистрированной таблицы выполните следующий метод:
void syncRecord()
{
XXXRecordLog log;
log.RefTableId = this.TableId;
log.RefRecId = this.RecId;
log.insert();
}
Затем вызовите this.syncRecord()
в методах insert
и update
.
В запросе к исходящей службе убедитесь, что существует объединение вашей таблицы и таблицы журнала. Таким образом экспортируются только измененные записи.
Создайте пакетное задание для передачи, используя AIF_SendCustomer
в качестве шаблона. После синхронной (AifSendMode::Sync) передачи записей удалите записи журнала (или отметьте их как переданные).
Наконец, вызовите AIFoutboundProcessingService
, чтобы очистить файл:
new AIFoutboundProcessingService().run();
Старайтесь, чтобы все было просто. Возможно, было бы проще сделать экспорт измененных записей в файл с запятыми!
person
Jan B. Kjeldsen
schedule
26.08.2015