![]() |
#1 |
Участник
|
kamalblogs: Data Partitions with Dynamics Ax 2012 R2
Источник: http://kamalblogs.wordpress.com/2012...cs-ax-2012-r2/
============== - This is one of the key feature of Dynamics Ax 2012 R2. - A data partion helps sharing the Ax install base but not the data - This is a powerful feature that can help companies use the same installation. Takes away the hassle of updating multiple installation. What it means functionally ? - As we had company id’s there is one level on top of it now, called the partition key. - The partition key on the status bar indicates your active partition. - System Data like AIF, Configuration, Batch are shared between the partitions. While Application data like address book, Unit of measure are shared only between the companies within each partitions - Partition is identified through the client configuration. - Like Default company there will be a default partition called the “initial” - Users belong only to a particular partition - There can be companies with the same name in multiple partitions.E.g Every partition will have the default company ‘DAT’ - Intercompany doesn’t work across partitions - Mircosoft Recommends: Implementation choice must be made carefully as the companies between two partitions cannot be merged and Intercompany features cannot be used. The only option is to use Data migration tool kit for data export import between partitions and AIF for inter company operations How is it achieved Technically ? - A new partition table is introduced with a Key and the Recid field - There is a new field called ‘PartitionRecid’ in everytable and as the dataareaid was by default applied to all contexts(Forms queries) the partition key will also be added. So a look in to the SQL trace would transalate a Dax query as follows Ax Query Select * From CustTableSQL (Before Partition) Select * from custTable where dataareaid = ‘Dat’SQL (After data partiion) Select * from custTable where data areaid = ‘Dat’ and Partion key = ‘Initial’- No cross company query on partitions are allowed like the cross company query - You can know the current partition through ‘getcurrentpartitionrecid()’ similar to ‘curext()’ - Batch servers work across partitions - AIF works across partitions - Programming Impact – BC.Net new parameter to mention the partition id – AIF Envelope includes partition id – Workflow created in the AOT as metadata is shared but while you have to create workflow configuration in each partition. - New table property like “SaveDataPerPartition” has been introduced like the “SaveDataPerCompany”. So for AIF, Batch tables – Save data per partition is set to “No” ![]() Источник: http://kamalblogs.wordpress.com/2012...cs-ax-2012-r2/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
![]() |
#2 |
----------------
|
Возникают 2 вопроса:
- зачем это нужно? - как это глобально отключить? |
|
![]() |
#3 |
Участник
|
Это сделано по требованию компаний, владеющих несколькими насвязанными бизнесами. К примеру, сеть свечных заводиков и сеть отелей не имеют ничего общего - ни клиентов, ни адресов, а хозяин не хочет платить за две Аксапты.
Как глобально отключить: никак. Можно просто игнорировать эту фичу - если не добавлять вручную новые партишны ("секции" по-русски?), то клиент разницы не увидит. |
|
![]() |
#4 |
----------------
|
а SQL-сервер?
опять первым полем в кластерном индексе? |
|
![]() |
#5 |
Участник
|
А вот этого сказать не могу - не помню, а доступа к R2 сейчас нет.
|
|
![]() |
#6 |
Участник
|
Да, это поле добавляется во все индексы, точно так же, как делалось с dataAreaID
|
|
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
А отключить его совсем можно ?
|
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
----------------
|
да и оптимизатор очередной раз порадуется ненужному полю.
вопрос про полное отключение актуален |
|
![]() |
#11 |
Moderator
|
С нетерпением ждем virtual data partitions...
Будет снова в аксапте два типа компаний нормальные (дамгаародовские) и уродские (микрософтовские). Только вот пока не понятно - кто из них будет называться компаниями, а кто - data partitions... |
|
![]() |
#12 |
Участник
|
Цитата:
Сообщение от Stitch_MS
![]() Это сделано по требованию компаний, владеющих несколькими насвязанными бизнесами. К примеру, сеть свечных заводиков и сеть отелей не имеют ничего общего - ни клиентов, ни адресов, а хозяин не хочет платить за две Аксапты.
Как глобально отключить: никак. Можно просто игнорировать эту фичу - если не добавлять вручную новые партишны ("секции" по-русски?), то клиент разницы не увидит. Почему нельзя было обойтись обычным партицированием по dataareaid ? |
|
![]() |
#13 |
Участник
|
Отключить нельзя.
Ограничение по полям в индексе - ну, скажем так, не так уж много таблиц имеют по 16 полей в каком-либо индексе, поэтому думаю это не является такой уж большой проблемой. Оптимизатор - ну, это его работа, оптимизировать. Если у всех будет только одно значение в partiion колонке, ну, значит, оптимизатор это будет себе как может разруливать. Обычным разделением по dataareaID обойтись было нельзя, потому что в АХ 2012 есть куча глобальных таблиц, как например EcoResProduct. Если в твоей инсталяции есть несколько независимых компаний (а это довольно много наших клиентов), то у них должны быть разные перечни продуктов. |
|
![]() |
#14 |
Участник
|
Цитата:
Возможно из-за того что crosscompany более предметно задействовали для решения безнесс-задач, и пришлось придумать partitions - как механизм низкоуровнего разделения данных. Partitions абсолютно изолированны друг от друга. Абсолютно все системные справочники обособлены. У каждого partition даже свои пользователи со своими правами, свои администраторы. Это как будто две инсталяции одного и того же приложения, только на одной БД. P.S.: Как бы в погоне за крупным бизнесом аксапта не растеряла, тех клиентов что уже имеет. Хотя говорят, когда лес рубят - щепки летят ![]() |
|
![]() |
#15 |
Участник
|
Ну, врядли это будет фактором, из-за которого существующие клиенты могут решить не переходить на АХ 2012.
По сути то, ничего из функциональности не потеряли, все может работать как и раньше, может капельку медленнее (и по сравнению с другими проблемами производительности незаметно ![]() |
|
![]() |
#16 |
Участник
|
Я так понимаю, те, кто жалуются, еще на практике не работали с этим =)?
В 2012 очень много общих таблиц и без этой штуки действительно было бы затруднительно разделять данные. Взять к примеру любимую консультантами возможность копировать компанию и тестировать что-то отдельно. В новой версии без партиций это будет очень трудно. В демоданных от MS также используются партиции для выделения совсем "особенного бизнеса" - Public Sector.
__________________
Ivanhoe as is.. |
|
![]() |
#17 |
Участник
|
Цитата:
Ведь при помощи виртуальных компаний можно достичь тех же самых целей. Непонятно зачем тогда вообще делать таблички общими если можно запихнуть их в нужную табличную коллекцию и настроить виртуальную компанию. К чему умножать сущности ? P.S. Например, GAB сделали по предлагаемой мной схеме - запихнули все в отдельную виртуальную компанию. Почему бы для остальных такой подход не применить. |
|
![]() |
#18 |
Участник
|
Виртуальные компании - зло, так как практически невозможно сохранить целостность данных при добавлении в табличную коллекцию хоть одной более менее серьезной таблицы
Соответственно, хотя официально они и поддерживаются, Майкрософт на каждом углу рекомендует их не использовать. |
|
![]() |
#19 |
Участник
|
|
|
![]() |
#20 |
Moderator
|
Цитата:
Сообщение от kashperuk
![]() Виртуальные компании - зло, так как практически невозможно сохранить целостность данных при добавлении в табличную коллекцию хоть одной более менее серьезной таблицы
Соответственно, хотя официально они и поддерживаются, Майкрософт на каждом углу рекомендует их не использовать. |
|
Теги |
ax2012, data partitions |
|
|