In CRM queue missing for delta extraction
Hello everybody,
I have following problem with extraction of 0CRM_SRV_PROCESS_I delta entries from CRM system.
I have intialized the extractior from BW and have following status on CRM:
in bwa7 i see the extractor with delta active. The BDOC Name is BUS_TRANSACTION_MESSAGE.
The field Queue exists is not ticked. it is empty.
Now I change the one transaction. i.e. I change the requested end date.
Now in transaction smw01 (bdoc messages) i see my transaction in status: Confirmed (fully processed) - green.
The queue name is: CSA_ORDER_8000000000.
Now I go to smq1and ..... can not find the queue.
As result the delta is not populated to BW.
In addition to this: in SMQS I see destination CSA*. Could it be somehow linked to my problem.
So, my question is: how shoul I register the queu to make it work.
p.
Hi,
How do you load the data in the development system?
- you set up the update mode in the infopackage. There you must customize "Initialization"
- you have to filled the setup table in the production system without laoding the data in the BW? then this step was for nothing. Filling the setup table and do the INIT in the BW, this must be together - during no changing will be done in your R/3 SD.
Sven
Similar Messages
-
Code For Delta Extraction Using Function Module
Dear Experts,
I want a sample code for Delta Extraction using Function Module ( If it is customized already working code very helpful ), I have already created Function Module but Full update is happening. If I give delta update again it is retrieving all records. It is very urgent, if you have please send me to the following mail ID.
[email protected]
Best Regards,
SGK.Dear KJ,
Thank for your response. I saw the code that you sent, you have used some ztables like ZSC_DELTA_IP, ZSC_SAFETY_DELTA, ZSC_SET_EXT_TIME
What are the fields that you have created in these tables , what is use of these tables, can you send the fields that you have used in these tables.
Thanks & Regards,
SGK -
How to make JOB CONTROL setting for delta extraction in Production system .
Hello All,
We are in the process to transport our development to PD server in BI . We have transported the data sources to ECC production and now we are filling the setup table for " SD BILLING BW " . After filling Setup table data in full mode through infoPackage we have to load data in delta mode .
How we can set our Update mode(LBWE setting) in PD server ?
Is LBWE T.Code authorisation required in ECC PD server to make the setting of Update mode or We have to set all Job Control Paramater in Dev System at the time of transport the datasource request to ECC production . Is our time which is set in job control of ECC development will be reflected in ECC production ?
can any body tell me about how to make setting for delta extraction in Production system .
Thanks ...Hi,
How do you load the data in the development system?
- you set up the update mode in the infopackage. There you must customize "Initialization"
- you have to filled the setup table in the production system without laoding the data in the BW? then this step was for nothing. Filling the setup table and do the INIT in the BW, this must be together - during no changing will be done in your R/3 SD.
Sven -
Time-stamp Table for delta extraction
Hi SDNers,
What are the BW Time-stamp Tables for delta extraction in Source System(R/3).
Thanks,
Satyathe tables involved are :
ROOSPRMS
ROOSPRMSC
ROOSPRMSF
in the second table (ROOSPRMSC) you'll find the timestamp
M. -
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 -
"Errors occurred during the extraction" for delta Extraction
Hi All,
I have one data source which is getting extracted by using the FM.Initially this is only full load.But now I have enabled delta on this data source.
While extracting the data from RSA3, with delta option, I am getting the error "Errors occurred during the extraction".
But I have given Target System, replicated the data source in target system and reactivated it again.
But again I am getting the error "Errors occurred during the extraction".
Could you please help me on this.Hi
I have done the Data Source Initialization. -
Delta extraction for masterdata object
hi,
can anybody tell me the procedure for delta extraction for master data object.
is it possible!Master Data Datasources do allow for delta extraction. You can display datasource in RSA6 and check if it is delta enabled. You will have to initialize with delta to perform delta extraction. RSA7 will give you delta queues in R/3
-
Generic function module for delta - which FM ?
Hi all,
I want to create a custom generic datasource in R3 which uses a function module for delta extraction. This is straight forward for full extract (copy FM RSAX_BIW_GET_DATA_SIMPLE - I already did this and have a full extraction working to BW). However I need to extract delta - and the above function module does not have example code for that (I have seen some forum posts that it 'can' be used - but this looks like a pseudo get around where the delta field name is passed in I_T_SELECT).
FM RSVD_BW_GET_DELTA_DATA seems to be an example code of a FM which can allow delta (i.e. manually codes how to fill date/time stamp information). However when I code this and try test in RSA3 it seems to try to populate the delta selection field before calling my function module! I need it to call my function and allow the function to specifiy the date criteria.
Can anyone help with an example of how this should best be done ?
Or can it only be done in a pseudo form using 'RSAX_BIW_GET_DATA_SIMPLE' example FM.
Note: I have setup the RSO2 datasource to allow delta.
Also - I have spent several hours searching the forum - but please answer with a link if you think it does answer exactly this problem.
Thanks for any help
MartinHi again,
Have had a few requests for the code I used - I created a new custom function copied from 'RSAX_BIW_GET_DATA_SIMPLE'. AEDAT has been set as the delta date for this data source in transaction RSO2.
Main sample code is -
1. Code to receive selection criteria and store in internal ranges -
FUNCTION zbw_sodetail_get_detail.
""Global interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZBW_SODETAIL OPTIONAL
*--- Sales order item create date
LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'ERDAT'.
MOVE-CORRESPONDING l_s_select TO r_erdat.
APPEND r_erdat.
ENDLOOP.
*--- Sales order item change date - DELTA only - auto filled before
this function is called.
C (Initialise Delta) - Low = blank, High = today - safety limit
D (Delta) - low = , High = . *from roosgendlm
LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'AEDAT'.
MOVE-CORRESPONDING l_s_select TO r_aedat.
APPEND r_aedat.
ENDLOOP.
2. Code to use selection criteria to get initial or delta. Note that for delta the delta date field to be used is automatically populated with the date of the last delta run (from table roosgendlm) -
SELECT VBAK~KNUMV
VBAPVBELN VBAPPOSNR VBAPMATNR VBAPARKTX VBAP~SPART
VBAPWERKS VBAPERDAT VBAPAEDAT VBAPNETWR VBAP~WAERK
VBAPABGRU VBAPZPROMISE VBAP~CUOBJ
VBEP~EDATU
INTO CORRESPONDING FIELDS OF TABLE ZBW_SODETAIL_ITAB
FROM VBAK JOIN VBAP ON VBAKVBELN = VBAPVBELN
JOIN VBEP ON VBAPVBELN = VBEPVBELN
AND VBAPPOSNR = VBEPPOSNR
WHERE VBAP~VBELN IN R_VBELN "Order number
AND VBAP~POSNR IN R_POSNR "Order item number
AND VBAP~ERDAT IN R_ERDAT "Order item date created
AND ( VBAP~ERDAT IN R_AEDAT OR "Created date in Delta range
VBAP~AEDAT IN R_AEDAT OR "Order item change Delta range
VBAK~AEDAT IN R_AEDAT ). "Order header change Delta range
Note that if the data source is called in initial or full extract mode the delta change date (aedat) will automatically be blank.
I have been using this successfully.
I hope this helps
Martin. -
Generic Delta extraction by Function module issue
Hello Experts,
Please help !!!
I have problem for delta extraction by Function module. For the full load, I wrote function module based on RSAX_BIW_GET_DATA_SIMPLE. It works fine.
But I would like to have the delta load enabled. Therefore, I modified the datasource, add a delta specific field u2018ztimestampu2019, which type is calendar day.
Then I create a function module based on template u2018RSAX_BIW_GET_DATAu2019, as this support the upload mode. But when I test this datasource in RSA3, no matter itu2019s full load or initial delta load, it always send me an error, u201CErrors occurred during the extractionu201D.
I had some debug, and found that there is no value for i_isource when my function module is called. Therefore it raised the exception.
But I do not have the chance to debug my code for the delta logic, can somebody help to check?
I also check the entries in ROOSOURCE,
For my datasource ZTRNREC_FM_DELTA, The DELTA value is u2018AIEu2019, and extraction method is u2018F2u2019, should I change them to DELTA= u2018Du2019 and extraction method to u2018F1u2019? Where to change?
FUNCTION ZRSAX_TRAININGREC_DELTA.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SBIWA_S_INTERFACE-REQUNR
*" VALUE(I_ISOURCE) TYPE SBIWA_S_INTERFACE-ISOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SBIWA_S_INTERFACE-INITFLAG OPTIONAL
*" VALUE(I_UPDMODE) TYPE SBIWA_S_INTERFACE-UPDMODE OPTIONAL
*" VALUE(I_DATAPAKID) TYPE SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
*" VALUE(I_PRIVATE_MODE) OPTIONAL
*" VALUE(I_CALLMODE) LIKE ROARCHD200-CALLMODE OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" TABLES
*" I_T_SELECT TYPE SBIWA_T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SBIWA_T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZTRN_REC_TIME OPTIONAL
*" E_T_SOURCE_STRUCTURE_NAME OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
The input parameter I_DATAPAKID is not supported yet !
Example: InfoSource containing TADIR objects
Auxiliary Selection criteria structure
DATA: l_s_select TYPE sbiwa_s_select.
Maximum number of lines for DB table
STATICS: l_maxsize TYPE sbiwa_s_interface-maxsize,
S_S_IF TYPE SRSC_S_IF_SIMPLE,
S_COUNTER_DATAPAKID LIKE SY-TABIX.
Parameter I_PRIVATE_MODE:
Some applications might want to use this function module for other
purposes as well (e.g. data supply for OLTP reporting tools). If the
processing logic has to be different in this case, use the optional
parameter I_PRIVATE_MODE (not supplied by BIW !) to distinguish
between BIW calls (I_PRIVATE_MODE = SPACE) and other calls
(I_PRIVATE_MODE = X).
If the message handling has to be different as well, define Your own
messaging macro which interprets parameter I_PRIVATE_MODE. When
called by BIW, it should use the LOG_WRITE macro, otherwise do what
You want.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF i_initflag = sbiwa_c_flag_on.
Initialization: check input parameters
buffer input parameters
prepare data selection
The input parameter I_DATAPAKID is not supported yet !
Invalid second initialization call -> error exit
IF NOT g_flag_interface_initialized IS INITIAL.
IF 1 = 2. MESSAGE e008(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'008' "message number
' ' "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDIF.
Check InfoSource validity
CASE i_isource.
WHEN 'ZTRNREC_FM_DELTA'.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'009' "message number
i_isource "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
Check for supported update mode
CASE i_updmode.
WHEN 'F'.
WHEN 'D'.
WHEN 'R'.
WHEN OTHERS.
IF 1 = 2. MESSAGE e011(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'011' "message number
i_updmode "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
Check for obligatory selection criteria
APPEND LINES OF i_t_select TO g_t_select.
Fill parameter buffer for data extraction calls
g_s_interface-requnr = i_requnr.
g_s_interface-isource = i_isource.
g_s_interface-maxsize = i_maxsize.
g_s_interface-initflag = i_initflag.
g_s_interface-updmode = i_updmode.
g_s_interface-datapakid = i_datapakid.
g_flag_interface_initialized = sbiwa_c_flag_on.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF i_t_fields TO g_t_segfields.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
LOOP AT G_T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'ZTIMESTAMP'.
ENDLOOP.
IF G_COUNTER_DATAPAKID = 0.
IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
OPEN CURSOR WITH HOLD G_CURSOR FOR
SELECT (g_t_fields)
FROM ZTRN_REC_TIME.
ELSE.
OPEN CURSOR WITH HOLD G_CURSOR FOR
SELECT (g_t_fields)
FROM ZTRN_REC_TIME
WHERE ZTIMESTAMP >= L_S_SELECT-LOW
AND ZTIMESTAMP <= L_S_SELECT-HIGH.
ENDIF.
ENDIF.
FETCH NEXT CURSOR G_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0.
CLOSE CURSOR G_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF.
ENDFUNCTION.
I found some similar issue in this forum by link
Generic Extractor Delta Function Module code, but still I could not get clear answer.
Can you please help me:
1) why there is no value for i_source , how to fix it?
2) For the delta logic for ztimestemp, is it correct?
3) Need I modify the entries in ROOSOURCE ?
Thanks a lot !!!Hello Andre,
Thanks a lot for your help. I did some change , but still does not work. Could you please help check.
Now the source code are the following, It's based on the RSAX_BIW_GET_DATA_SIMPLE, as you confirm that this also supply the update mode (full, initial delta, delta).
FUNCTION RSAX_BIW_GET_DATA_TRAININGREC1.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZTRN_REC_TIME OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SRSC_S_SELECT.
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
cursor
S_CURSOR TYPE CURSOR.
Select ranges
RANGES:
L_R_ZTIMESTAMP FOR ZTRN_REC_TIME-ZTIMESTAMP.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZTRNREC_FM'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
LOG_WRITE 'E' "message type
'R3' "message class
'009' "message number
I_DSOURCE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
First data package -> OPEN CURSOR
IF S_COUNTER_DATAPAKID = 0.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'ZTIMESTAMP'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_ZTIMESTAMP.
APPEND L_R_ZTIMESTAMP.
ENDLOOP.
Determine number of database records to be read per FETCH statement
from input parameter I_MAXSIZE. If there is a one to one relation
between DataSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT (S_S_IF-T_FIELDS)
FROM ZTRN_REC_TIME.
ELSE.
OPEN CURSOR WITH HOLD G_CURSOR FOR
SELECT (S_S_IF-T_FIELDS)
FROM ZTRN_REC_TIME
WHERE ZTIMESTAMP >= L_S_SELECT-LOW
AND ZTIMESTAMP <= L_S_SELECT-HIGH.
ENDIF.
ENDIF. "First data package ?
Fetch records into interface table.
named E_T_'Name of extract structure'.
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0.
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION.
I think it already includes the important statements you suggested.
I test this FM in RSA3, for the Full load mode, it works fine. Also if I checked the debug mode in execution , it will stop in the code and let me debug.
But when I choose other mode, like 'initializion of the delta transfer' or simulation of initial delta, I always get error 'error occurs during the extraction' .. even I choose debug mode, but it could not enter the code for debug..
Till now I did not see any parameter or value for the upload mode..
Another questions is that, in RSO2, I define Ztimestamp as my delta field.. But , can I add other field as selection condition in the datasource definition, and has its range table in this function module ?
Should I change the entries in ROOSOURCE for this datasource ??
Please let me know your feedback, do you have some concret example for generic delta extraction ?
Thanks a lot ! -
Short dump in r/3 in delta extraction
Hi all,
Today we got short dump in R/3 for delta extraction of data source
2LIS_13_VDITM.We want these data to do month end analysis.
I have tried to run extraction checker (rsa3) still it gives me short
dump for the same.
SAP r/3 4.6c
and bw 3.5
Regards,
Viren.Hi,
please paste some more info about the dump...
Olivier. -
Delta Extraction Using Function Module ( Customization )
Dear Experts,
I want a sample code for Delta Extraction using Function Module ( If it is customized already working code very helpful ), I have already created Function Module but Full update is happening. If I give delta update again it is retrieving all records. It is very urgent, if you have please send me to the following mail ID.
[email protected]
Best Regards,
SGK.Hi SGK,
I've done this for a delta based on a timestamp and it's actually pretty easy. The basic steps are:
1) Create an extract structure in SE11. Make sure the structure has a date or timestamp field in it that you can use for delta. You'll need to include the field twice if you also want to extract it to BW/BI since once it's chosen as the delta field then it will be hidden in the interface.
2) Create the extractor function module in SE37. You can use RSAX_BIW_GET_DATA_SIMPLE as a template. Make sure your logic restricts the data it retrieves according to the selections that are passed in I_T_SELECT, including restrictions on the delta field.
3) Create a generic DataSource in RSO2. Click Extraction by FM then fill in your extract structure and function module. Click Generic Delta and pick your delta field and the appropriate radio button (time stamp or calendar day). If your delta field is a timestamp field then be sure to set the upper and lower safety limits to -86400 and 86400 respectively. This might not be necessary on your version of SAPI but on mine there is a bug where it doesn't translate between system time and UTC (GMT) correctly so this was necessary.
You don't need to program any special delta handling logic in your function module as long as you restrict the data you retrieve based on the delta field (I_T_SELECT). This is because the SAPI takes care of catching the init, delta and repeat requests, translating them to the appropriate delta field values, and then passing them to your function module as if it was a full extraction for a specific date or timestamp range.
Hope this helps!
Jason -
Problems with Delta Extraction for 0CRM_OPPT_H (no data found)
Hi,
I've some problems with the Delta Extraction of the Infosource 0crm_oppt_h (CRM Opportunities Header). After initialization I get no delta data from the CRM system.
What I already did:
Activated 0crm_oppt_h Data Source (checked functionality with rsa3)
Started Info Package (Init) on BW side (worked fine)
Checked the status of the Data Source on the CRM system using BWA7 ("initial upload" is unmarked; "delta active" is marked and what makes me worry is that the column "Queue exists" in <i>unmarked</i>...)
If I change anything (like Phase, Expected Sales Vol.) in the opportunity, the Delta Extraction get no changes.
Could You help me out, please?
Best regards,
Markus Svechi Markus,
try to check oss note 788172
Release Status Released for Customer
Released on 23.03.2005
Priority Correction with high priority
Category Program error
Symptom
No data exists in delta extraction from the CRM server to the BW system for business transactions, if parallel processing is applied as per note 639072. But Data is extracted if parallel processing is switched off.ie. when BWA_NUMBER_OFF_PROCESSES is set to 1,there is data during delta. This applies to the following DataSources:
0BBP_TD_CONTR_1
0CRM_COMPLAINTS_I
0CRM_LEAD_ATTR
0CRM_LEAD_H
0CRM_LEAD_I
0CRM_OPPT_ATTR
0CRM_OPPT_H
0CRM_OPP T_I
0CRM_QUOTATION_I
0CRM_QUOTA_ORDER_I
0CRM_SALES_ACT_1
0CRM_SALES_CONTR_I
0CRM_SALES_ORDER_I
0CRM_SRV_CODES
0 CRM_SRV_CONFIRM_H
0CRM_SRV_CONFIRM_I
0CRM_SRV_CONTRACT_H
0CRM_SRV_PROCESS_H
0CRM_SRV_PROCESS_I
Other terms
DataSources, BWA, initial extraction, delta init, parallel processing, no data in delta.
Reason and Prerequisites
There is an update on the generated delta table which causes data corruption in running delta initializations as the changed delta sets will be deleted with every further update on documents. An open cursor statement is there without fetch data in SMOX3_GET_DATA.
Solution
The problem is solved with the attached corrections.After applying the corrections a new initialization of the affected datasources is necessary. -
Repair request for Delta load? Orders missing in Billing line Items
Hi
I am using BW 3.5; Some Orders are missing in BW for Billing line item reports (2LIS_13_VDITM) according to the users.
The report is based on Cube directly, ODS is not used. I planned to do a repair full request for this month's data so as to get the missing orders.
Could you please advice me on correct procedure to do that? Delta loads runs every day and todays delta is completed.
Thanks and BR
P.BWhile it's usually recommended to execute setups during "quiet time", it's not required. Especially in this case. Since you're going to be restricting the setup to only extract a range of Billing Documents that are representative of the dates of data missing (or purely the identified missing documents), there is no need to wait for "quiet time" because you'll pick up the data either in your Full Repair extract or in the delta extract. Depending on how the target InfoProvider for this data is setup (cumulative v. non-cumulative), you may have to look out for duplicate data.
My recommendation would be to run your setup for only those documents that have been identified as missing. That way, you're limiting the amount of data that's required to be extracted to the setup table and then into BW, but also will remove any risk of duplicate data in your target InfoProviders. -
Records missed from DELTA for which changes made only in enhanced fields
Dear Friends,
I have enhanced a feild in standard extractor 0UCINSTALLAH_ATTR_2 by adding a z-field in append structure and writing corresponding code in customer exit. In RSA3 also I'm able to see the data getting reflected for enhanced z-fields but when I'm pulling delta those records are not getting extracted for which changes have been made only in Z-FIELDS in R/3 side.
i.e. if I do not make any changes in std fields of the std. extractor and only change z-fields this record is missed from delta data pulled. Please help urgently.
Regards,
Amit SrivastavaHi ,
Some times it happens that the system is not able to capture the delta based on the changes made to the Z - fields :
You can think of the following options :
1. You can write a code in the user exit for this thing so that the changes are captured(Not sure how it is done, however had read that it is possible. You may have to explore the same)
2. Try to change any of the standard fields used for delta along with the custom fields so that the changes get captured.
3. Extract a full load instead of a delta load. This may depend on various parameters
I hope you have already checked the extraction.
Hope the above points help.
Regards,
Adarsh Mhatre -
* Delta Extraction for 0ASSET_ATTR_TEXT
Hi All,
Can someone help me for the delta extraction for 0ASSET_ATTR_TEXT datasource.
Steps performed as per SAP Help
1. Activated the BADI
2. Ran the initialization without datatransfer infopackage.
3. Created new records in R/3 side
4. I can see the newly created records in the Table : BWFIAA_AEDAT_AS
5. Ran the delta infopackage ( no records are getting updated)
When i check in RSA3 with the delta update, its giving an error.
Please guide me if i am missing any steps
Regards
RamHi Ram,
Check this note,
Note 816560 - DeltaInit w/o data transfer does not createe time stamp
https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=816560
Hope this helps....
Maybe you are looking for
-
Windows 8 upgrade - factory reset problem
Hi, one question. I have upgraded my Lenovo U310 from Windows 7 to Windows 8. I chose only uprade, so my folders stay. But now, I want to do the clean instalation, I bought backup DVD's from Microsoft. It doesn't work and it say's : some system infor
-
Bex reporting (how to add a column/table by using macros)
Hai, can anyone help me in this reagrd.. iam trying to enhance a query.. the requirement is to add a separate column/table to the right side of the result area..say 0country. the affected materials should display only once in the country coloumn/tabl
-
Cisco ISE Active Endpoint Usage Reset
Hi, I have a Cisco ISE running version 1.1 and I was wondering if it may be possible to reset the license usage/active endpoint shown on the dashboard? This was noticed after a restore of ISE due to replacement of hardware and I noticed that the lice
-
Large number of records in Sender JDBC
Hi Guys, I have a requirement where a legacy database sends data close to 4000 records (via a script) to a MS access database. of the four thousand, the script is such that it fetches data upto 2 yrs old..where as when the interface runs in XI it wil
-
Why can´t I pass videos to the timeline?
I was working fine, and suddenly I couldn´t pass my videos to the timeline, when I try to do it there´s a hand and a circle like indicating it is blocked or something. Why is this? How can I put it off?