Dynamics AX 2012 R2 has got an excellent feature, ‘Data Partitions”. It enables Business data isolation but sharing the same business application.
- If an organization runs multiple business entities that shares the same business application, can Share IT infrastructure across independent businesses.
- While sharing the IT infra, Organization achieves strict data isolation across businesses.
- This reduces Total cost of ownership (TCO) for managing IT infrastructure.
Data partition basics
Below are some basic features of data partitions. The implementor should understand these before designing/preparing for data partitions.
- Metadata (Business application) is common across all partitions.
- Enabling/disabling configuration key affects all partitions.
- Named user licenses are calculated per principal, i.e. AD user, regardless of the number of partitions they have access to.
- A default partition named Initial is always created for each AX instance.
- DAT company exists in every partition. It is automatically created when a new partition is created.
- A company with same name can exist in multiple partitions. Intercompany doesn’t work across partitions
- AX users are defined per partition.
- With in a partition a principal can be associated with one AX user.
- Each user has a “default” partition associated with them, however a user can be authorized to access data in more than one partition.
- AX user IDs other than admin and Guest are unique across partitions.
- The principal that creates a new partition automatically becomes the admin user in the partition
- Each partition contains at least one company or legal entity. A legal entity occurs in only one partition. When you create a legal entity, the system assigns it to the current partition. The legal entity can never be moved to another partition. However, its data can be exported from the partition and then imported to another company in another partition.
- User to role assignment is per partition.
Organizations (e.g. departments, cost centers, etc.) and hierarchies are defined within a partition.
User-Role-Organization assignment is per-partition.
Intended partition is specified at session creation time via client configuration.
If no partition is specified then the user’s default partition is chosen
- In a partitioned system, Services and Application Integration Framework (AIF) is a shared subsystem. To guarantee that incoming requests are correctly isolated, you can restrict an inbound integration port to a particular partition. Additionally, you can specify a target partition for an incoming request by including the partition key in an XML element in the header of the document. Similarly, outbound responses indicate the source partition for the response data by including the partition key in the header. Because AIF uses a single gateway queue, a system administrator can view all documents in the queue, AIF history, or exceptions list in any partition. The forms that display these lists now have a field that shows the partition key for each document. for more info click
- Like AIF, the batch processing framework is a shared subsystem. One batch server is shared across partitions. However, each batch job is associated with a specific partition. The batch server executes batch jobs in the context of the correct partition. To view batch jobs or their history, you must log on to the partition that the batch jobs are associated with.
- Separate organizational hierarchies – Each partition contains its own organizational hierarchy, which includes one or more legal entities. Like a new deployment of Microsoft Dynamics AX, each partition that is created contains the DAT company as a default legal entity. System administrators can add legal entities to each partition. Legal entities are never shared between partitions, even if the legal entities have the same name.
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 it is implemented Technically?
- A partition Table is introduced. that keeps the list of partitions in the system.
- The partition key is applied in all contexts as data area id used to apply, like all queries, forms etc.
- Every table in the system now has one more field named partition, that is nothing but the record id of the record created in the step one.
- Cross company query doesn’t work across paritions
- Global function getcurrentpartitionrecid() introduced.
- What’s New: Data partitioning [AX 2012]
- Partitions, Companies, and Data Isolation in Microsoft Dynamics AX [AX 2012]