Data slice in IP

hi
i know data slice is used for lockinging concept, what do u mean i have seen in IP material its shwoing with version and year some other combination its locking? can u give any example how locking system will work?
regards
suneel.

Hello Suneel,
Please refer this document for Locking
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2b7bd590-0201-0010-0cbb-f52f1802907b
For Data Slice
http://help.sap.com/saphelp_sem40bw/helpdata/en/13/ddfb2be53611d3b7900000e82debc6/content.htm
For example see the last entry of this thread
Data Slices
Thanks
Chandran

Similar Messages

  • IP - characteristic relationship/ data slices

    Hi Guys,
    I am very new to IP and would like to have some help regarding the following with some simple example
    1) characteristic relationship
    2) data slices
    3) locking
    Some examples with the above is much appreciated.
    where can i get some good document explaining this ?
    Thanks in advance...

    Hi,
      Please find below the examples for characteristic relationship and data slice,
    1. Characteristic relationship:
                 Consider that you have characteristics called "Country" and "Continent" in your report (also in aggreagtion level).
    You cannot always expect the end user to enter the correct continent for a country. In this case, you can create a char rel
    based on the relastionship between these two characteristics (attribute, hierarchy or relationship data loaded to a DSO),where the source is "Country" and the target is "Continent". So when ever the user enters country and continent the char rel validates the entry based on the reference data (master data, hierrarchy or DSO data) and throws error if it s wrong. Apart from this by creating "With derivation" char rel, you can even derive continent value from country with out the user even entering the value in thye report.
    2. Data Slice:
              Consider that your planning requirement is you need to plan on a monthly basis which is like during current month you caa plan for the next month. In this case all other months except the next month should not be available for planning. In this case you can create a daat slice of type "Selection" where in you select '0CALMNONTH' and then filter it to the variable '0CMONTH' +1
    where in you "Exclude" this selection. So now all the other months except next month at any point of time will be disabled for planning.
    You can go through the following links for your reference,
    Char rel - [http://help.sap.com/SAPHELP_NW04s/helpdata/EN/43/1c3d0f31b70701e10000000a422035/frameset.htm]
    Data slice - [http://help.sap.com/SAPHELP_NW04s/helpdata/EN/43/1c3d0f31b70701e10000000a422035/frameset.htm]
    Hope this solves your doubt.
    Regards,
    Balajee

  • Open data slice for data entry and close afterwards

    Dear all,
    I have created one data slice for a characteristic combination country xy in order to prevent the data entry within the data entry query for the user. But for some reason I have to run a planning function in order to summarize some values and write a total value in the characteristic e.g. country xy.
    The planning function brings out an error message because this can not be executed due to the fact that this combination is protected.
    Is there a way to open the data slice before the planning function is writing the data in the cube? I have tried to to this in the Data slice exit, but I do not have an idea how to open the DS, save the data and close the DS again.
    We are running NW BI 7.0. Any ideas would be great.
    Best regards,
    Stefan from Munich/Germany

    I did something like this by creating an FM and calling that FM from a FOX function. I think you will have to use three commands to execute three functions one after the other (and not combine them in one planning sequence) - first one will switch off the data slice, next will be your planning function containing the logic, and the last will switch it back on.
    The FM would be something like below:
    FUNCTION Z_SWITCH_DSLICE.
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(I_INFOPROV) TYPE  RSINFOPROV
    *"     REFERENCE(I_DSNR) TYPE  RSPLS_DSNR
    *"     REFERENCE(I_STATUS) TYPE  I
    *** This function imports the name of a real-time Infoprovider and a Data Slice number
    ***        and a parameter I_STATUS. If I_STATUS is 1, data slice is activated
    ***        If I_STATUS is -1, data slice is de-activated
    data wa_ds type rspls_ds.
    select single * from rspls_ds
            into wa_ds
            where infoprov = I_INFOPROV
              AND objvers = 'A'
              AND dsnr = I_DSNR.
    if I_status = 1.
       wa_ds-used = 'X'.
    elseif I_status = -1.
       wa_ds-used = ''.
    endif.
    update rspls_ds from wa_ds.
    ENDFUNCTION.
    The Fox code will be like below -
    CALL FUNCTION Z_SWITCH_DSLICE
        EXPORTING
           I_INFOPROV = <infoprov name>
           I_DSNR = <Data Slice Number>
           I_STATUS = <0 or 1>.

  • How to Create & Manage data slices easily?

    Hi All,
    We have lots of Business units; everyone works independent to each other, so they might be in different versions at any point of time.
    My requirement is to lock all previous versions, should allow them to work on current version.... so it should be a combination with Business Unit and Version.
    For ex:
    Business Unit 100 has current version 5
    Business Unit 200 has current version 3
    Business Unit 500 has current version 15
    So how can I create simple data slice to manage every business unit with their respective versions locked.
    After reading some of the threads:
    I considered creating data slice for each Business unit but we have 45 units.. with one VERSION customer exit variable to populate the variable from my ztable.
    I want to know more about how to use exit class? (CL_RSPLS_DS_EXIT_BASE)
    Will that help me much better than what I have considered above?
    OR any better way to tackle my problem?
    Thanks in advance
    Guptha

    Hi,
    I think here a simple exit data slice implementation would work. No variables would be needed at all. A feature often overlooked is the 'is_overlapping' method. Here one will get the filter of the planning function, query before the 'is_protected' method is called per record. So when the query / planning function is called the method 'is_overlapping' is called. Here one can read the Z-table with the allowed business unit, version combinations allowed to plan. This Z-table can be read using the restrictions form the filter (i.e. i_tsx_selder table or call seldr_to_range to get a easier to consume range table). Buffer the result in an internal table.
    In the 'is_protected' implementation simply lookup the internal table records and decide whether the records is protected or not.
    Using the 'is_overlapping' method on can set R_IS_OVERLAPPING = rs_c_false if the filter of the planning / function query has not non-empty intersection with the Z-table. Then the system will not call the is_protected method at all.
    Regards,
    Gregor

  • Data slice inconsistency problem with hierarchy nodes

    Hi Experts,
    We want to lock planning tables from function. We create the appropriate data slices but there are problems with (material group) hierarchy nodes.
    If I give the node as input variable to the function it causes inconsistency in the data slice. If I choose and add this node to the lock in modeler, the problem is the same.
    We are using the following variables to create a data slice:
    0VERSION
    0VTYTYPE
    0COMP_CODE
    ZGRMAT (developed material group)
    Z_YEARCR (developed yera created)
    The problem also exist if I set an another type of node e.g. destination country (0RECIPCNTRY) instead of material group.
    For me, the problem seems to be generic.
    Do you have any idea?
    Many thanks in advance
    Peter

    There is a note related to this proble:
    Note 1070608 - Lowflag field is not valid
    The implementation of this note resolves the problem.
    Peter

  • How to use variables in data slices?

    Hello,
    in BI-IP I have tried to use variables in a data slice.
    The user should fill these variables.
    How can one use and fill these variables?
    Thank you
    Daniel

    Hello Horst,
    data slice is a very strong system lock. It is normally not a good decission to allow users to control this part becuse it sould be in administration of a responsible person.
    If you allow users in the web to open or close data slices, this is like a "open period" funtion in financials: Think about what could happen, if anyone else than the responsible person could do that....
    This is my point of view.
    I would do it in anoter way: Create an User exit and fill a variable like desribed above. You read each line and make a decission whether the user might see this line or not (e. g. period open? yes or no?). The period and the status for the period could be maintained in a table or in a characteristic. table might be easier.
    regards
    Eckhard

  • Dynamic creation of data slices by admin users in BPS

    hi
    Can we create planning function so that administrative users can create data slices  as per their timings.
    kind regards
    Sarah

    Dear Sarah,
    I donot have any sample code as of now as I am not able to access a BPS system. But let me tell you that this is simple. Create a exit planning function. Then create a FM and assign this FM in exit function INIT FM. In the FM do the following insertions to the data slice tables.
    First have a look at the tables UPC_DATASLICE, UPC_DATASLICET and UPC_OPTIOS. Create a 22 character unique GUID. You can use the standard function modules for this. Let this guid be guid_new. Then get the maximum sort id of data slices for your planning area from the table UPC_DATASLICE. Now add 1 to this maximum sort and have it as sort_new. Now insert this guid_new, sort_new, your planning area name as a new row in the table UPC_DATASLICE.
    After that insert sort_new, your planning area name, your new data slice name to the table UPC_DATASLICET.
    The characteristic value restrictions of the data slices are held in the table UPC_OPTIOS. For the particular GUID each characteristic restriction has one row each. Consider that you are creating data slice for the year 2008 and material 'M'. So in table UPC_OPTIOS there will be 2 records with GUID guid_new. One will be for '0FISCYEAR' and the next record will be for '0MATERIAL'. See table UPC_OPTIOS for the structure of the records. You should use function module 'UPC_OPTIOS_INSERT' to insert into the table UPC_OPTIOS. Goto se37 and have a look at the function module for the structure.
    Dynamic refresh of the buffer:
    If u are creating only 1 data slice in 1 transaction then you should do the following:
    PERFORM BUFFER_DATASLICE_GET
    IN PROGRAM SAPLUPC_DATASLICE
    USING DS_AREA_NAME "insert your data slice area name here
    'E'
    CHANGING ES_AREA_SLICE.
    PERFORM BUFFER_DATASLICE_UPDATE
    IN PROGRAM SAPLUPC_DATASLICE
    CHANGING ES_AREA_SLICE.
    CALL FUNCTION 'UPC_DATASLICE_COMMIT'.
    CALL FUNCTION 'UPC_DATASLICE_SAVE'.
    This will refresh the data slice buffer!
    I think this is sufficient enough for ur requirement. You should be able to do it easily now! Feel free to ask if u have more doubts.
    Regards,
    Ares!

  • How to get planning function in customized data slice?

    Hi all,
    we are using a customized data slice which implements IF_RSPLS_DATASLICE. Now we have the requirement that the data slice only protects the data when it calls via query. The data slice will not protect data if a planning function is executed. How can we implement this requirement? Is it possible in the method IF_RSPLS_DS_METHODS ~ IS_PROTECTED to read this information from an instance of the planning function (CL_RSPLS_CR_CONTROLLER?) or the buffer or something else? Or can we find some information about the query?
    At the moment we only check if a planning sequence is called by a process chain. This works fine
    IF sy-batch IS NOT INITIAL.
        e_noinput = rs_c_false.
        EXIT.
      ENDIF.
    Thanks for your help!

    Hi,
    I think this topic was already discussed in this forum.
    By design, it should not matter whether a query or a planning function is not allowed to change records. This is what data slices were designed for.
    OK, you need a different behaviour.
    1. Maybe you can detect from the planning function filter or query filter whether you run function or a query. If this is the case use the method IS_OVERLAPPING of the data slice. There you get the filter as a I_TSX_SELDR or as a range table when you call SELDR_TO_RANGE. When you return r_is_overlapping = rs_c_false. the data slice will not be called.
    2. Another option is to call the factory of the data slice and to use a flag in the data slice that indicates that the data slice is used in the context of a planning function. The factory method is GET_INSTANCE. Set a break point there to find out how the system calls this method. But when to call the factory? Check note 1101726. This note provides infrastructure to change the filter of a planning function at run time. But you can use this exit to call the factory method mentioned above. The nice thing is that you can raise the excpetion EMPTY in the exit, thus the function will not be called. So use a planning sequence with dummy1, your function, dummy2. For dummy1 switch on flag on, raise EMPTY, dummy1 will not be executed (almost no run time is needed), then 'your function' will be called (do nothing in the exit', then function dummy2 will be called, here switch the flag off again.
    Check also the following link where the above technique is used to for the conditional execution of planning functions:
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/a0785271-1446-2d10-6987-d1e44f08e97c
    Regards,
    Gregor

  • Problems with dynamic data slices and BEx Analyzer

    Hello experts,
    we use a data slice to lock released data.
    This data slice contains an exit-variable which selects all plan that are already released out of a ABAP dictionary table.
    The user can release data via planning function. He can start this function with a button in a BEx workbook.
    He use the same workbook for insert planning data.
    the problem is:
    when a user releases data, the value of the exit variable in our data slice changes but the data slice 9999 seems to be NOT generated with the new value. the reuslt is, that the user can still change released data.
    the data slice is just new generated after logout and login again not after refresh the query.
    Is there a possibility to force the system to generate data slice 9999 with the actual value of the exit variable? maybe a function module or method?
    We have this problem just in BEx Analyzer. In Web Reporting everything works fine and the data is locked by the data slice after refresh.
    Thank you
    Johannes

    Hallo Johannes,
    if you want to have this kind of behaviour you need to go for a data slice of type exit. You will find some information about this in the Planning forum.
    The data slice is instantiated once, but when you release the data you need to call a method in your exit data slice which rereads the values. This is a rough idea how this could be done.
    Regards Matthias Nutt
    SAP Consulting Switzerland

  • Data slice in Web for bps

    Hi,
    Our planning process is focused on project elements.
    Each user have to plan several project for 10 years (for each period).
    Each user selects a closing period as he can generate himself a plan version (eg : 09/2004 which allows a copy of actual data from 01/2000 to 08/2004 and plan data from 09/2004 to 12/2010).
    Unfortunately, this closing date is different for each user and we can't determine a data slice in the layout (users should not change data for the actual periods).
    Selection in the layout (header = year with a variable, data column = period 1 to 12).
    Do you know a way to lock data for the actual period knowing that it's different for each user ? I was told that it could be possible to desactivate some cells (only display) in the web interface thanks to a exit but I don't know how.
    thanks for your help.

    Hello Boujema,
    You could use a data slice that contains a user defined variable for the period. Now when the user selects a closing period you can set this variable (e.g. using a planning function type Exit) in such a way that for the current user the data is locked.
    Best regards,
    Gerd Schoeffl,
    SAPNetWeaver RIG BI

  • Data Slice depending on drilldown

    Hi all,
    I have a questions regarding data slice:
    The requirement is to have a forecast on materials which have validity periods. The drilldown should be for selected materials but only the periods which have been maintained as valid (the validity differs from material to material and is maintained in the material master) should be ready for input.
    The problem is how to set up the data slice as for different materials the respective periods should be locked/opened. So what I need is a data slice depending on the material.
    For example:
    MATNR 4711 Validity Periods 01.2009 - 06.2009
    MATNR 4811 Validity Periods 07.2009 - 12.2009
    That means for MATNR 4711 periods 01.2009-06.2009 should be ready for input and for for MATNR 4811 periods 07.2009-12.2009 should be ready for input.
    Do you have any ideas? I appreciate your help.
    Cheers.

    Hi Thomas,
    I suggest that you implement data slice of type exit based on the two characteristics MATNR and one time characteristic. In the exist you read the master data value and map the validity period to the time characteristic used in the data slice. Mark all records as protected if the MATNR, time characteristic value combination is not in the validity interval.
    Regards,
    Gregor

  • Lock for data in data partition/data slice

    Hi
    we are on SAP BI IP and we have the following scenario.
    We defined a planning web tempate "WT AA0"  based using char Version with value "AA0".
    User A plans data and then "locks" them using a data slice/partition.
    User B  works a planning web template "WT AA1" where char Version has value "AA1" ; as soon as user B runs a planning function (based on custom class using IF_RSPLFA_SRVTYPE_IMP_EXEC) and user A opens web template "WT AA0" , user B is locked.
    Now I have two questions:
    1. is correct that data "locked" from partitions/data slice are used in lock?
    2. if use in the class the if IF_RSPLFA_SRVTYPE_IMP_EXEC_REF, and change the filter on char Version (using only AA1), can I avoid this lock??
    many thanks in advance.
    S.

    Hi Stefania,
    just for clarification: data slices have nothing to do with transaction data locks.
    Data slices protect records from being changed at run time. Data slices can be changed at run time, e.g. in an exit implementation. This is why data slices have no effect on transaction data locks.
    Transaction data locks ensure that the set of data records described by filter of a query or planning function can only be changed by one user (concurreny locks) in one user session. The filter used at run time to set the transaction data locks will be determined at run time:
    - query: the filter of the query and restricted key figures with the 'lock relevant setting' (cf. Query Designer) will be used to compute the filter to be used to set the lock
    - planning function: the filter used in the configuration will be used to set the lock; reference data will not be used to set exclusive locks
    In your example the queries use different versions in the filter, so two users using these 'their' version will not lead to a lock conflict. If a planning function needs version AA0 as reference to change data for version AA1 you have to use AA0 as reference data and only AA1 in the filter of the planning function.
    Regards,
    Gregor

  • BPS Layout and Varibales on Data slices

    Hi Frineds,
    I have some doubts in BPS. Please clarrify me with the exact answers.
    1) What is the optimum time for excuteing Manual planning layout?
    2) Can we create Varaibles on Data slice in both BW BPS 3.5 version and SEM BPS? In which versiona we can create varaibles on data slices? I nwhich version it is not possible to create varaibles on Data slices?
    3) One basic question: Does planning package contain keyfigures or it contains only Charactgerstics?
    4) what is meaning of Selection Varibles in BPS?  I read one document like we can create Selection Variables in Accound based modeling but it is not possible to create Selection Varaibles in Key figure based modeling/
    I gone thorouth the help documentaion and other documents but i didn't get clear idea on above issues.
    Please provide me ur suggestions and valuable answers for above questions.
    Will assign the points.
    Best regards
    SAP

    Yes, Diego
    Can you share your ideas on these issues.
    I will appriciate your response.
    will assign the points.
    Thanks
    SAP

  • Data Slice

    I have a planning layout with a function which has attribute "Execute Function before Layout Display". I want to be able to VIEW the data even if it is locked by a Data Slice.
    When you try to access the layout the function gets executed first. This causes a hard error because of the Data Slice and the system stops there. It does not allow the user to get to the Layout. Is there any way around this?

    Hi Marc,
    The planning function is supposed to do that i.e. based on certain other variables change the data in the layout. After the data is locked obviously there should not be any changes.
    What I was trying to achieve is somehow to be able to access the Planning Folder even though the pre-function is run. Else we would have to go with the way you suggested i.e. create either a separate folder or create a separate layout with no Planning Functions attached. The issue becomes the user has to first get the error message.. realise that the data is locked and then go to another layout / folder.

  • Data slice error

    Hello all
    I created a data slice in my planning cube.
    I definef that the system should lock the data for : current year 1,2,+3. So, when the user enter the bex, he has to enter variable for current year, and the data slice should lock the 3 years follows.
    The problem is that: when i check the data slice i get the error: " Variable ZIP_CURRYEAR for infoobject 0FISCYEAR must not be input ready".
    Cant i use the above definition?
    Best,
    Yuval

    Hi,
    use a second non-input ready exit variable which reads its value from the first input ready variable.
    Use the non-input ready exit variable in your data slice.
    Please keep in mind, that a data slice is instantiated once per session and that the variable setting which is present when the data slice is instantiated is valid for the whole session. This can be circumvented using exit data slices, but right now your requirement is not that clear to me.
    Regards Matthias Nutt
    SAP Consulting Switzerland

Maybe you are looking for