As the Anaplan model size capacity has recently grown from roughly 18 billion cells to 100 billion cells with the introduction of HyperModel it is still important to structure models efficiently, while creating as little 'wasted space' as possible.
The Planual states that the Summary Method for most line items should be set to None. This is a great rule to follow unless:
The totals need to be displayed on a dashboard/page.
The data needs to aggregated.
Let's assume we have several levels in a cost center hierarchy as shown below:
- L1 Cost Centers
- L2 Cost Centers
- L3 Cost Centers
- L4 Cost Centers
- L5 Cost Centers
- L6 Cost Centers
If we have a module with four dimensions (L4 Accts, L6 Cost Centers, Months, and a single line item) that does not need to be displayed in a dashboard/page but needs to be aggregated to another module with four dimensions (L4 Accts, L3 Cost Centers, Months, and a couple of line items) then simply referencing the source module without any functions will not roll the data up if NONE is the Summary Method in the source. A quick way around this is to use the SUM formula and reference a SYS module that has the mapping of the L6 Cost Centers to the L5, L4, L3, etc. Simple enough, right?
But what if the target module does not contain a higher level dimension of the Cost Center structure? A workaround is to create a one-item dimension and map it to the L6 Cost Centers within the L6 Cost Center SYS module. Whereas the L6 Cost Center mapping to L5, L4, etc. is based on the composite structure and uses the PARENT formula, the mapping to this one-item list is just OneItemList.MemberOfOneItemList. Then in order to sum the data within a target module the one-item dimension must be included in the structure and reference the L6 Cost Center SYS module for the one-item mapping via a SUM formula. If it is not desired to have the one-item dimension in the final target module then a staging module can be built to hold the SUM formula and the target model can then reference the staging module using a SELECT statement to point to the one-item list and item member.
Depending on the number of levels and size of the dimensions for the source and target modules this can save a lot of space, roughly 30-70%. For small modules (less than 50 million cells) using this approach is likely not worth the effort but this can provide tremendous space savings on vary large modules. As an example, a client of mine had a line item that was roughly 10 billion cells. Implementing this change brought the line item to roughly 4.5 billion cells. Overall the savings was about 50 gigs of space. This might be an extreme case but it helps illustrate the potential space savings for very large modules/line items.
... View more
I have a circular reference issue that I have not previously seen. The screenshot below shows a relatively simple example of a roll forward calculation where balances are carried forward. The issue I am having is that I would like the 'Out' line item to be dependent on the 'In' line item and simply take data from the 'In' line item and post the negative of it to future periods. I've hard coded the formula to post it 10 periods in the future (days in my example) but if I instead reference any line item to use as the length I get a circular reference, even if the '10' in this example is not dim'd by anything. I get a circular reference issue when using Lag, Offset, Lead, and Profile. Any thoughts would be appreciated.
... View more
Jerry - thanks for the video, it was a big help. I just added booleans for the intermediate levels (dimensioned at the intermediate levels) and then incorporated the booleans into the filtered line items. 'IF 'L3 Dummy check' THEN 0 ELSE 3' for the level 3 value and 'IF 'L2 Dummy check' THEN 0 ELSE 2' for the level 2 value.
... View more
The Anaplan connector in Boomi is currently in it's 1st version. It currently does not allow Anaplan users to a certificate to connect with, instead forcing the use of IDs/PSWDs, which means that every 60-90 days the password will need to be changed. There is hope! - - - - Using Boomi's generic HTTP connector to access Anaplan's RESTful API can be accomplished. It does take some effort, but i hope the following article will be helpful. PLEASE REMEMBER using this method means HEADER is uses the 'Authorization' KEY with the BASE64 encoded value of the ID and Certificate. See section 4 below
High-level steps needed to ensure a successful:
Create an Anaplan certificate.
Convert certificate from DER format to PEM format → This site helps explain the differences (https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them)
Encode the certificate to BASE64
Configure Boomi or other applications with encoded ID & certificate
1.) Create an Anaplan certificate.
Certificate is created in Anaplan. Any administrators has the ability to create a certificate.
A.) Depending on the screen click on either your initials or the blue down arrow next to your name. Take a look at the screen shots below:
B.) Once in the next screen click on the Certificate tab
C.) If not certificates have been created the screen will look like this:
D.) Click on the button 'Create new Certificate'. Once clicked a pop-up screen will appear asking to view or save the newly created certificate. Click on the radio button to 'SAVE' and click the button 'OK'
E.) After the certificate has been created, the certificate dashboard screen will be updated with the new certificate.
2. Convert certificate from DER format to PEM format
(Per Anaplan support. OpenSSL is suggested to convert the certificate)
**Another topic will be created on how to install OpenSSL
To open the application OpenSSL, please review the screen shot below:
Once opened OpenSSL will look like this, as it is a command line program:
In order to convert the certificate, it MUST be copied to the bin folder. (Note i will not be explaining how to use the command in other directories)
In my example, the bin folder is located here: C:\OpenSSL-Win64\bin
A.) The conversion script: x509 -inform der -in certificate-100699999999999999999999999999999999514.cer -out certtest.pem
Before & After the execution this is what you will see:
B.) After the conversion script is run, you execute this script: x509 -text -in certtest.pem (Where certtest.pem is the name you provided when converting the DER formatted certification) . This will display the converted script.
Example of what would be displayed. Please note there is a lot more data being displayed, but I will not show all the data.
3. Encode the certificate & ID to BASE64
(Per Anaplan support, this site < https://www.base64encode.org/ > is suggested to encode the certificate and ID)
A.) Copy all the data shown below, including all the BEGIN CERTIFICATE and END CERTIFICATE data. This data can be found by opening OpenSSL and using this command: x509 -text -in certtest.pem (Where certtest.pem is the name you provided when converting the DER formatted certification)
B.) Per instructions from the Anaplan support team:
Use a Base-64 encoder (e.g. https://www.base64encode.org/ ) to encrypt the CN and PEM string, separated by a colon. For example, paste this in: email@example.com:-----BEGIN CERTIFICATE----- CERTCONTENTS -----END CERTIFICATE-----
4. Configure Boomi or other applications with encoded ID & certificate
Before you can paste any values into Boomi, the entire relevant string needs to be made.
This value (AnaplanCertificate ENCRYPTEDSTRING) needs to be used in Boomi, and sent via the HTTP header to the Anaplan API.
AnaplanCertificate is the prefix and the ENCRYPTEDSTRING represents the data encoded by the base 64 website. That Entire string needs to be pasted after AnaplanCertificate as seen below.
Once this value is created, it can be tested in Postman (an Open source 3rd party API testing tool) as in the screen shot below. REMEMBER THERE IS NO AUTHENTICATION!!!
In Boomi it will look like this. Once this value is created, it can be used in Boomi in a number of ways. In the example below I inserted the value as a parameter. Please see the screen below. REMEMBER THERE IS NO AUTHENTICATION!!!
An successful test will look something like this, but that all depends on what your Boomi flow looks like.
... View more