Data source 0BBP_TD_SC_APPR_1 - delta update in SRM

Hello,
I use 0BBP_TD_SC_APPR_1 data source. I have made the delta initialisation with the data transfer into the ODS. Worked fine: data is in and the delta is initialised.
The problem is, that the delta queue is never updated in the SRM (RSA7).
Do you know how this works? Is there an additional report (as RMBW* in R/3 LIS)? Or are there any restrictions for the workflow?
Any help is welcome.
Best regards,
Michal

A 'higher-level' datasource 0BBP_TD_SC_1 was not active.

Similar Messages

  • BW Master data delta generic data source for further update in BW

    Hi BWers,
    I am looking for an option to load delta from Master data to another master data within BW. Export data source option for master data only has full load option but no delta update possible.
    I tried creating generic data source delta enabled on view of master data (/BI/M). But the problem I am facing now is master data contains quantity field as attribute and this field refers another table RSDKYF for unit. To be able to create data source on view / table no field should refer field in another table.
    Did anybody create delta for master data for further loading within BW or came across similar issue with key figures, please let me know the best procedure in this scenario? Appreciate your quick response.
    Regards,
    Madhav

    In your master data attribute have a date field which will be filled by the R/3 load as sy-datum - then create an export datasource and in the infopackage - give a selectoion for the date field as sy-datum and sy-datum -1..
    Not exactly a delta but then usually master data is not kept as delta because the volumes are usually less - you can achieve delta by this method...

  • How to make CRM data sources for delta capability?

    Hi All,
    I know that the CRM data sources 0CRM_SALES_ACT_1, 0CRM_QUOTATION_I, 0CRM_SALES_ORDER_I have delta capability.
    At present we are doing full loads daily but it has got some performance issues.So we are thinking to make these as delta loads.
    Already some one has made a trail to make delta loads but not successful for some unknown reasons.
    Could you please suggest me the steps to make these data sources delta capable both in CRM and BW systems?
    As this is urgent...Please suggest ASAP.

    Hi
    Go thorugh Below the note: 692195
    Summary
    Symptom
    There may be problems or issues related to data tranfer from CRM to BW.
    Other terms
    CRM-BW extraction,upload,initial,delta,full upload ,Sales Analytics,
    Reason and Prerequisites
    There could be errors in customization or program errors due to which
    data may not be transferred or incorrectly transferred to BW.
    Solutions
    Question 1 : The Extraction from CRM to BW takes a very long time. What can be done? (Performance Issues)
    Suggestion 1: Please implement notes  653645 (Collective note) and
    639072(Parallel  Processing).
    The performance could be slow because of the wrong control parameters
    used for packaging.
    You can change the package size for the data extraction.
    Also note that changing the package size in the transaction SBIW
    would imply a change for all the extractors. Instead, you could
    follow the path in the bw system.
    Infopackage (scheduler)    > Menu 'Scheduler'   > 'DataS. default data
    transfer'   > maintain the value as 1500 or 1000(This value is variable)
    The package size depends on the Resources available at the customer side
    (The no of parallel processes that could be assigned =
    1.5 times the no of CPU's available approx.)
    Question 2 : On executing transaction RSA3 I get records but I find 0
    records when I load data from BW request.(No Data Available)
    Suggestion 2: First check if there are any entries in the table
    CRMD_ORDER_INDEX.Only if there are entries in this table you can
    extract records.
    If this is not the case then,
    It is possible that the user does not have sufficient
    authorities for extraction of  the relevant objects.
    Additionally, please review and implement the following notes
    615670
    161570
    150315
    618953
    If you are in the release 4.0 then
    To do BW extraction with the user please see that the following
    authorization object exists(display mode is enough):
    CRM_ACT,CRM_OPP, CRM_LEAD, CRM_SAO, CRM_SEO, CRM_CO_SE,CRM_CO_SC
    CRM_CO_SA, CRM_CON_SE, CRM_CMP, CRM_ORD_OP,CRM_ORD_LP,CRM_ORD_PR
    CRM_ORD_OE, CRM_CO_PU, CRM_CO_PD, CRM_ORD_PO
    (all these objects are linked to transaction crmd_order).
    Question 3 : The Deltas for my data source are not extracted . What can I do?
    Suggestion 3: Please check the following.
    Please Check if the services have been generated in transaction GNRWB.
    If they are not active(not marked 'X' before their names) then activate
    the services following the steps here.
    Go to transaction GNRWB
    Select BUS_TRANS_MSG
    Select (on the right, the services) : BWA_DELTA3, BWA_FILL, BWA_queue
    Press Generate.
    Also check  for the following:
    1. The delta should have been initialized successfully.
    2. Confirm that all Bdocs of type BUS_TRANS_MSG
       are processed with success in SMW01.
    3. If there are queues in SMQ1 with erroneous status then activate
       these queues.
       In Transaction SMQ1 if there are Queues existing with
       names beginning with CRM_BWAn (n is number) then
       activate these queues in the same transaction.
    4.a)If required activate the datasource
        Go to transaction BWA5   > select the required datasource and
        activate.
    4 b) The Delta may not be active ,activate the delta in BWA7 by
      selecting the name of the datsource and pressing the candle icon for
      'activate delta'.
    5. In BW system
       Go to transaction RSA1   > modeling   > infosources   > select the
       infosource   > right mouse click on the selected
       infosource   > choose option replicate datasource
        Activate the infosource.
    6. Go to the scheduler for the infosource   > select delta  in the
        update  >choose the option PSA only (in the Processing tab)
        > start immediately
    Check the entry in the RSA7 in the OLTP(CRM system)
    Question 4: How can I extract the fields, which are not provided in the standard  data source extraction .
    Suggestion 4: Follow the steps mentioned below.
    1. Enhance Extract Structure with the required fields. (Create & include
       an append structure to the extract structure via transaction RSA6).
    2.a) Release the fields of the append  for usage. (  To do this, double
       click on the Datasource and remove the flags in the column 'Hide
       Field' for all fields of Append. )
    2.b)If the new fields cannot be seen in the extract structure of
        the transaction BWA1 then change and save the datasource, and then
        activate it in RSA6.
    3. Define your mappings in BADI (CRM_BWA_MFLOW) to fill these fields.
    Goto SPRO .
    Follow the path ->
    SAP Implementation guide ->Implementation with other mySAP components ->
    Data transfer to the Business Information Warehouse->
    Settings for the application specific datasources (CRM)->
    Settings for BW adapter->
    Badi :BW adapter :Enhancement of datasources in messaging flow.
    4. Replicate the new Datasource to BW.
    5. Expand the Communication Structure in BW.
    6. Maintain transfer Rules for the new Datasource.
    7. Activate the trasfer rules and perform the upload.
    Question 5:  I am unable to extract  user status correctly.What should I
    do?
    Suggestion 5 :Check the following notes
    531875
    616062
    713458
    700714
    765281
    Question 6 : What can I  do when the activity/Opportunity/Complaint
    reasons(Code,CodeGruppe,Katalogart)  are not extracted.
    Suggestion 6 :Check the following notes
    481686
    516820
    603609
    617411
    711146
    Question 7:Deleted opportunities are not reflected in BW.
    Suggestion 7: Check the note 706327.
    Question 8: How do you  activate the metadata?
    Suggestion 8:CRM BW adapter meta data has to be activated first before
    it is available in the system. You can use Transaction BWA5 to copy the
    meta data for selected DataSources. You can reach the transaction via
    the IMG maintenance 'SAP Reference IMG -> Settings for SAP Business
    Information Warehouse -> Activate BW Adapter Meta Data'. For more
    information, see the documentation on the IMG activity 'Activate BW
    Adapter Meta Data'.  (Note 432485)
    Question 9: I donot get any records for the delta upload of my attribute
    datasource(s).What is to be done?
    Suggestion 9: In case of attribute datasources, it is possible that the
    entry for the GUID is missing in the table SMOXAFLD.
    If , for example the datasource 0CRM_OPPT_ATTR is not giving deltas
    then you can follow the steps:
    1)If Delta process is active for the attribute datasource e.g.
         0CRM_OPPT_ATTR,  then stop the delta process in the BW
         system 
    2) In the CRM system, Make the entry in the table SMOXAFLD
       for the datasource with the Key
       as  0CRM_OPPT_ATTR     GUID 3) Save the entry.Activate the datasource                           4) Check that the above entry is replicated in smoxafld_s also    after this.               5) Create a transport request manually for the following    object             R3TR   SMO4   0CRM_OPPT_ATTR    
    Question 10: What do the status BWSTONESYS0 , BWSTONEUSS0,BWSTTECSYS0 and various other BW status mean ?
    Suggestion 10: The BW status are used to extract system and user defined
    status.
    The BW status are defined in the customization settings in SPRO.
    Check for-> Status Concept for BP/Product/CRM objects
    Here goto-> Process user status You will find the documentation attached here for the user status. Going inside the transaction you will find the status groups USS0, ZIOP,ZMOP etc. The names of the various BW status are derived from this For ex. BW + ST+ One + USS0 gives the name of the field BWSTONEUSS0 or BWST + ONE + ZMOP = BWSTONEZMOP (Master opportunity values) (which means BWST + (status group name) + status object group name) Double clicking on any of the object groups will take you to the values that these status can have . For ex. BWSTONEUSS0 in your system can have values E001 ,E002,E003,E007 which will be shown in RSA3 as BW status values 1,2,3,7, respectively.
    Similarly we have Goto -> Process system status (in SPRO). Here you can get the values for the system status in exactly the same way as BWSTONESYS0(Lifecycle status) , BWSTTECSYS2 (Error) etc. In RSA3 you get the names as BW status, To know which corresponds to which status here,Gotothe record list in RSA3 . Here goto Settings - Layout -Current . Right click -> Press Show technical field names . You will be able to see the BW status names and will be able to adjust the layout accordingly.
    Thank you,
    DST

  • Generic data source. Delta based on the changes in the CDHDR & CDPOS

    Hello all,
    I need to create a generic data source using fun module. This fun module has to execute delta based on changes in table CDHDR & CDPOS for purchase order info records.
    can I use RSAX_BIW_GET_DTA_SIMPLE?
    Is there any other way to implement this requirement?
    waiting for ur suggestions ...........
    Thanks,
    zak.

    hi
    check the below extractor... it will extract status from both table.. u may not be required to build a generic one..
    0TE_OBJ_STATUS_HIST

  • Generic Data Source -  Generic Delta

    Hi All,
    is it possible to create a Generic data source delta with two values.
    I mean suppose I need to extract data sat based on ERDAT.
    Now In the Generic Delta I have the date to make it delta but my requirement is like making this date dependent on two dates One ERDAT and second is like always Sy-datum.
    So Delta should work on ERDAT and SY-DATUM simultaneously.
    Is there any way to do it.
    Any help is highly appreciated.
    Thanks,
    Anjna

    Hi Anjana,
    In one datasource you can only specify one field for generic delta,
    As an alternate solution:
    1. Develop Generic Extractor based on FM
    OR
    2. Create 2 datasource one for new records and second for changed records and consolidate data in BW
    Please refer the below links...It may be of help for you..
    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    Hope it helps,
    Rgds,
    Amit Kr.

  • Data source not delta capable

    Hi ,
       i have an issue here my copa datasource is not delta capable, how will I make it delta capable.I dont want to use an ODS here.please this is an urgent issue
    regards
    rak

    Hi Rakshita,
        Check here.......
    COPA Delta
    Simple Question on Delta Info Package
    dummy delta/pseudo delta
    Psedo Delta
    Delta load for flat file
    Regards,
    Vijay.

  • Delta Update in data Target Must be Deactivated Before deleting the request

    Hi Experts,
    I got an error while deleting a request from an ODS target.  In breaf Let me explain..
    Today one data load got failed. The data source 0CRM_SALES_CONT_I ( CRM  Sales Contract : Item ) is updating data to 4 ( Four ) ODS targets.
    So I forcefully made the request red to delete the request from the targets. But  I unfortunately deleted another request without making it RED, I reconstructed it. Everything is looking fine.
       But the thing is , when I tried to  Delete the ERROR request from  the other two related Data Targets ( 0CRM_CN2P  and   0CRM_CNT1) , I fount these warnings..
                    --> Request 140522 already retrieved by Data Target BWPCLNT600
                    --> Delta update in Data Target BWPCLNT600 must be DEACT. before deleting the request.
                    --> Do you want to DEACTIVATE the Delta Update in the Data Target BWPCLNT600   ?
       I clicked on YES.
    I am having doubt, will it make any problem in future ? Or How Can I Resolve this problem   ?
    Thanks,
    Utpal.

    Hi shanthi bhaskar ,
    Thank you. But the client no which I have mentioned is not our. That is different, I have given for the example. Bur the DS and ODS name are as it is.
       and  Shanthi, Won't be any problem as  I got the warning as mentioned above.. ?
    Thanks,
    Utpal

  • Extraction, Flat File, Generic Data Source, Delta Initialization

    Extraction, Flat File, Generic Data Source, Delta Initialization
    I have couple of questions regarding data extraction.
    1.     If you have Data Source a Flat File e.g. Excel file I know that you have to create Data Source at BW side. How do you upload updates, by selecting Delta Update when executing next Data Load? Do you ever u201Cconvertu201D this Excel file into Application Tables to become SAP Source 
    2.     Can you please give me example of situation where you had to create Generic Data Source? What is difference between Time Stamp, Calend. Day and Numeric Pointer. Which one is most common to select?
    3.     I read somewhere that Generic Data Source does not have Setup Table. I thought that you have to have Setup Table in order to load transaction Data otherwise you will lock the Application Tables. Where am I going wrong im my thinking please?
    4.     What are steps in terms of IP before, under and after Delta Initialization. I belive that you can do two ways:
    Full Update - Initialize Delta Process (without Data Transfer) u2013 Delta Update  or
    Initialize Delta Process (with Data Transfer) u2013 Delta Update
    Am I right? What is most common method and why?
    5.     If you want to add a filed in Data Source after 6 month using it, you want to do it without re-init Delta Queue. You add field in RSA6, then provide info for ABAP to populate new filed (info u2013 name of Data Source, Extract Structure, field added, name of Application Table which contains the field). How does it work now as there is no SetUp table it has been deleted after Initialisation? How does Delta Queue know that it is going to receive data which has been  expanded by one field or it may does not need to know at all?
    THANKSSSSSSSSSs

    Hi,
    1. If you have Data Source a Flat File e.g. Excel file I know that you have to create Data Source at BW side. How do you upload updates, by selecting Delta Update when executing next Data Load? Do you ever u201Cconvertu201D this Excel file into Application Tables to become SAP Source
    Once you create Datasource for A flat file extraction then it is file source system specific hence you cont change to Application table source Data source
    In info package you can change the source as application server instead of desktop no need to change the DS
    2. Can you please give me example of situation where you had to create Generic Data Source? What is difference between Time Stamp, Calend. Day and Numeric Pointer. Which one is most common to select?
    When we don't find any standard extractor then we can go for Generic(if i want information sales along with finance information in a data source then generally we dont get standard one hence we can go for generic DS)
    Check the below link for More about generic DS .
    http://wiki.sdn.sap.com/wiki/display/BI/Generic+Extraction
    for Delta capturing you can use
    Timestamp(if the table has time stamp filed  so it can stamp the last changed record in that table hence it is easy to get delta based on the time stamp)
    Calday- (If the table doesn't have the Timestamp filed then search for Calday where you can stamp the delta based on the date when documents are changed )
    Numericpointer : If the table doesn't above both then we go for this option where you can the numeric value change stamp )
    3. I read somewhere that Generic Data Source does not have Setup Table. I thought that you have to have Setup Table in order to load transaction Data otherwise you will lock the Application Tables. Where am I going wrong im my thinking please?
    Generic datasource nothing but we extracting data directly from the database table without any interface between the application/systems
    4. What are steps in terms of IP before, under and after Delta Initialization. I belive that you can do two ways:
    Full Update - Initialize Delta Process (without Data Transfer) u2013 Delta Update or
    Initialize Delta Process (with Data Transfer) u2013 Delta Update
    Am I right? What is most common method and why?
    Correct
    5. If you want to add a filed in Data Source after 6 month using it, you want to do it without re-init Delta Queue. You add field in RSA6, then provide info for ABAP to populate new filed (info u2013 name of Data Source, Extract Structure, field added, name of Application Table which contains the field). How does it work now as there is no SetUp table it has been deleted after Initialisation? How does Delta Queue know that it is going to receive data which has been expanded by one field or it may does not need to know at all?
    Once you add the new field to structure(DS) you will get the data as on date onwards not historical data hence what is the concept of setup table  ( delta records come from the Delta Que not from the setup table )
    If you want histaric data to new field then you need to setp table deletion ...etc...
    Hope it is clear..
    Regards,
    Satya

  • Generic Data Source delta is not extracted

    Hi,
    There is a problem in extracting the delta records using Generic Data Source. Delta records ( New / Modified records ) are not posted in the RSA7.
    I'll Explain you the Scenario I have done. Created a generic data source in R/3 using view. In the view there is a field Sales Order No. I have enabled the delta update for this field. In the generic delta i have chosen delta type as Numeric pointer.
    Extracted the entire record using full update and after initializing the Delta, it extracts the delta record well ie. it only extracts the sequence of Sale Order No. First I extracted nine records(i.e 10001 to 10009) using full update. again I entered a record in underlying table with sale order no as 10011-10013. It extracts those records into BW system. Then again I made an entry in the table with sales order no 10010. But the record is not extracted. Even though I tried of specifying safety lower limit as -3. Still it not extracting the record(10010).
    And what if I posted a value of sale order 10014 with the same. what should I do?? Help on this plz.
    --Durai.S

    Hi SVS,
    Thanks for your reply.
    I followed this in my scenario. But I don't understand why it is not extracting? even I specified the safety limit of upper and lower values in the generic delta.
    Here the below explanation shows that the delta record can be extracted even  if the pointer value is greater than the posted value.
    Numeric pointer (last extracted value 10011; Data in underlying table (Max value = 10025) )
    Data would be extracted from a min-value of 10010 (lower limit adjusts the last counter 10011 by specified value u2013 1)
    max-value of 10020 (after adjustment for upper safety limit u2013 by 5). The current pointer would now indicate 10020 in
    RSA7.
    --Durai.S

  • Where can we see the Delta Method suported by data source.

    Hi all,
    Please let me know where can we see delta method for the Business constraint DataSource ? such as where this data source had delta method as Direct Delta or Queued Delta or V3 Undersized update.
    I want to find out for 0FI_GL_4 DataSource.
    Regards
    Ashutosh

    0FI_GL_4  is delta capable.
    http://help.sap.com/saphelp_nw70/helpdata/en/0c/b4973c115a6f3ae10000000a114084/content.htm
    Finance works on Time Stamp not on LO.

  • Delta on Customized Data Source

    Hi all,
    Our requirement is we want to make one customized data source as delta enable. First is it possible? please give me some document or share real experience so that it will be easy to explain to the peoples out here.
    I need a detailed explanation please.
    amit

    Hi,
    This can be done as you will need a date field or a numeric pointer orr timestamp kind of field in the data source to make it delta enabled.
    Here is the link on how to make generic data source and make them delta enabled.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    Thanks
    Ajeet

  • Using data source to update user defaults

    I have a default entry in my user defaults that is a list. Each item of the list is a list of records. I use the following code to delete an entry.
    on deletePlaylist()
    set tableView to table view "Playlist" of scroll view "Playlist" of window "Schedule Window"
    set selectedDataRows to selected data rows of tableView
    if (count of selectedDataRows) > 0 then
    delete (item 1 of selectedDataRows)
    set contents of default entry "specialList" of user defaults to contents of data source "Specials"
    register
    end if
    end deletePlaylist
    This code seems to work; when I open my plist the entry looks just as it should. The problem is that the next time I open my program, I get a 1728 error when I try to read that default entry.

    I'm not using pipes anyplace in my program.
    I'm reading my user defaults like this
    set theList to contents of default entry "specialList" of user defaults
    tell data source "Specials"
    set update views to false
    delete every data row
    repeat with a from 1 to length of theList
    set theRow to make new data row at end of data rows
    tell theRow
    set contents of data cell "thisDay" to thisDay of item a of theList
    set contents of data cell "thisTime" to thisTime of item a of theList
    set contents of data cell "thisFinalPlay" to thisFinalPlay of item a of theList
    set contents of data cell "thisPlaylist" to thisPlaylist of item a of theList
    end tell
    end repeat
    set update views to true
    end tell
    I'm writing my user defaults like this in my delete routine.
    delete (item 1 of selectedDataRows)
    set theList to content of data source "Specials" --I think this is the problem line
    set contents of default entry "specialList" of user defaults to theList
    When I open my plist in Property List editor, the pipes do not show. The entries are identical to those in the plist before it is screwed up. I think that when my program asks for user default thisList it is actually finding |thsList|. Does that make sense?
    When I add to the data source, I make the changes to theList and then rebuild the data source and write theList to user defaults. This works fine.
    If I could get the line number of the selected data row in the table view, I could use that index to delete the appropriate item from theList and then write theList directly to user defaults like I do when I add to the data source.

  • Delta enable custom func mod data source for Delete record also

    Hi,
    We have a custom function module data source and the base table on which data is extracted has two time stamp fields ( created on, changed on ) and the data source is delta enabled with the timestamp field.
    It works aboslutely fine in Full and initial mode and load data into a target ODS.
    Even in delta mode we believe that it works in most of the cases( only change of an existing records and creation of new records). However in the case of delete, we have issues.  When the data is deleted from the base table we completely loose the record and can’t advice the BW which one to delete.
    In order to bypass this we have analyzed the cdhdr/cdpos table and found out that that we can compute the Key field value that was deleted from the last delta run and can include it as such in the data that are extracted.
    Big Question is by what mechanism we let the BW know that this is a delete, so that the existing record( with the same key) is actually deleted from the ODS. I have seen some fields like 0RECORDMODE doing things in SAP delivered  content. But not sure how we can get this work for our custom data source. 
    Please let us know whether you need any clarification on this. I shall be prompt to provide points who can resolved this showstopper issue for us.
    Thanks

    Hi Aruna,
    I have tried to explain : "Big Question is by what mechanism we let the BW know that this is a delete"
    Now to create a DataSource, you will have to include the information from the Tables as you mentioned:
    1: CDHDR
    2: CDPOS
    In this table you can check the CHANG_ID as the field which gives the information of
    1: Overwrite
    2: Add
    3: Delete
    Now when you create the Function Module, make a field similar to this and read the R/3 Table field CHANGE_IND and pass the relevant Indicators to the BW in the Transfer Rules
    Like
    CDHDR refers 'D' for delete but In BW 'R' denotes Deleted image. So the FM should take care this and pass the blank for all and 'R' for the documents with 'D' for each line item along with the other required fields.You will have to use an ODS in this case.
    note: Plz check the logic of Change Ind "E". I am not sure of this type.if you want to delete 'E' then pass the value as 'R' to the BW system for documents with 'E' CHANGE_IND.
    Hopes i made it clear.
    regards
    Happy Tony
    Points == Thanks

  • Delta Extraction from 0ASSET_AFAB data source

    Hi All,
    I reinstalled the data source 0ASSET_AFAB_ATTR and 0ASSET_AFAB_TEXT data sources for delta feature.
    When i tried to extract the delta its gave the error message RSM 340 ( full and delta init was successful).
    I implemented the OSS notes 599896 ,613273 but no luck.
    Could you please kindly help me if some one already successfully extracting the delta from this data source.
    ( Full load is killing our production system its taking more than 90 min to finish)
    Its seems this data source supports delta type "AIE" .
    Could you please some body put some light on this.
    Kind Regards
    Martin Leo
    Message was edited by: Martin Leo

    Hello Martin,
    the error is pointing to a problem on the source system. So you have to look in R/3. Run the extractor checker in R/3 using transaction RSA3.
    It took me a while to figure this one out. Here are the steps you should follow:
    1) In R/3 activate the BAdi FIAA_BW_DELTA_UPDATE in transaction SE19 if it is not active.
    2) Now run a delta init (with data transfer!) for 0ASSET_ATTR_TEXT (and not 0ASSET_AFAB_TEXT).
    3) Once this is successful, do a delta init for 0ASSET_AFAB_ATTR again with data transfer.
    4) Now you can load 0ASSET_AFAB_TEXT and finally the 0FI_AA* transaction data. Also the deltas for the master data should work now.
    Regards,
    Marc
    SAP NetWeaver RIG, US BI
    PS: After each step you can check in table BWOM2_TIMEST on R/3 if a delta init was successful.

  • Re: Data Source: 0CRM_PROD_OBJ_LIST

    Dear All
    We are using CRM data source:0CRM_PROD_OBJ_LIST(Delta) and ODS 0CRM_OL.
    Issue: Data is loaded in to PSA correctly but when it is staged to ODS it is skipping some of the records.
    Between this PSA and ODS their is a Start routine in Update rule.
    Update rule name; 4ETV81OKAKCXHUFPSRYXMIVAT
    Code in Start routine is attached.
    1. Can Some one please check whether it is standard or Z? Because I had debugged the program I found no problem in it.
    Sorry to attach the code here it is just to verify.
    YPES: BEGIN OF new_data_structure,
             item_guid(32) TYPE c,
             item_changed_ts(8) TYPE p,
             recordmode TYPE c,
           END OF new_data_structure.
        This global table contains information about relevant update
        records. This table is filled when the first data package is
        processed
    DATA:  gt_new_data TYPE SORTED TABLE OF new_data_structure
           WITH NON-UNIQUE KEY item_guid item_changed_ts recordmode.
    DATA: IN    TYPE F,
          OUT   TYPE F,
          DENOM TYPE F,
          NUMER TYPE F.
    data: rate like tcurr-UKURS.
    constants: c_msgty_e value 'E'.
    $$ end of global - insert your declaration only before this line   -
    The follow definition is new in the BW3.x
    TYPES:
      BEGIN OF DATA_PACKAGE_STRUCTURE.
         INCLUDE STRUCTURE /BIC/CS0CRM_PROD_OBJ_LIST.
    TYPES:
         RECNO   LIKE sy-tabix,
      END OF DATA_PACKAGE_STRUCTURE.
    DATA:
      DATA_PACKAGE TYPE STANDARD TABLE OF DATA_PACKAGE_STRUCTURE
           WITH HEADER LINE
           WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
    FORM startup
      TABLES   MONITOR STRUCTURE RSMONITOR "user defined monitoring
               MONITOR_RECNO STRUCTURE RSMONITORS " monitoring with record n
               DATA_PACKAGE STRUCTURE DATA_PACKAGE
      USING    RECORD_ALL LIKE SY-TABIX
               SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
      CHANGING ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
    $$ begin of routine - insert your code only below this line        -
    fill the internal tables "MONITOR" and/or "MONITOR_RECNO",
    to make monitor entries
    **declaration
    DATA: lt_active_data TYPE TABLE OF /bi0/acrm_ol00.
    DATA: ls_active_data TYPE /bi0/acrm_ol00.
      DATA: lt_active_data TYPE TABLE OF DATA_PACKAGE_structure.
      DATA: ls_active_data TYPE DATA_PACKAGE_structure.
      DATA: lv_fsname(60) TYPE c.
      DATA: lv_psa_name TYPE rsodstech.
      DATA: lv_dso_tabname TYPE tabname.
      DATA: ls_new_data TYPE new_data_structure.
      DATA: ls_new_data_pre TYPE new_data_structure.
      DATA: ls_DATA_PACKAGE TYPE DATA_PACKAGE_structure.
      DATA: help_index LIKE sy-tabix.
      FIELD-SYMBOLS: <fs_minfo_requnr> TYPE ANY.
      FIELD-SYMBOLS: <fs_minfo_datapakid> TYPE ANY.
      FIELD-SYMBOLS: <fs_minfo_updmode> TYPE ANY.
      FIELD-SYMBOLS: <fs_minfo_logsys> TYPE ANY.
    **constants
      CONSTANTS:  lc_dso_name TYPE rsdodsobject VALUE '0CRM_OL'.
    **end of declaration
    **fetch request number
      lv_fsname = 'g_s_minfo-requnr'.
      ASSIGN (lv_fsname) TO <fs_minfo_requnr>.
    **fetch data package number
      lv_fsname = 'g_s_minfo-datapakid'.
      ASSIGN (lv_fsname) TO <fs_minfo_datapakid>.
    **fetch update mode
      lv_fsname = 'g_s_minfo-updmode'.
      ASSIGN (lv_fsname) TO <fs_minfo_updmode>.
    **fetch source system
      lv_fsname = 'g_s_minfo-logsys'.
      ASSIGN (lv_fsname) TO <fs_minfo_logsys>.
    **delete all data_package entries that...
    **...are not object list elements
    **...are dummy deletion records
    **...are erroneous
      DELETE DATA_PACKAGE WHERE flag NE 'O'.
    OR
                               recordmode EQ 'D'.
    **delta handling only processed for update modes 'delta' and 'repeat'
      IF <fs_minfo_updmode> = 'D' OR <fs_minfo_updmode> = 'R'.
    data selection and deletion handling only for the first data package
        IF <fs_minfo_datapakid> = '000001'.
       fetch technical name of actual PSA table
       with I_SELTYPE = 'D' (Date)
          CALL FUNCTION 'RSAR_ODS_NAME_GET'
            EXPORTING
              i_logsys                = <fs_minfo_logsys>
              i_isource               = '0CRM_PROD_OBJ_LIST'
              i_istype                = 'D'
              i_date                  = sy-datum
            I_VERSION               =
              i_seltype               = 'D'
            I_SEGMENT_ID            =
            IMPORTING
            E_ODSNAME               =
              e_odsname_db            = lv_psa_name
            E_ODS_TABTYPE           =
            E_S_ODS                 =
            E_T_ODSFIELDS           =
            E_PARTITIONED           =
            EXCEPTIONS
              parameter_failure       = 1
              no_ods_found            = 2
              no_fields_to_ods        = 3
              OTHERS                  = 4
          IF sy-subrc = 0.
         select new data from PSA Table
            SELECT * FROM (lv_psa_name)
            INTO CORRESPONDING FIELDS OF TABLE gt_new_data
         only select data from actual request
         ...do not select erroneous records
         ...do not select object list records
            WHERE request      = <fs_minfo_requnr> AND
                  bwsttecsys2  NE '10' AND
                  flag_pl_ol   NE 'P'.
            IF sy-subrc = 0.
           delete adjacent duplicates in gt_new_data
              DELETE ADJACENT DUPLICATES FROM gt_new_data
              COMPARING ALL FIELDS.
           get technical name of active DSO table
              CALL METHOD cl_rsd_odso=>get_tablnm
                EXPORTING
                  i_odsobject   = lc_dso_name
                  i_tabt        = rsdod_c_tabt-active
                IMPORTING
                  e_tablnm      = lv_dso_tabname
               E_TTYPENAME   =
               E_VIEWNM      =
               E_CHNGLOGNM   =
               E_INFOSOURCE  =
               E_DATASOURCE  =
                EXCEPTIONS
                  OTHERS        = 1.
              IF sy-subrc <> 0.
                lv_dso_tabname = '/bi0/acrm_ol00'.
              ENDIF.
           select active data from ODS A-Table for relevant items
              SELECT * FROM (lv_dso_tabname)
              INTO CORRESPONDING FIELDS OF TABLE lt_active_data
              FOR ALL ENTRIES IN gt_new_data
              WHERE crm_itmgui = gt_new_data-item_guid.
           delete older after images, only keep the latest one
              LOOP AT gt_new_data INTO ls_new_data.
                IF ls_new_data-item_guid EQ ls_new_data_pre-item_guid AND
                   ( ls_new_data-item_changed_ts NE
      ls_new_data_pre-item_changed_ts OR
                for dummy deletion records on item level there could be
                several entries with same value of item_changed_ts
                because the changing date is not updated in case of
                deletion of an item
                in this case we only keep the dummy deletion record
                itself
                   ls_new_data-recordmode = 'D' ).
                  help_index = sy-tabix - 1.
                  DELETE gt_new_data INDEX help_index.
                ENDIF.
                MOVE ls_new_data TO ls_new_data_pre.
              ENDLOOP.
           Now we delete all dummy deletion records in gt_new_data
              DELETE gt_new_data WHERE recordmode = 'D'.
           modify data of gt_active_data for field 'RECORDMODE' = 'D'
           deletion records are written to the data package (Index 1)
              LOOP AT lt_active_data INTO ls_active_data.
                ls_active_data-recordmode = 'D'.
                MOVE-CORRESPONDING ls_active_data TO ls_DATA_PACKAGE.
                INSERT ls_DATA_PACKAGE INTO DATA_PACKAGE INDEX 1.
              ENDLOOP.
           delete records of older after images
           do not consider deletion records
              LOOP AT DATA_PACKAGE INTO ls_DATA_PACKAGE
                   WHERE recordmode NE 'D'.
                help_index = sy-tabix.
             relevant for update?
                READ TABLE gt_new_data WITH KEY
                  item_guid = ls_DATA_PACKAGE-crm_itmgui
                  item_changed_ts = ls_DATA_PACKAGE-crm_itchts
                  BINARY SEARCH
                  TRANSPORTING NO FIELDS.
             if not relevant, delete it!
                IF sy-subrc <> 0.
                  DELETE DATA_PACKAGE INDEX help_index.
                ENDIF.
                CLEAR ls_DATA_PACKAGE.
                CLEAR help_index.
              ENDLOOP.
            ENDIF.
          ENDIF.
    for data packages > 000001
        ELSE.
       delete records of older after images
          LOOP AT DATA_PACKAGE INTO ls_DATA_PACKAGE.
            help_index = sy-tabix.
         relevant for update?
            READ TABLE gt_new_data WITH KEY
              item_guid = ls_DATA_PACKAGE-crm_itmgui
              item_changed_ts = ls_DATA_PACKAGE-crm_itchts
              BINARY SEARCH
              TRANSPORTING NO FIELDS.
         if not relevant, delete it!
            IF sy-subrc <> 0.
              DELETE DATA_PACKAGE INDEX help_index.
            ENDIF.
            CLEAR ls_DATA_PACKAGE.
            CLEAR help_index.
          ENDLOOP.
        ENDIF.
      ENDIF.
    if abort is not equal zero, the update process will be canceled
      ABORT = 0.
    $$ end of routine - insert your code only before this line         -
    ENDFORM.
    Analysis on it:
       1. I read in the SAP help that u201CBefore you perform a delta update for this ODS object, ensure that data previously loaded into the ODS object is activated. Otherwise the delta update could lead to inconsistencies.u201D  (http://help.sap.com/saphelp_tm80/helpdata/en/ba/21423fc657e07fe10000000a114084/frameset.htm). But I had seen in the ODS
    (0CRM_OL) manage that number of requests are activated at once so I had deleted the ODS requests and reloaded one by one by activating them sequentially.
    Till the request which has got problem that is SID of request 90949 (PSA) dated 06/09/2011. After loading the said request the contract number (0000132672) was still missing in the ODS. Then I had debugged the 9 data package of 90949 in which the contract number 0000132672 was present. I found that after the code for Start routine is completed the contract number was still existing in the internal table. But that is not updated into the New(Queue)  Table of ODS.
    Unable to debug the background job which is generated while updating the data from PSA to ODS, as no real data found at that time. 
    Code Process in Start Routine (It will use both the active table of ODS and PSA data (of relevant request )):
    Conclusion: There is no problem in Start routine. (Seems it is standard routine (need to be confirmed)).
    2.       Found in Sap help that u201CWhen you use this InfoSource to load data into the ODS objects Product Lists (0CRM_PL) and Object Lists (0CRM_OL), you must set the processing method Only PSA with the option Update Subsequently in Data Targets in the corresponding InfoPackage. The update rules for the above ODS objects use a global table in their start routine to enable delta updates for this extractor. Once the data to be loaded has been distributed to multiple data packages, the contents of this global table are only retained if you have set the above processing method. If you set any other processing method, the contents of this global table are deleted between processing of data packagesu201D (http://help.sap.com/saphelp_bw33/helpdata/en/05/bb423fd9575003e10000000a114084/frameset.htm).
    For this to implement need to delete data from ODS and from PSA so as to load the data with new info package (Process type Only PSA update sub sequential).
    Edited by: sreekanth goud on Oct 25, 2011 8:02 AM

    Hi Sreekanth,
    First check whether you ur DSO had the right combination of key fields,once u r sure about it,check the start routine,please send the code. it's heavy to see.
    Thanks & Regards
    Rams Thota

Maybe you are looking for

  • How do I make my computer the primary for my iPhone 3G?

    How do I make my computer the primary for my iPhone 3G? I am able to load music from my iTunes library but unable to delete music or create playlists on the phone from itunes. The computer I set the phone up with (primary) was destroyed.

  • Tolerance limits at Goods Receipt??

    Can someone explain me how the Tolerance Keys B1 (or B2) works for Goods Receipt in MIGO. I have already refered the below links, But failed to understand the basic purpose of T Keys in OMCO. Goods Receipt tolerance limit (OMC0) http://www.sapfans.co

  • The icon "Settings" is not working in my ipad2

    The Icon "Settings" of my ipad 2is not working. If you click it does not respond. It just started like that yesterday but today anoher problem that i can not slide to restart, and if i t works it just open with a very low speed. Someone tell me waht

  • Question on top command output in solaris

    Platform : Solaris 5.10 In the top output, if you look at the CPU colum, you can see that one process (2415) is consuming 95.84 % of CPU, another process (28533) is consuming 91.81%. How can this happen ? If one process is consuming 95.84 , then less

  • "wdp" folder missing under the bin folder

    Hi All, I have no clue whats going on. I have been successfully developing my WD application and deploying it on the server.But recenetly i added a few Value Nodes and value attributes to the Component Controller and tried to deploy the application b