|
02.09.2016, 23:57 | #1 |
Участник
|
Проверка проимпортированных строк во время импорта data entities в AX 7
Дано: CSV-файл с, допустим, 10 строками. Импортируем его в AX 7 через Data Management > Import.
Подскажите, каким образом (в каком методе) при импорте каждой строки можно проверить содержимое уже проимпортированных строк? К примеру, для третьей строки проверить значение полей в проимпортированных двух строках? Интересует, как это сделать перед созданием записи в staging table. Спасибо. |
|
03.09.2016, 08:34 | #2 |
Участник
|
Скорее всего никак. Так как из файла в staging копирует SSIS, собственно в этом и фишка. Всю логику можно прикрутить только при staging -> target.
|
|
03.09.2016, 12:33 | #3 |
Участник
|
Но методы defaultRow и defaultFields ведь вызываются для каждой записи? В качестве эксперимента, в них можно кэшировать значения полей и потом использовать кэш при следующих вызовах этих методов. Но при этом неясно, как проверять, что это кэш конкретно для этого импорта, а не для других.
|
|
03.09.2016, 15:26 | #4 |
Участник
|
Можно и левой пяткой правое ухо чесать, но в целом методы defaultRow и defaultFields предназначены для заполнения значений по умолчанию для полей, значения которых в импорте не заданы явно. Если вы в этих методах будете делать что-то другое, то испортите карму себе и вашим последователям.
|
|
03.09.2016, 21:06 | #5 |
Участник
|
Пока не попробуешь, не ясно, можно или нет.
Цитата:
Я согласен. При этом хочется в полной мере понять возможности системы. К примеру, когда закачиваем в staging "все как есть", мы вполне можем инициализировать некоторые поля из number sequences. Если это максимум, что позволяет фреймворк - что ж, это тоже полезное знание. |
|
03.09.2016, 16:05 | #6 |
Участник
|
Сам подход использования этого фрейморка связан с тем, что импорт разделен на два этапа:
|
|
04.09.2016, 04:53 | #7 |
Участник
|
А чем вам этот staging так впал ? Почему не сделать, как нормальные люди, всю логику при копировании из staging в target ? Там даже можно реализовать свой метод copyCustomStagingToTarget и написать свою логи для копирования, как сделано в некоторых энтити которые заливают журналы.
Последний раз редактировалось skuull; 04.09.2016 в 05:56. |
|
04.09.2016, 12:37 | #8 |
Участник
|
Ага, спасибо. Отвечая на содержательную часть поста:
К примеру, есть стандартная data entity для ledger journals. Уникальный индекс у staging table такой же, как и у LedgerJournalTrans: номер журнала и номер строки. Если номер журнала может инициализироваться по умолчанию, то для избежания ошибки при импорте номер строки необходимо указывать в отдельном поле в файле. Если же не хочется указывать номер строки в файле импорта, то есть 2 варианта:
|
|
05.09.2016, 11:06 | #9 |
Banned
|
|
|
05.09.2016, 11:11 | #10 |
Участник
|
|
|
Теги |
ax7, data entity |
|
|