28.03.2019, 18:26 | #1 |
Участник
|
D365FO: Data entity import: импорт нередактируемого поля
Всем доброго дня, нужна помощь вот в каком вопросе (D365FO).
Необходимо создать DataEntity для импорта таблицы KMCollection, чтобы можно было добавлять новые записи. Проблема в том, что поле kmCollectionId в таблице нередактируемое. И при попытке импорта система ругается, что поле kmCollectionId в DataEntity "cannot be updated". Свойства AllowEdit для поля в entity и stagingTable изменены, результата никакого. Таблица стандартная, поменять свойство поля на allowEdit нельзя, да и не хочется. Какие есть нормальные способы решения вопроса? Заранее спасибо!
__________________
Ты лучше голодай, чем что попало есть, И лучше будь один, чем вместе с кем попало.
|
|
28.03.2019, 18:55 | #2 |
Administrator
|
Ну а если в самой Entity в коде в явном виде прописать это присвоение? Например, в методе mapEntityToDatasource?
__________________
Возможно сделать все. Вопрос времени |
|
28.03.2019, 19:09 | #3 |
Участник
|
То есть добавить виртуальное поле, не связанное с kmCollectionId, и значение записывать в настоящее поле в коде? Виртуальное поле для первичного ключа не очень работает, но попробовать можно, спасибо!
__________________
Ты лучше голодай, чем что попало есть, И лучше будь один, чем вместе с кем попало.
|
|
28.03.2019, 19:28 | #4 |
Administrator
|
Да, именно так. Конечно не надо новое виртуальное поле включать в ключ
__________________
Возможно сделать все. Вопрос времени |
|
28.03.2019, 22:25 | #5 |
Участник
|
Пробовали сделать его редактируемым в ентити и такой метод дописать ?
X++: public void persistEntity(DataEntityRuntimeContext _entityCtx) { his.skipDataSourceValidateField(fieldNum(MyEntityName, MyField), true); super(_entityCtx); } Последний раз редактировалось skuull; 28.03.2019 в 23:24. |
|
|
За это сообщение автора поблагодарили: trud (5), sukhanchik (4), Ar (1), klimova_m (1). |
29.03.2019, 08:51 | #6 |
Administrator
|
Какой однако интересный способ, о котором мало чего написано...
Оставлю здесь пару ссылочек с упоминанием про использование этого метода. https://stoneridgesoftware.com/data-...perations-ax7/ https://ievgensaxblog.wordpress.com/...entity-import/
__________________
Возможно сделать все. Вопрос времени |
|
29.03.2019, 12:30 | #7 |
Участник
|
Спасибо за ссылку на мой блог конечно, но оба блога совсем не о том
Вся магия в skipDataSourceValidateField. persistEntity вызываеться реже чем mapEntityToDataSource, но это не мешает вам воткнуть skipDataSourceValidateField в mapEntityToDataSource и он тоже должен работать. Правильная ссылка на docs: https://docs.microsoft.com/en-us/dyn...ation-behavior |
|
|
За это сообщение автора поблагодарили: sukhanchik (6), ax_mct (5). |
29.03.2019, 12:34 | #8 |
Участник
|
О, это мне нравится куда больше, спасибо большое! Сейчас попробую
__________________
Ты лучше голодай, чем что попало есть, И лучше будь один, чем вместе с кем попало.
|
|
29.03.2019, 13:49 | #9 |
Участник
|
Да, прекрасно работает.
__________________
Ты лучше голодай, чем что попало есть, И лучше будь один, чем вместе с кем попало.
|
|
Теги |
d365fo, dataentity |
|
|