10.05.2017, 05:54 | #1 |
Участник
|
Общие продукты
Добрый день!
Система ax 2012 r3. Задача сделать InventTable общим для всех компаний. + InventTableModule. Продуктов уже близко к 1млн. на рабочем приложений. Подскажите может кто то сделал, какие могут быть проблемы. |
|
10.05.2017, 10:01 | #2 |
Участник
|
Это неправильно поставленная задача для ax2012.
В ax2012 уже есть общие продукты - Products (EcoResProduct) и уже есть продукты, выпущенные в конкретной компании - Released Products (InventTable + InventTableModule + еще 6 таблиц) уже есть процедура, которая создает и связывает общий продукт с конкретным. таким образом, если ваша задача - получить общие для нескольких компаний продукты, то: 1. вам НЕ нужно насиловать аксапту разработкой 2. вам нужно почитать документацию на предмет общих продуктов и модуля Product Information Management если ваша задача - задействовать средства разработки для внесения изменений, то = вам нужно изменить свойство таблиц PerCompany = No = после чего вам придется починить работу с общими продуктами, которые неизбежно сломаются при изменении свойства таблиц |
|
10.05.2017, 10:18 | #3 |
Участник
|
ну либо по классике виртуальных компаний пойти:
= создать табличную коллекцию, проверить ее через best practice (покажет связанные таблицы не в коллекции). Возможно на этом этапе возникнут интересные коллизии, но все решаемо = создать виртуальную компанию VRT = пробить через sql поле DataAreaId у всех таблиц в коллекции на VRT Или, как выше сказано - релизить продукт джобом в каждой компании, + допилки по синхронизации значений полей между компаниями, если такие нужны. Выбор за вами в любом случае Последний раз редактировалось imir; 10.05.2017 в 10:24. Причина: орфография |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
10.05.2017, 10:21 | #4 |
Участник
|
а, и еще важное:
если установить свойство PerCompany=No модуль Retail сломается полностью. Retail отправляет номенклатуру магазинам. асосртименты, магазины получатели сильно завязаны на компанию. особенно в функционале POS. там в принципе не предусмотрена ситуация, когда таблица InventTable является общей. Ну, и чтобы два раза не вставать: если это число записей в таблице - то это не страшное число. у людей и больше бывает. индекс по номенклатуре достаточно селективный. лучше обратите внимание на InventDim. проблемы с производительностью скорее всего там, а не в номенклатуре. )) |
|
|
За это сообщение автора поблагодарили: arhat (1). |
10.05.2017, 10:27 | #5 |
Участник
|
хороший совет.
для предыдущих версий. к сожалению уже в 2012 разработчики начали отказываться от виртуальных компаний. (возможно происходит унификация продуктов Dynamics - общие и компанейские таблицы есть во всех продуктах Dynamics, а виртуальные таблицы только в аксапте.) (хотя мое личное ничем не обоснованное мнение - разработчики в МС не смогли освоить этот механизм.) ну и Retail перестанет работать и с виртуальными компаниями. он вообще написан только для случая dataAreaId = компания из companyInfo. поэтому по техническим причинам, начиная с 2012 виртуальные компании лучше не использовать. |
|
10.05.2017, 10:43 | #6 |
Участник
|
Цитата:
Ходили слухи, что в новой версии виртуальные таблицы заменят неким аналогом - дублированием записей в каждой компании и синхронизацией изменений через sql. В бэта-версиях это выглядит как хранимки с жестким перечислением полей, т.е. стремновато, думаю будет другой механизм. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
10.05.2017, 11:45 | #7 |
Участник
|
Цитата:
Сообщение от mazzy
Это неправильно поставленная задача для ax2012.
В ax2012 уже есть общие продукты - Products (EcoResProduct) и уже есть продукты, выпущенные в конкретной компании - Released Products (InventTable + InventTableModule + еще 6 таблиц) уже есть процедура, которая создает и связывает общий продукт с конкретным. таким образом, если ваша задача - получить общие для нескольких компаний продукты, то: 1. вам НЕ нужно насиловать аксапту разработкой 2. вам нужно почитать документацию на предмет общих продуктов и модуля Product Information Management если ваша задача - задействовать средства разработки для внесения изменений, то = вам нужно изменить свойство таблиц PerCompany = No = после чего вам придется починить работу с общими продуктами, которые неизбежно сломаются при изменении свойства таблиц |
|
10.05.2017, 11:57 | #8 |
Участник
|
Связь с InventDim в таблице InventItemLocation и проводках. Их трогать не нужно.
Пока придумал такой порядок действий: 1) Настроить все таблицы с полем DataAreaID(Группа аналитик хранения, аналитик отслеживания, своиства розничных продуктов и т.д.) для компаний DAT 2) Найдти продукты с дублями 3) Привести все своиства продуктов с дублями в один. 4) Удалить дубли. 5) Поменять своиство SaveDataPerCompany = No. |
|
10.05.2017, 11:58 | #9 |
Участник
|
Не совсем.
Так уж исторически сложилось, что к номенклатуре относятся параметры закупки, продажи, складские параметры, и параметры прочих модулей, параметры складских аналитик. Не говоря уже о разных параметрах разноски в главную книгу. Зачастую у одной и той же номенклатуры может быть даже наименование разное. Для продажников - "милая красненькая штучка", а для сервиса полный код по каталогу. Кроме того, как правило в разных компаниях у людей разные права на разную номенклатуру. Попробуйте продумать до конца что вам придется сделать общим, если InventTable сделать общим. Когда делили на продукты и номенклатуру, то вроде неплохо подумали. Посмотрите чем отличаются Products от Released Procducts. Единственная существенная претензия - ну зачем они такие неразличимые названия для двух сущностей выбрали... |
|
10.05.2017, 12:00 | #10 |
Участник
|
Аве, Цезарь!
Идущие на смерть приветствуют тебя. Расскажите пожалуйста чем закончится |
|
10.05.2017, 12:04 | #11 |
Участник
|
|
|