Import data to a module, best practice?


Hello, I have the following data:



Transaction # /CODE(ITEM(# Transactions))/Text/(# Transactions is the numbered list I created with Properties of Account (Text Format), Cost Center (Text Format), Cost Pool (Text Format), Amount (Number Format), Version (Text Format), Period Text Format)

Cost Center/No Formula/Text/ (I have a hierarchy set up for this)

Account Code/No Formula/Text/ (I have a hierarchy set up for this)

Cost Pool/No Formula/Text/ (I have a hierarchy set up for this)

Year and Month/No Formula/Text/ (2 years by month)

Scenario/No Formula/Text/ (i.e. Budget/Actuals)

Amount/No Formula/Number



I have managed to import to a module via a numbered list by first importing the same data into a numbered list then using the numbered list as dimension and the other fields as line items. I am not sure this is the best approach as I will need to aggregate the data for calculations etc. Any advice on best practice? The data won't import using the other dimensions as there are multiple instances of cost center/accounts/in the data.


Much appreciated for any advice you can provide.




Best Answer

  • Misbah
    Answer ✓



    Creating a Unique key in Anaplan is not recommended (goes against best practices) because what that means is that you will have to create those many properties in the lists and then combining the properties to create unique keys.


    Anaplan recommends having a unique Key in the source system.As per best practice you should have the unique key in such a way that you can extract the other parameters based on the Unique Key. For example Cost Centre, Account Code, Cost Pool & Scenario can be combined to get the unique key from the source system. Also never concatenate Time and Data to get the Unique Key. Here is the article which explains in detail about the best practices of data load.



    Hope that helps



  • Thank you Misbah, I will try that!

  • Hi,

    1. Assuming hierarchy as- L1 Cost Center, L2 Account code and L3 Cost pool.

    2. Now, try to find a unique code in the source data or create one. Use this unique code to create a numbered list.

        P..S: The entire hierarchical data should be present in one excel sheet based on the unique code.

    3. Create a module with the dimension of the above-numbered list and import the excel sheet data into a module by creating the respective line items.

    4. Create three more line items in the module to find the first occurrence of Cost center, Account Code, Cost Pool.

    5. Create saved views. a.) select cost center line item and its code, and add cost center first occurrence in the filter. Import this into the L1 Cost Center list.

                                         b.) Similarly for Account Code and Cost Pool, by also adding respective parent lists in the saved views. 


    Hope this helps.





  • @abhi1017 


    The intention was to get this done as per best practices when the same thing can be done in multiple ways. Not sure if this is as per best practices because we are trying to  minimize/optimize the imports and let Anaplan exploit the usage of its engine.


    Article in the link above explains everything about best practices of data load.




  • @iWonder 

    You'll thank yourself 10 times over following the best practice outlined by @Misbah


    Just remember your smart-key needs to be 60 characters or less.

    Since you have quite a few dimensions, you may need to code the dimensions.

    Those codes will then have to be part of your master data strategy, whether that's managed outside of Anaplan or within.


    But do try to avoid using sequential numbers, even for quick tests.

  • @Misbah 


    True that.

    Just gave him another solution wherein the module I have mentioned can be in the hub that would be updated via import from source and then this would flow into the spoke models as a hierarchy list starting at the top and going down.



  • I created a unique key with combination of account_cost center_cost pool.

    I imported those into a flat list.

    I created module with 2 List Items -> Unique Key (for text format) and Amount.

    This imported successfully with dimensions of version, and month/year time scale.


    Next I will parse the account_cost center_cost pool in the module using calculation functions.


    Is this the best approach or should the Unique key not be made into a list at all?

  • Thanks for the insights, very helpful!
  • Thank you, yes the smart-keys are 26 characters each. I am trying Misbah's approach 🙂