Creating a dimension with Subtable type is better or maintaining heriarchy?

Hi BPC Gurus,
           In legacy system, client was having many GL items. Now with the implemntation of SAP, the FI has maintained those GL items as one group only. To be specific enough following is the example:
             Legacy system
Repairs of Buildings(Material)                                
Repairs of Micro Hydel(Material)                         
Repairs of Distribution(Material)
        SAP system
  R/M of Materials.
In BPC, the client wants the planning at the line item level, whereas with SAP it can be planned at group level only. So to maintain the planning at line item level I have to take data from SAP-PM and FI. Now my question is can I have the line items in heirarchy way or I have to create a dimension of subtable type and maintain members in it.
SAP BPC P_ACCT(heirarchy)
R/M of Materials           ( GL Item - SAP FI)
      Buildings                                 ( SAP PM )
      Micro hydel                             ( SAP PM ) 
      Distribution.                             ( SAP PM)
Regards
Kumar MG
Edited by: KumarMG on Apr 15, 2011 12:10 PM

Hi Kumar,
Creating a Subtable type's Dimension will not solve the problem because that is the only type of dimension.
Hierarchy is the best solution for these type of situation.
Regards,
Anil

Similar Messages

  • Problem to create data source with OCI type of driver

    Hi Experts
    We are creating an XA datasource with OCI type of driver using an enterprise application with data-sources.xml, the xml is like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE data-sources SYSTEM "data-sources.dtd" >
    <data-sources>
         <data-source>
              <data-source-name>OCI_DS_XA</data-source-name>
              <driver-name>ORACLE_DRIVER</driver-name>
              <init-connections>1</init-connections>
              <max-connections>25</max-connections>
              <max-time-to-wait-connection>120</max-time-to-wait-connection>
              <expiration-control>
                   <connection-lifetime>60</connection-lifetime>
                   <run-cleanup-thread>300</run-cleanup-thread>
              </expiration-control>
              <sql-engine>Vendor_SQL</sql-engine>
              <jdbc-2.0>
                   <xads-class-name>
                        oracle.jdbc.xa.client.OracleXADataSource
                   </xads-class-name>
                   <object-factory>
                        oracle.jdbc.pool.OracleDataSourceFactory
                   </object-factory>
                   <properties>
                        <property>
                             <property-name>serverName</property-name>
                             <property-value><SERVER_NAME></property-value>
                        </property>
                        <property>
                             <property-name>serverPort</property-name>
                             <property-value>1521</property-value>
                        </property>
                        <property>
                             <property-name>databaseName</property-name>
                             <property-value>ORCL</property-value>
                        </property>
                        <property>
                             <property-name>driverType</property-name>
                             <property-value>oci</property-value>
                        </property>
                        <property>
                             <property-name>user</property-name>
                             <property-value>username</property-value>
                        </property>
                        <property>
                             <property-name>password</property-name>
                             <property-value>password</property-value>
                        </property>
                   </properties>
              </jdbc-2.0>
              </data-source>
    </data-sources>
    We have installed oracle client in server M/C and configured all the environment variables. While we are deploying the application from CE developer studio IDE to the CE 7.1 AS, we are getting the  following error:
    Description:
              1. Exception has been returned while the 'sap.com/DS_TEST_EAR' was starting. Warning/Exception :
    [ERROR CODE DPL.DS.6193] Error while ; nested exception is:
         com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5030] Clusterwide exception: server ID 7653550:com.sap.engine.services.dbpool.exceptions.BaseDeploymentException: Cannot create DataSource "OCI_DS_XA".
         at com.sap.engine.services.dbpool.deploy.ContainerImpl.startDataSources(ContainerImpl.java:1467)
         at com.sap.engine.services.dbpool.deploy.ContainerImpl.prepareStart(ContainerImpl.java:468)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:219)
         at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:179)
         at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:419)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesImpl(ParallelAdapter.java:495)
         at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:554)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:248)
         at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:389)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3387)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3373)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3276)
         at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3249)
         at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)
         at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)
         at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)
         at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
         at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)
         at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)
         at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)
         at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)
         at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)
         at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)
         at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)
         at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)
         at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)
         at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
         at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)
    Caused by: com.sap.engine.frame.core.database.DatabaseException: Exception of type java.sql.SQLException occurred: Closed Connection.
         at com.sap.engine.core.database.impl.DataSourceAdministratorImpl.createDataSource(DataSourceAdministratorImpl.java:49)
         at com.sap.engine.services.dbpool.deploy.ContainerImpl.startDataSources(ContainerImpl.java:1400)
         ... 33 more
    Caused by: java.sql.SQLException: Closed Connection
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
         at oracle.jdbc.driver.GetCharSetError.processError(T2CConnection.java:3082)
         at oracle.jdbc.driver.T2CConnection.getCharSetIds(T2CConnection.java:2811)
         at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:300)
         at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:344)
         at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:136)
         at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:79)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
         at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:194)
         at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:121)
         at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:333)
         at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:84)
         at com.sap.sql.connect.factory.XADSPooledConnectionFactory.getPooledConnection(XADSPooledConnectionFactory.java:27)
         at com.sap.sql.connect.datasource.DBDataSourceImpl.createPooledConnection(DBDataSourceImpl.java:677)
         at com.sap.sql.connect.datasource.DBDataSourcePoolImpl.initConnections(DBDataSourcePoolImpl.java:1099)
         at com.sap.sql.connect.datasource.DBDataSourcePoolImpl.<init>(DBDataSourcePoolImpl.java:49)
         at com.sap.sql.connect.datasource.DataSourceManager.createDataSource(DataSourceManager.java:507)
         at com.sap.sql.connect.datasource.DataSourceManager.createDataSource(DataSourceManager.java:136)
         at com.sap.sql.manager.OpenSQLManager.createDataSource(OpenSQLManager.java:141)
         at com.sap.engine.core.database.impl.DataSourceAdministratorImpl.createDataSource(DataSourceAdministratorImpl.java:42)
         ... 34 more
    But when we are creating the datasource with thin type of driver, it is working fine. We have already created a driver with name “ORACLE_DRIVER” in server using the ojdbc14.jar using Netweaver administrator consol.
    Same this is happening when we are creating the OCI type of datasource by using Netweaver administrator consol by specifying all the parameter as above and also the initial connection pool size is more than zero.
    Same thing is happening for normal (JDBC 1x) datasource creation with OCI type driver.

    Hello,
    I ran a search on SDN, related to your error code, i found the following:
    UnsupportedClassVersionError in NWDS CE
    DeploymentWarning-WebService-Collection
    Maybe its useful to you
    Regards,
    Siddhesh

  • How to create an item with date type mm/yyyy (no day)

    Hello,
    Is it possible to create an item with date type mm/yyyy (no day)? I want the pop-up date picker to just show month and year.
    Thanks,
    Jen

    Hi,
    you cannot pop-up date picker to just show month and year, but you can set your item format as MM-YYYY
    You can check this APEX_ITEM.DATE_POPUP2 at : http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21676/apex_item.htm#CHDJHBCG (if using apex 4.1) else http://docs.oracle.com/cd/E10513_01/doc/apirefs.310/e12855/apex_item.htm#CHDFDDEI
    Edited by: Sergio_doudou on 2012-04-13 14:26

  • How to create a dimension with one level

    I created a cube with some dimensions, that have only a level, and this kind of dimensions bring me some problems when I want to use "OracleBI Spreadsheet Add-In" to consult the cube.
    The problem is that I can’t create a hierarchy with only a level, so the dimensions are created without a hierarchy.
    When I make a query in the “Query Builder” of "OracleBI Spreadsheet Add-In", I have some problems in the step of choosing what levels I want to select for a determined dimension, if that dimension is a dimension without a hierarchy.
    What really happens is that, I can see all the values for the level in the left box, but I don’t achieve to put one of these values on the right box. I can click in the next button, to jump to the next dimension, and all the process of selection for the other dimensions occurs without problems, except for the dimensions that haven’t a hierarchy.
    If I select only dimensions that have a hierarchy, all works perfectly, but if I select one or more dimensions that don’t have a hierarchy, the following problems occur:
    => I can’t select the values of the level that I want to see (only for dimensions that don’t have a hierarchy)
    => When I click in “end” button of the “Query Builder”, it doesn’t finish and blocks.
    The solution is to create a hierarchy, but I can’t create a hierarchy with only a level. Is it possible to create a “top level” without a source column in the dimension table? So I will have two levels, and with these two levels I can create a hierarchy that resolves the problem.
    What is the solution for this problem?
    Regards,
    Rui Torres

    How I can resolve my problem?
    I don’t want to use the CWM2 PL/SQL packages, because with these packages I only can create MOLAP cubes.
    I only want to create ROLAP cubes, but I can't create a hierarchy with one level.
    Why the "OracleBI Spreadsheet Add-In" doesn’t work with dimensions, that not have hierarchies?
    How I can resolve this BIG problem?
    It is very URGENT!!!!
    Regards,
    Rui Torres

  • Creating context node with dynamic type

    When we are creating context node thru wizard,  Dictionary type must be filled. I'm trying to create Context node manually.Did any one tried created Context node class with Dynamic type.

    Hi Prasad,
    I have a similar requirement.
    Can you please share with me how did you create context node with dynamic table data?
    Thanks
    Vicky

  • Error in creating JCo connection with destination type'Load-Balanced Con'

    Hi,
    I am working on webdynpro application(NW 04s), i need to connect with the backend system(ECC 6.0) using model.I configured my SLD and created technical system successfully.
    The technical system got created with an error:
    CIM_ERR_ALREADY_EXISTS: Instance already exists: SAP_BCApplicationServer.CreationClassName="SAP_BCApplicationServer",Name="ID1.Number.01.HostName.ahsides"
    But the system got created so I proceeded with Jco connection creation:
    I need to create 2 Jco connections for this,
    First with Data Type 'Application Data' & Destination Type 'Single-Server connection'. Second with Data Type 'Data Dictionary' & Destination type 'Load-balanced Connection'. 
    The first Jco with 'Single-Server connection' got created successfully and ping and test is also successfull.
    The second Jco connection with 'Load-Balanced Connection' got created successfull but it is throwing error while pinging and testing.
    Ping Error : Failed to ping JCo destination 'WD_EMPLOYEE_RFC_METADATA_DEST'.
    Test Error : com.sap.mw.jco.JCO$Exception: (102) JCO_ERROR_COMMUNICATION: JCO.Client not connected in repository call
    Please help me in this.This problem was with 'Load-Balanced Connection' only.

    Hi,
    Have you taken a look at the file %windir%\system32\drivers\etc\services?
    If you haven't, try and find the line sapms<sid>, where sid is de SID of the system you-re trying to reach.
    If the line isn't there write it down like this.
    sapms<sid>     36<nr>/tcp
    That works for me.

  • Can we create a structure with string type not char??

    Hi All
    Can we create a structure with type STRING not as a CHAR type??
    Please its urgent.
    Regards
    Deepanker

    HI,
    Yes, you can string instead of CHAR.
    Please follow the steps below :
    SE11 --> Table name --> Create Button --> And input the short description and necessary Delivery and Maintenance fields --> Select Fields tab --> Input some name on field --> And Click on Predefined button --> Press F4 on Data type column --> a Pop window will be displayed --> Select String from that.
    Thanks,
    Sriram Ponna.

  • Create BPC - Dimension with SSIS Admin Task

    Hallo experts,
    I am figuring out features for BPC - Packages and wanted to create a dimension within a SSIS Package.
    The "Admin Task" offers this feature, but unfortunately I can't find any documentation about the SQL Source Table,
    which ist needed when configuring and executing this task.
    Help is appreciated about the structure, location and naming-conventions for this table.
    Another Question:
    Where does the Admin Console store the dimension structure e.g. of the account dim?
    Thanks in advance
    Jochen Kowalski
    P.S: I'm working with BPC 5.1 SP3 and SQL-Server 2005

    Brian, your explanation is sound and i understand your requirements.
    Essentially you need to run a dimension process on both your Prod/Dev servers.
    At one of our clients, we customised the Dimension excel sheet with some VBA. Administrators could still process the dimension sheet normally but they could click a command button that dumped the excel file to dev and then launched an SSIS package - the main problem is that we used XPCMDSHELL to kick the package off that processed the dimension in dev.
    see http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/thread/d4d69654-e2cc-4aa7-90f3-701b8180de36/
    After much thought we decided it was best to use SQL to keep the databases mirrored, SSIS to keep the OLAP procssed [in dev] and we used a batch script to transfer the webfolders.
    You may notice that the final solution is very much like the automated backup solutions that many BPC practitioners have gone with in the past.

  • Creating custom form with content type list - Shaepoint 2013 list

    Hi All,
         I have a list with a content type. So basically i have the default content type and another custom one.
    I would like to customize the forms and taught of using sharepoint designer.
    Is this a good approach or is it better using infopath.
    When i try using infopath i don't know how i can using content type to create forms.
    I basically have 2 forms based on the content types how can i separate this when using custom forms and what would be the best practice?
    Cheers and thanks in advance

    Hi Patrick,
    According to your description, you want to create a form for each content type in a custom list with multiple content types. Is it right?
    If we use Infopath to customize forms for a list with multiple content types, it only customizes the default content type, the forms for other content types don't have changes.
    For your requirement, I suggest you use SharePoint Designer to create forms for content types.
    More information about how to create forms using SharePoint Designer 2013:
    http://community.bamboosolutions.com/blogs/sharepoint-2013/archive/2012/09/20/how-to-create-custom-forms-using-sharepoint-designer-2013.aspx
    Best Regards,
    Wendy
    Wendy Li
    TechNet Community Support

  • How to create an array with Generic type?

    Hi,
    I need to create a typed array T[] from an object array Object[]. This is due to legacy code integration with older collections.
    The method signature is simple:public static <T> T[] toTypedArray(Object[] objects)I tried using multiple implementations and go over them in the debugger. None of them create a typed collection as far as I can tell. The type is always Object[].
    A simple implementation is just to cast the array and return, however this is not so safe.
    What is interesting is that if I create ArrayList<String>, the debugger shows the type of the array in the list as String[].
    If I create ArrayList<T>, the class contains Object[] and not T[].
    I also triedT[] array = (T[]) Array.newInstance(T[].class.getComponentType(), objects.length);And a few other combinations. All work at runtime, create multiple compilation warnings, and none actually creates T[] array at runtime.
    Maybe I am missing something, but Array.newInstace(...) is supposed to create a typed array, and I cannot see any clean way to pass Class<T> into it.T[].class.getComponentType()Returns something based on object and not on T, and T.class is not possible.
    So is there anything really wrong here, or should I simply cast the array and live with the warnings?
    Any help appreciated!

    Ok. May be you could keep information about generic type in the your class:
    public class Util {
        public static <T> T[] toTypedArray(Class<T> cls, Object[] objects){
            int size = objects.length;
            T[] t = (T[]) java.lang.reflect.Array.newInstance(cls, size);
            System.arraycopy(objects, 0, t, 0, size);
            return t;
    public class Sample<T> {
        Class<T> cls;
        T[] array;
        public Sample(Class<T> cls) {
            this.cls = cls;
        public void setArray(Object[] objects){
            array = Util.toTypedArray(cls, objects);
        public T[] getArray(){
            return array;
        public static void main(String[] args) {
            Object[] objects = new Object[] { new LinkedList(), new ArrayList()};
            Sample<List> myClass = new  Sample<List>(List.class);
            myClass.setArray(objects);
            for(List elem: myClass.getArray()){
                System.out.println(elem.getClass().getName());
    }

  • How to create Base Dimensions with MaxL and Text File?

    Hi,
    Doing a scratch rebuild of a cube every month. Don't want to have a 'dummy' outline with base dimensions to copy over every build. Instead want to build from text file somehow. Thus my plan is to: 1) Delete the existing app/db 2) Create a new blank app/db 3) Create the base dimensions in the outline via text file and 4) Build entire outline via a text file. I'm stuck on #3 how to get the 'base dimensions' built via text file. I need:
    ACCOUNTS
    PERIOD
    VALUE
    VIEWS
    SCENARIO
    CUSTOM4
    YEAR
    CUSTOM3
    CUSTOM2
    ENTITY
    CUSTOM1
    I see this MaxL, but it uses a 'rules file' and I never have built a rules file to create base dims so I'm confused if it's possible or not...
    import database sample.basic dimensions
    from data_file '/data/calcdat.txt'
    using rules_file '/data/rulesfile.rul'
    on error append to '/logs/dimbuild.log';

    We rebuild our Departments and Organization from an enterprise hierarchy master each week.
    The way we implemented (what you call #3) was to not do #1 and #2, but to have a "destructive" load rule for each of these dimensions using a text file. (in the "Dimension Build Settings" for the load rule, select "Remove Unspecified" to make it destructive)
    The text file just has the dimension name (parent) and any children we needed defined in a parent/child relationship. For instance
    "Sales Departments" "0100-All Departments"
    This essentially works the same as deleting the app because the destructive load rules will drop all the blocks of data that were unspecified.
    Then we run our SQL load rule to build the rest of the dimensions from the Location Master.
    We perform a level-0 export prior to this process, then reload the level-0 data and execute all the consolidation scripts to get the data back (now in a current enterprise defined hierarchy)

  • How to create a webservice with return type File

    Hi All,
    I have a class Letter and I am trying to expose viewReport as webservice.
    In Jdeveloper -> Business teir -> webservices -> Java web service and I have selected my method i.e. viewReport
    Now it throws error "The return type java.io.File of method viewReport can not be serialized into XML"
    I unserstood the issue but How can I achive this in JDeveloper
    public class Letter {
    public Letter() {
    super();
    public File viewReport(String name) {
    File folder = new File("C:\\APPS\\root\\pdf\\10052011");
    File[] listOfFiles = folder.listFiles();
    return listOfFiles[0];
    }

    You can't as File is nor serializable. It won't make sense as you would try to give a handle to a file on the server hosting the service to a remote system.
    Can you explain the use case in more detail?
    Timo

  • How to build a dimension witch has a column with sdo_geometry type

    hello everybody;
    i'm working with owb 11g, i have designed my dimension and also my fact table.
    in the implemnation, i have created (designed, depolyed and populated) successfully some dimenstions without any problems.
    But when i arrived to create a spatial dimension which contains a column with sdo_geometry type, i have the following error;
    Error: ORA-30373: object data types are not supported in this context
    So how can y bypasse this problem.
    Is there any tutorial to "how create spatial dimension with owb"?
    i have googled for a long time but no solution up to now
    any help will be welcome
    Thank you at advance

    Sans,
    I am no Apex expert, but with a situation as "complex" as yours, have you thought about creating a VIEW that joins these 7/8 tables, placing an INSTEAD OF trigger on that view to do all the business logic in the database, and base your application on the view?
    This is the "thick-database" approach that has been gaining momentum of late. The idea is to put your business logic in the database wherever possible, and let the application (Form, Apex, J2EE, whatever) concentrate on UI issues,

  • Not able to create a material document with movement type 103

    I am not able to create a material document with movement type 103,
    The system is populating the value as 101 .
    How do I create a matdoc with movement type 103?

    What is the error you receive? Please specify with message number.
    On MIGO, you need to change the default value mvmt type value to 103 before you enter the PO number to be able to do 103.
    Once this defualt value is set, you can enter the PO and item number in the document number fields and proceed with 103.
    But you cannot change the mvmt type for already entered items from 101-103 or vice versa.
    I think the 101-103 and 103-101 mvmt type conversion message is standard error message

  • Dimension with no levels?  Can this be done?

    Hello Forum,
    I'm sure someone has run into this situation - I need to create a dimension that really has no levels... I need to create a Returns Dimension that has only two attributes, attribute 1: reasons for returns (too small, wrong color etc) and attribute 2: natural business key (Reason Number). All the other information that would be important to analyzing return metrics in my Return Cube are already in other dimensions (Store, Product, Customer Order)
    Can anybody share a work around, since the tool requires at least one level....
    monalisa

    Hi monalisa,
    sure . . . just create a dimension with one level. If you think about it, it can't have zero levels, can it? :-)
    This is pretty standard for a transaction type dimension, actually.
    But . . . consider . . .
    I'll bet that you won't eventually want just Returns (I'm done lots in retail). Sales/Returns. Full Price/Mark Down 1/ Mark Down 2/Clearance. I'll bet you will end up with about 15-20 reason codes (transaction types). And then they will want to group them, and categorize them, and you will end up with a second, parent level.
    There's something else to consider: this is a good dimension to store junk. Your Stock Count codes could live here. Your Stock transfer codes could live here. And so on. Do it this way, and you end up with a single conformed transaction type dimension for all your business processes. Just a thought . . .
    Cheers,
    Donna

Maybe you are looking for