Data Slice Based on Exit Class

Hi ,
  Did any one worked with BW IP ..  I am trying to implement Data Slicing based on the Exit Class CL_RSPLS_DS_EXIT_BASE..
Please let me know if some one has already worked on inherited CL_RSPLS_DS_EXIT_BASE and created a new class and used in IP.
<b><REMOVED BY MODERATOR></b>
Cheer's
Mahesh
Message was edited by:
        Alvaro Tejada Galindo

Hi Mahesh,
We are faced with a similar requirement wherein we need to implement the interface 'IF_RSPLS_DS_EXIT'.
We need to re-implement the method ‘IS_PROTECTED’.
Could you please share your experiences how you have done it. It would be of great help to us.
Rgds
Syam

Similar Messages

  • 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

  • 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

  • Generic Table to a formal type - for master data user exit class

    Hello,
         I am attempting to setup an ABAP OO framework for extending master data with the CMOD exit, EXIT_SAPLRSAP_002.  My goal is to create generic base class, upcast to the actual extraction structure, apply the customizing data fields, and then return the full table to the exit.    The problem is that I_T_DATA, the internal table for return values is untyped and therefore generic.   I tried using a class parameter as “type ref to DATA”, but the upcast if failing is failing.  Can any one suggest:
    What parameter type should I use for the class method parameter?
    How do you upcast to the formal extract structure type?
    How do you assign the result back to the generic type?
    Thanks very much for the help!

    I ended up figuring out the answer after a bit more work.  In case it helps others, the keys points are:
    I_T_DATA exposed in EXIT_SAPLRSAP_00x is a dynamic internal table
    The reference to the table can be passed to a method parameter as a generic type, “TABLE”
    Though, to store the value in the class as a formally typed value, such as required by an attribute, the type must be cast to the type, “DATA”.
    For example:
    Public section
    Method CONSTRUCTUR
         IMPORTS
          PT_DATA TYPE TABLE.
    Assign data pointer to attribute
           GET REFERENCE OF PT_DATA INTO A_T_DATA.
    Endmethod.
    protected section.
      data A_T_DATA type ref to DATA .
    Hope that helps.

  • 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

  • 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 dynamic activation and deactivation for a set of users

    Hi Experts,
                     We have requirement to manually enter the data into RTC using IP.
    There are 2 sets of users --> Power Users and Normal Users.
    We need to allow the normal users to enter the data only from 1st to 5 th working day of every  month.
    Power Users should have authorization to edit and enter the data at any time.
    Can any one suggest how to set the dataslice using code.
    Regards,
    Shashi

    Hi.
    Please note that update of RSPLS_DS table do not affects at RUNTIME.
    If you want to create dataslice that activated and deactivated within sequence run you should do the next:
    1. Create exit variable that return you all working days EXCEPT 1 to 5 of each month.
    2. Create dataslice in modeler on this characteristic with restriction by this exit variable.
    3. This dataslice should be based on ABAP class as described [here|https://www.box.net/shared/zhirrvk859].
    4. In mydataslice method enter following code (I assume you have any DSO with definition whether user is power user or not. Lets say DSO has next structure:
    USER   | Z_IS_POWER   |
    aaaa    | NO
    bbbb    | YES
    Enter the next code in mydataslice method:
    SELECT Z_IS_POWER FROM YOURDSO INTO lv_POWER WHERE USER=sy-uname.
    IF sy-subrc = 0. *This is SUPER USER. Allow locked data edition
    e_noinput = rs_c_false.
    ELSE. *This is regular user. Do not allo locked data edition
    e_noinput = rs_c_true.
    5. Create in modeler 2 planning sequences for activating and deactivation dataslice as described in document.
    6. Each time you want to do something with locked data run first sequence for deactivation of dataslice. If super user will run it so dataslice will be deactivated, but if regular user - dataslice will lock the data.
    Regards.

  • "global"  variables for data slices

    Hello experts,
    Can someone tell me how to create a global variable which can be set for all user of a planning application?
    I want to use this variable to be used by one or two users, so that they can lock the planning data by setting the variable. The variable will be used in a data slice and by changing the value of the variable, they are also able to change the range of the data slice. I thought that I found the solution, but in the end I remembered that variables are user specific and therefore has to be set for each user.
    I hope that one of you has a solution (not using STS) for this problem.
    Kind regards,
    Harald van der Meij

    Hallo Harald
    I see your point and i hope this can help you.
    Create a Variable of type exit which get the values for data freezing.
    For example: Calmonth.
    then in the Function Module, derive Calmonth making the Select from a custom table. give the rights to the two user to maintain the table for lock and unlock the planning.
    Based on entries on the tables, then you can have the value for Calmonth. based on it you freeze or unfreeze the data.
    of course you can use any Characteristic.
    for example:
    you want to freezee from 01.2005 to 10.1005. pass these values to the variable making a select from the custome table (Zfreezing) where you maintain 01.2005 to 10.2005.
    if you need then to reopen the planning, then cahnge the values in the tables and consequentely to the variables.
    the user can maintain entries in the tables.
    When you create the table assign an authorization group and then create a role with it and assing these the two users.
    Regards
    Mike

  • 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

  • Characteristic relationship with Exit class is not applied correctly

    We are using a characteristic relationship (with derivation) type Exit class. For that we have created class ZCL_RSPLS_ARTICLE_FROM_PLMOD as a copy of the standard class CL_RSPLS_CR_EXIT_BASE.
    Target and source characteristics are members of the aggregation level.
    We want to generate a list of valid combinations of characteristics planning models and articles which should be planned in the planning query.
    For that we are using the method IF_RSPLS_CR_METHODS~CREATE:
    Source is characteristic Model ZMATMOD and we determine in the exit class all active articles ZMATART.
    We get a list of active (planning relevant) models and articles in our exit class (table e_th_chas).
    --> For instance 6 combinations
    Until here everything works fine.
    The problem is that in the query 8 combinations are displayed.
    We have no idea why more than the generated combinations are displayed.
    One reason could be that the characteristic article ZMATART is an attribute from characteristic model ZMATMOD.
    So from a master data point of view 8 combinations would be relevant.
    But we use the exit class in order to reduce the number of combinations to planning relevant items.
    If we use the method IF_RSPLS_CR_METHODS~CHECK we could flag the 2 combinations which are not planning relevant to not valid.
    But these are then displayed in the query. 6 combinations in change mode; 2 combinations in display mode. This would not help us.
    We would like to see only the planning relevant combinations  6 combinations
    Can anyone please help me urgently?
    Best regards
    Martin

    Hi,
    set a break-point in the factory method get_instance to check whether the class is called. In the planning modeler make sure that you  use an external break-point.
    Or use rsrt an change a cell value: Derivation is called in the delta buffer to derive from the fields contained in the aggregation level. So check also that the source fields are contained in the aggregation level or can be derived via a a chain of derivations.
    Also make sure that all source fields have to be non-initial. The system will not call derivation for initial source fields since in this case there is not unique target, cf. http://help.sap.com/saphelp_nw70/helpdata/en/43/1c3d0f31b70701e10000000a422035/frameset.htm
    Remark: The attached document of note 994853 is about the disaggregation feature but it also contains a section about the characteristic relationships. Observe also that the template exit classes are documented in SE24.
    Regards,
    Gregor

  • 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>.

  • Can Data Links be established between Data sets based on View Objects?

    Hi all,
    In the BI Publisher Documentation it's given that Datasets based on view object queries do not support Data Links / Group Links. We found out that only way to establish relationship between view object Datasets is to create a view link and then upload it to create a Dataset.
    1. Is there any other way to establish relationship between view objects Datasets in DataModel editor itself just as in the case of data sets based on (SQL queries e.t.c.)?
    2. If so can View object Datasets be linked to Datasets based on other Datasources?
    3. Will the Datalinks for View object Datasets be supported in any of the upcoming releases. Is there any ER logged for this case?
    Any insight on the above issues will be really helpful.
    Thanks

    Enhance the data source with date and time and populate these fields in the user exit using the function module IB_CONVERT_FROM_TIMESTAMP .
    OR
    You can create Z function module IB_CONVERT_FROM_TIMESTAMP in BW side and write a routine in update rules/transfer rules to populate date and time.
    hope this helps ...
    Ravi

  • How to use inbound exit class for more than one workflow step

    Hi All,
    In Offline Workflow Approval Scenarios where the work items are sent to outlook of non sap users inbox through workitem exit of the respective workflow item. Based on the user reply from outlook email(either approve or reject) which sends an auto reply to Offline user . We configure an inbound exit class and assign the same in the SMICM transaction. Based on the code written using SAP_WAPI function modules in inbound class exit offline user gets the user approval result and performs the action in SAP.
    My question now Is how can we use this inbound exit class for all the steps of a workflow.
    For ex: In a workflow I have a decision step followed by an activity step. First I will write the work item exit for the user decision step and inbound exit code for the user decision step and offline user executed the user decision step with approve action.
    followed by that I have an activity step for that I will code a work item exit for that activity level but how can I user the same inbound exit class for the activity step as well .
    Quick reply  would be of great  help for me.
    With Best Regards,
    Veni

    For the outbound processing you have the option of replacing the workflow exit by chancing the bsp application of the extended notification (see note 1448241 solution as an example of how to do the change) and replacing the standard links with a "mailto:...".
    As far as the inbound processing, that depends on what should be done in the activity step, if for example you have a bapi which executes what the user does you can call it in the inbound class instead of the user and then the relevant wapi (complete the workitem/raise event etc.).

  • 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!

Maybe you are looking for

  • 72 Days and counting and Photo Stream still grayed out in iCloud CP

    72 Days and counting and Photo Stream still grayed out in iCloud CP since problem first discussed with Apple. No help, just reported to software engineers for investigation. Two months ago! So much for Apples's superior products and customer service.

  • Adobe flash installation crashes

    MacBook Pro OS X version 10.9.4   Safari version 7.0.5 The downloading of the flash installer is successful, but when it is launched, the installer automatically crashes. Apple has told me that the program re-runs through the coding hundreds of times

  • After rendering as MOV, file won't play in Quicktime.

    When I render files as MOVs or MP4s, the files will not play in Quicktime or VLC. When opened in Quicktime, a "Converting..." window pops up. After waiting for a long time, an error message shows up. Any suggestions?

  • Java.security.AccessControlException when accessing user documents

    Hello there, I'm a student programmer. I'm trying to write a desktop application which will read all of the user's documents folder and add it to a ZIP file. I am coding on Windows Vista but my code should be platform independent. The problem I have

  • Material specific shipping text???

    Hello Friends Is there any way to have shipping instructions print out that are specific to certain materials? I don't want to maintain this text in Sale text tab in material master because we are allready using this field to print on order acknowled