AI Tools and Blogs
I understand this post is going to be summarized by AI tools anyway and suggested in three sentences. Also, It is going to be the new normal, as I am seeing a lot of AI adoption in recent months. If you are someone who still likes to read detailed blogs, read further.
The motivation to write detailed blogs is reducing day by day. The worst part of the new AI era is that people are getting answers from AI tools and sending my own blog back to me as a reference when they find it on the internet 🙂
New Patches Finally!!
I am glad we have the recent patches pushed into the Production instances. Ever since a new API was added in the November patch update last year, I checked this feature and waited patiently until we went with the full patch updates into Production. Finally, we have a bunch of new features added to the whole application including the newer Essbase Engine 🙂
Copy Data Request
Copying data within the cube, including the comments, supporting details, and attachments, is always an issue. We have static application features such as Version Copy and Copy Data. If we needed to copy data dynamically, including the supporting data, we had to use the REST API Data Slice method, which exports and imports the data using the JSON format. But I would prefer not use the REST method, as it always has issues with the number of cells and the coding effort it requires.
In a few bullet points, this feature helps to achieve the below:
- Copies Essbase data within the cube.
- Copies comments.
- Copies supporting details, such as additional line items.
- Copies attachments.
Similar to Version Copy, this is still categorized as a privileged function, so only administrators can execute it.

Lets Look into the Code
The code can be categorized into three sections.
- Define the Static Dimensions Region (similar to FIX in conventional business rules)
- Define the Source and Target members (similar to the DATACOPY function in conventional business rules).
- Define the Type of Data we want to copy (new functionality).
Let’s define the Copy Data Request:
Application app = operation.application
Cube cube = app.getCube("Plan1")
CopyDataRequest request = cube.createCopyDataRequest()Define the Static Dimensions and Members Region
//Define Static Dimensions
request.with {
addFixedMembers(app.getDimension("HSP_View"), "BaseData")
addFixedMembers(app.getDimension("Entity"), "Sales East Region")
addFixedMembers(app.getDimension("Scenario"), "Forecast")
addFixedMembers(app.getDimension("Product"), "Product X")
addFixedMembers(app.getDimension("Year"), "&QRFYr1")
addFixedMembers(app.getDimension("Period"), "IDescendants(Q3)")
addFixedMembers(app.getDimension("Account"),"Units")
}Define the Source and Target Members
//Add Source and Target Members
request.with {
addSourceAndTarget("Working", "Draft1")
}Define the type of Data we want to copy
//Set Copy Data Options
request.with {
setCopySupportingDetail(true)
setCopyComments(true)
setCopyAttachments(true)
setCopyData(true)
}Finally, Initiate the data copy:
//Initiate the Copy
try {
request.copyData()
} catch (e) {
throwVetoException(e.message)
}Let’s Execute the Rule
Source Data

I have added a comment to the Q3 cell. I am more focused on the functionality rather than the performance of this process. So, I am just going to check this one cell to see how the data is copied over.
Also, I am curious to understand if the data is going to be copied to the parent dynamic calc cells. And here are the results.

I see that the data, along with my comment, has been copied successfully to the draft 1 version. However, when I checked the comment, it did not copy the username details. It just tags it as an ‘Unknown User.’ This could be a bug, and hopefully, it will be addressed in the near future.


Is it PlanType agnostic?
The documentation does not explicitly mention BSO or ASO cubes. I assumed it would support ASO cubes as well, but I wanted to write and execute a script for my ASO cube to verify if it works as intended


That’s a wrap:
It is good to have multiple options. Having the flexibility to copy comments and attachments addresses what was a pain point for many years. I am not really sure how this is going to work out if the cube volume is huge. This is something we have to validate in a real-world application. I hope you find this information useful.