Continuing this series of blog posts, this post covers how default dimensions are merged between entities.
This blog post series includes:
- Financial dimensions discovery
- Control uptake and storage
- Copy patterns
- Merging patterns (this post)
- Ledger dimension creation
- Common pattern APIs
- Advanced topics
Default dimension merging
Figure 1 below shows the user manually cleared the Department dimension on the line, which in turn creates a new default dimension foreign key and updates the purchase order line. Since the line has not yet been saved this updated foreign key is only visible on the table buffer in memory, but the new default dimension can be queried and found as shown in Figure 2 below.
Figure 1: Default dimension modified on a document line (Purchase order line)
Figure 2: SQL query and output showing updated default dimensions
Next, consider the item that the user will enter on the purchase order line. Figures 3 and 4 below show default financial dimensions on the released product and the SQL query and result for that default dimension in the database.
Figure 3: Default dimensions on an item
Figure 4: SQL query and output showing default dimensions on item record
Next, the user enters the item on the purchase order line. Figures 5 below shows the item selected on the purchase order line and the resulting default dimensions. In this case, the default dimension values were merged by the purchase order logic.
Figure 5: Resulting default dimensions on a purchase order line
Figure 6: SQL query and output showing default dimensions on item record
The purchase order logic merges the default dimensions from 3 different sources when the item is specified for a purchase order line as shown in Figure 7 below.
Order header default dimensions merged with the order line default dimensions = merged result 1 default dimensions
Item default dimensions merged with merged result 1 = final order line default dimensions (merged result 2)
Figure 7: Merging steps taken
The tables in Figure 7 show the logical steps of the merging that is occurring. However, these steps are combined during execution using the APIs provided by the dimensions framework. Figure 8 below shows the code needed to do all of the merging of the dimensions from the 3 sources shown above.
Figure 8: Code used to merge the three sets of default dimensions
In the next blog post, examples of merging for the purpose of creating new ledger dimensions will be explained.