Urgent: Problems in Generic Deltas by Function Module
Hi BW Experts,
My requirement is to extract text from CRM to BW using Zfunction module, copy of RSAX_BIW_GET_SIMPLE_DATA
which works fine for full loads but the problem arises only when i go for generic deltas. My code in FM for Deltas is:
LOOP AT s_s_if-t_select INTO l_s_select.
CASE l_s_select-fieldnm.
WHEN 'ZDATE'.
s_date_from = l_s_select-low.
s_date_to = l_s_select-high.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
IF s_date_from IS INITIAL.
s_date_from = '20060401'.
ENDIF.
IF s_date_to IS INITIAL.
s_date_to = '99991231'.
ENDIF.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT * FROM STXH
WHERE TDOBJECT = 'CRM_ORDERH'
AND TDID = 'A002'
AND TDSPRAS = sy-langu
and TDLDATE between s_date_from and s_date_to
or tdfdate between s_date_from and s_date_to.
ENDIF.
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE wa_stxh
PACKAGE SIZE S_S_IF-MAXSIZE.
TDFDATE is creation date and TDLDATE is changed on
My extract structure contains Zdate(TDLDATE), Ztext1,2,3, Key field and langu in RSO2 I have selected calday in generic delta and Zdate as field Nm and upper limit as 1 and lower limit as space in settings and new status for changed records button.
Did I missed something because when i check in RSA7 i didnot see any changed records under totals column and i tried to load without it into BW than i didnot received single record evenafter changes.Would anyone suggest me the good solution for it I appreciate it in advance. I have seen lot of posts in SDN but I didnot find this type of secenario anywhere.
Thanks in advance
Regards
Kishore
Kishore,
go through the thread... which i provided for Generic DS using function for CRM Texts.
Re: Urgent: Extraction through function module
Any questions please let me know. If you have any questions update the thread with your mail id.
Replace the code with ...
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'ZDATE'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_TDLDATE.
APPEND L_R_TDLDATE.
ENDLOOP.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT * FROM STXH
WHERE TDOBJECT = <Text Object>
AND TDID = <Text ID >
AND TDSPRAS = sy-langu
AND (TDLDATE IN L_R_TDLDATE
or TDFDATE IN L_R_TDLDATE).
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 wa_stxh
PACKAGE SIZE S_S_IF-MAXSIZE.
L_R_TDLDATE will be calculted by the system. Internally, system will save the Last Delta date(you need to enable this field for Generic delta).
all the best.
Regards,
Nagesh Ganisetti.
Similar Messages
-
Urgent: Problems in Generic Extraction by Function Module
Hi BW Gurus,
I am new to SDN and also new to generic extraction using function module. My requirement is to extract long text(142 char) from CRM to BW as the text is not stored in database table I used function module read_text with in another ZXXX function module copy of (RSAX_BIW_GET_DATA_SIMPLE). In my extract structure I used GUID(char,32), Langu, long text(142 char) and 2 placeholders. Text can be extracted by passing STXH table fields(Tdname, Tdid, Tdobject, Tdspars) to read_text as parameters and i also need to use CRMD_ORDERADM_H field GUID(32 char) to compare 1st 32 chars of tdname(70 char) with Guid to select Guids and loop thru this Guids and for each Guid i need to append lines of text to e_t_data but as i donot know ABAP i unable to write the code for this. Through my friends help i wrote code when i check in RSA3 it is displaying the text but when i replicate into BW and load into data target in monitor the status is red with records initially but afterwards it will be red status again with 0 from 0 records for initial load again.when i check on job logs the errors i have are:
The background job has created a job log file of 2Gb size and it is currently on a infinite loop writing entries into the SAP System Log that it cannot write to the Job log file due to Error 22 for write/read access to a file this is because of the datasource i have created. Please find my Function module and if anyone would please correct FM and send me that will be really great.I appreciate it in advance.
MY Function Module is:
FUNCTION Z_CRMORDERH_STR_TXT.
""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 YCRM_TEXT_STR OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
***" EXCEPTIONS NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Tables: CRMD_ORDERADM_H, STXH.
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.
data: i_crmtext type standard table of TLINE .
types: begin of xsreph ,
GUID type CRMD_ORDERADM_H-guid,
end of xsreph.
data: i_guid type standard table of xsreph.
data: I_TEXT type STXH-TDNAME.
data: xempl like YCRM_TEXT_STR occurs 0 with header line.
data: t_tab like dd03l-tabname.
Select ranges
ranges: l_r_guid for CRMD_ORDERADM_H-guid.
l_r_connid for sflight-connid.
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 'yCRM_TEXT'. " for S_SREPH1
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.
we will do our selection based on what is in the p table for the
infoobject
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.
Fill range tables BW will only pass down simple selection criteria
of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'GUID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_GUID.
APPEND L_R_GUID.
ENDLOOP.
case i_dsource.
when 'YCRM_TEXT'. " for S_SREPH1
t_tab = 'CRMD_ORDERADM_H'.
endcase.
select GUID
from (t_tab)
into table i_guid where PROCESS_TYPE = 'ZACI' and ( OBJECT_ID < '0000000042').
select tdname from stxh into i_text where tdobject = 'TEXT'.
if sy-subrc ne 0.
message e009(r3).
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
'No master data found'. "message variable 2
raise error_passed_to_mess_handler.
endif.
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.
open cursor with hold s_cursor for
select (s_s_if-t_fields) from CRMD_ORDERADM_H
where GUID in L_R_GUID .
ENDIF.
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.
as we are doing this only once can use the select statement.
***data: crmtext like tline occurs 0 with header line.
**data: i_crmtext type standard table of TLINE.
**data: i_guid type standard table of xsreph.
data: l_guid type THEAD-TDNAME.
data: st_guid type xsreph.
data: st_crmtext type TLINE.
data: lan type THEAD-TDSPRAS.
lan = 'E'.
loop at i_guid into st_guid.
l_guid = st_guid-guid.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'A002'
LANGUAGE = lan
NAME = l_guid
OBJECT = 'CRM_ORDERH'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
LINES = i_crmtext.
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8
e_t_data-guid = l_guid.
loop at i_crmtext into st_crmtext.
move lan to e_t_data-langu.
move st_crmtext-tdline to e_t_data-description.
append e_t_data.
endif.
endloop.
clear: st_guid,l_guid.
refresh: i_crmtext.
endloop.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
endif.
ENDFUNCTION.
please Gurus as I donot know ABAP i appreciate if anyone would write a FM based on requirement and send me that will be really great this is my request. I gurantee of award points for good answers.
Regards
KishoreHi,
The statement <b>RAISE NO_MORE_DATA</b> should be active (uncommented) in your code. Otherwise, the infinte loop occurs.
See also, the Siggi's blog:
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
BTW, was it your thread here:
Re: Urgent: problems in extracting Long Text
Best regards,
Eugene -
Generic delta with function module
Hi Gurus,
Is it possible to create a generic DataSource with delta support using function module following the queue delta mechanism (u can get some function moduel in MCEX function group, and check the outbound delta queue before and after update in transaction smq1.
I can store the delta data using qRFC and collective update mechanism. but I don't know how to create a generic data with delta and how to attach a rfc destination (& logical system) to the data source. The Source system information is stored in the table "ROOSGEN". Is there any configuration setting required to do the same.
Regards,
JugalJugal,
What I understand you to be asking is if it is possible to create a generic delta extractor which uses the delta queue. If this indeed is your question the answer is yes.
First you need to create your data source so it is visible via tx RSA5 and need to make sure that the delta type (ie ABR, AIM)is set appropriately for the datasource.
The issue however is determining from where you will associate your delta hook (when will you write to the queue)? I have in the past utilized BTE's, Business Transaction Events to write information out to the delta queue, you can see a list of available BTE's in your system via tx FINF.
Once you find a place to write your deltas from you call the below FM with the appropriate datasource.
RSC1_TRFC_QUEUE_WRITE.
Once you have done this the standard BW extractor for deltas will pull the information from the delta queue. But from what I understand you just want to know how to associate the data with the delta and that is the FM listed above.
Hope this helps,
Cheers,
Scott
> Hi Gurus,
>
> Is it possible to create a generic DataSource with
> delta support using function module following the
> queue delta mechanism (u can get some function moduel
> in MCEX function group, and check the outbound delta
> queue before and after update in transaction smq1.
> I can store the delta data using qRFC and collective
> update mechanism. but I don't know how to create a
> generic data with delta and how to attach a rfc
> destination (& logical system) to the data source.
> The Source system information is stored in the table
> "ROOSGEN". Is there any configuration setting
> required to do the same.
>
> Regards,
> Jugal -
Generic delta using function module with two fields AEDAT AND ERDAT
Hi,
i have scenario that i have to create a generic data source having delta using funcation module and the delta speci fields are AEDAT AND ERDAT . Is there possibility with out using these two fields ( i mean AEDAT AND ERDAT) in the extract structure can i create the data source . and provide sample code for me . it is very urgent.
waiting for the reply,
sri.cHi Sri,
here some coding, I hope this helps!
first, get the delta-field
LOOP AT s_s_if-t_select INTO l_s_select.
CASE l_s_select-fieldnm.
WHEN 'ZDATE'.
MOVE-CORRESPONDING l_s_select TO r_date.
IF r_date-high IS INITIAL OR r_date-high = space.
r_date-high = '9991231'.
ENDIF.
APPEND r_date.
ENDCASE.
ENDLOOP.
Cursor öffnen
OPEN CURSOR WITH HOLD s_cursor FOR
SELECT * FROM
WHERE ....
AND erdat in r_date
AND aedat IN r_date.
FETCH NEXT CURSOR s_cursor INTO CORRESPONDING FIELDS OF table e_t_data package size s_s_if-maxsize.
regards
Siggi
PS: Note that this coding only works for a very straight forward extraction.
Message was edited by: Siegfried Szameitat -
Error in Generic Delta using Function Module
Hi All,
I have created one function module by copying the RSAX_BIW_GET_DATA_SIMPLE module.
Now when i am giving this in RSO2 Tcode and trying to save it its giving error that
Required Table does not Exist..
Please Help.Hi
Look at below links
Re: Generic function module for delta - which FM ?
http://www.jt77.com/business-warehouse/work-flow-03485.html -
Doubt about generic delta using function module.
Hi,
I have the following scenario.
I have to create a generic data source having delta using funcation module.
The full load works fine, but the delta load not.
I don't know, if always the field that was specified as a delta, must be part of the cursor in this case AFRU~LAEDA
This is my cursor:
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT AFIHAUFNR AFIHADDAT AFIHIPHAS AFIHILART AFIH~AKKNZ
AFIHPLKNZ AFIHILOAN AFIHIWERK AS ZPLANPLANT AFIHEQUNR
ILOA~TPLNR
AFKOGSTRP AFKOGLTRP AFKOGSTRS AFKOGLTRS AFKOGSTRI AFKOGETRI AFKO~FTRMI
AUFKAEDAT AUFKERDAT AUFKWERKS AUFKKOSTL AUFKKOKRS AUFKSOWRK AUFK~OBJNR
AUFKAUART AUFKVAPLZ
CRHD~ARBPL
TKA01~WAERS AS ZCOSTP_ML_UM
FROM AFIH
INNER JOIN AFKO ON AFIHAUFNR = AFKOAUFNR
LEFT OUTER JOIN ILOA ON ILOAILOAN = AFIHILOAN
INNER JOIN AUFK ON AFIHAUFNR = AUFKAUFNR
INNER JOIN TKA01 ON AUFKKOKRS = TKA01KOKRS
LEFT OUTER JOIN CRHD ON CRHDOBJID = AFIHGEWRK
WHERE AFIH~AUFNR in L_R_AUFNR
AND AFIH~EQUNR in L_R_EQUNR
GROUP BY AFIHAUFNR AFIHADDAT AFIHIPHAS AFIHILART AFIHAKKNZ AFIHPLKNZ AFIH~ILOAN
AFIHIWERK AFIHEQUNR
ILOA~TPLNR
AFKOGSTRP AFKOGLTRP AFKOGSTRS AFKOGLTRS AFKOGSTRI AFKOGETRI AFKO~FTRMI
AUFKAEDAT AUFKERDAT AUFKWERKS AUFKKOSTL AUFKKOKRS AUFKSOWRK
AUFKOBJNR AUFKAUART AUFK~VAPLZ
CRHD~ARBPL
TKA01~WAERS.
For each aufnr I must go to the afru table and totalize the real work (IWNW) and real duration (IDAUR) when AFRUSTZHL > 0 and totalize too when AFRUSTZHL = 0 but with sign to negative.
This is my external query, i need that the field AFRU~LAEDA must be taken as delta field:
SELECT AFRUERSDA AFRULAEDA AFRUSTZHL SUM( AFRUISMNW ) AS ZTRA_REAL AFRUISMNE AS ISMNE SUM( AFRUIDAUR ) AS ZDURAC_REAL AFRU~IDAUE AS IDAUE
INTO CORRESPONDING FIELDS OF TABLE WT_AFRU_OM
FROM AFRU
WHERE AUFNR = WT_ZCUROM-AUFNR
AND AFRU~STZHL = 0
GROUP BY AFRUERSDA AFRULAEDA AFRUSTZHL AFRUAUFNR AFRUISMNE AFRUIDAUE AFRUISMNW AFRUIDAUR
order by AFRUERSDA AFRULAEDA AFRUSTZHL AFRUIDAUE AFRU~ISMNE.
IF sy-subrc = 0.
CLEAR WT_AFRU_OM2.
REFRESH WT_AFRU_OM2.
SELECT AFRUERSDA AFRULAEDA AFRUSTZHL SUM( AFRUISMNW ) AS ZTRA_REAL AFRUISMNE AS ISMNE SUM( AFRUIDAUR ) AS ZDURAC_REAL AFRU~IDAUE AS IDAUE
INTO CORRESPONDING FIELDS OF TABLE WT_AFRU_OM2
FROM AFRU
WHERE AUFNR = WT_ZCUROM-AUFNR
AND AFRU~STZHL > 0
GROUP BY AFRUERSDA AFRULAEDA AFRUSTZHL AFRUAUFNR AFRUISMNE AFRUIDAUE AFRUISMNW AFRUIDAUR
order by AFRUERSDA AFRULAEDA AFRUSTZHL AFRUIDAUE AFRU~ISMNE.
IF sy-subrc = 0.
LOOP AT WT_AFRU_OM2.
WT_AFRU_OM2-ZTRA_REAL = WT_AFRU_OM2-ZTRA_REAL * -1.
WT_AFRU_OM2-ZDURAC_REAL = WT_AFRU_OM2-ZDURAC_REAL * -1.
APPEND WT_AFRU_OM2 TO WT_AFRU_OM.
ENDLOOP.
ENDIF.
LOOP AT WT_AFRU_OM.
"fjro incluir el clear y el move
CLEAR WT_DATOS_OM.
MOVE-CORRESPONDING W_DATOS_BASE to WT_DATOS_OM.
MOVE-CORRESPONDING WT_AFRU_OM TO WT_DATOS_OM.
APPEND WT_DATOS_OM.
APPEND WT_DATOS_OM TO WT_ESTFIN_OM.
ENDLOOP.
ENDIF.
It's possible set the delta field in a external query of the cursor.
Best Regards
Ramon Sanchez
Edited by: RAMON SANCHEZ on Aug 20, 2010 2:46 PMHi Sri,
here some coding, I hope this helps!
first, get the delta-field
LOOP AT s_s_if-t_select INTO l_s_select.
CASE l_s_select-fieldnm.
WHEN 'ZDATE'.
MOVE-CORRESPONDING l_s_select TO r_date.
IF r_date-high IS INITIAL OR r_date-high = space.
r_date-high = '9991231'.
ENDIF.
APPEND r_date.
ENDCASE.
ENDLOOP.
Cursor öffnen
OPEN CURSOR WITH HOLD s_cursor FOR
SELECT * FROM
WHERE ....
AND erdat in r_date
AND aedat IN r_date.
FETCH NEXT CURSOR s_cursor INTO CORRESPONDING FIELDS OF table e_t_data package size s_s_if-maxsize.
regards
Siggi
PS: Note that this coding only works for a very straight forward extraction.
Message was edited by: Siegfried Szameitat -
Error occurred while loading Generic extraction using Function module
Hi all
I'm trying to do INIT for Generic Extractor using Function module, but i'm getting error as "Error occurred in the source system"
Error message from the source system
Diagnosis
An error occurred in the source system.
System Response
Caller 09 contains an error message.
Further analysis:
The error occurred in Extractor .
Refer to the error message.
Procedure
How you remove the error depends on the error message.
Note
If the source system is a Client Workstation, then it is possible that the file that you wanted to load was being edited at the time of the data request. Make sure that the file is in the specified directory, that it is not being processed at the moment, and restart the request.
Job terminated in source system --> Request set to red
Message no. RSM078
Can u help plz....Hi Vishnu
This are the Job log details i found in source system...Can u tell what whould be the problem?
Message
Job started
Step 001 started (program SBIE0001, variant &0000000002861, user ID
Asynchronous transmission of info IDoc 2 in task 0001 (0 parallel tasks)
DATASOURCE = ZYFI102
RLOGSYS =
REQUNR = REQU_D9Y4CZDQULRIHRRVU33KOLQZO
UPDMODE = D
LANGUAGES = *
Current Values for Selected Profile Parameters *
abap/heap_area_nondia......... 0 *
abap/heap_area_total.......... 10737418240 *
abap/heaplimit................ 40000000 *
zcsa/installed_languages...... DE *
zcsa/system_language.......... E *
ztta/max_memreq_MB............ 2047 *
ztta/roll_area................ 3000000 *
ztta/roll_extension........... 2000000000 *
No authorization for Acct type D
Job cancelled after system exception ERROR_MESSAGE
Thanks in advance
Edited by: MohanDP on Feb 25, 2011 11:58 AM
Edited by: MohanDP on Feb 25, 2011 12:01 PM -
Creating a Generic Datasource using Function Module
Hi Guru's
We are tryin to create a Generic datasource using function module, we have found few old how to guides for doing the same but it is not effective and need to be altered. Can anyone suggest me the latest step by step procedure to create the above, also if you have the how to guide kindly paste the link as it will be a great help at this point.
Thanks in advance
Regards
LiquidHi,
Please goto the Following links :-
PDF
1) http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c062a3a8-f44c-2c10-ccb8-9b88fbdcb008?quicklink=index&overridelayout=true
2) http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33?quicklink=index&overridelayout=true
SAP Forum
3) Re: DataSouce based on FM
4) http://forums.sdn.sap.com/post!reply.jspa?messageID=10050614
5) https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33
6) Re: Generic datasource with functional module
7) Generic Extractor (FM based) - Delta Enabled
Regards
Obaid -
Problem with Generic datasource from function
I developed generic datasource from function module.
But I have problem with the select options.
First one is order number OBJECT_ID type char 10. When I input Object_ID = 45755 , no data selected.
When input 0000045755, one data record selected.
But I called functiion CONVERSION_EXIT_ALPHA_INPUT to conevet the input data. And I found 45755 was converted to 0000045755, but no record selected.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'OBJECT_ID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_OBJECT_ID.
APPEND L_R_OBJECT_ID.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_R_OBJECT_ID-high
IMPORTING
OUTPUT = L_R_OBJECT_ID-high
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_R_OBJECT_ID-low
IMPORTING
OUTPUT = L_R_OBJECT_ID-low
ENDLOOP.
Another problem is CREATED_AT, which type is DEC 15, how could I handle it ? input is yyyymmdd, I tried to add '000000', but can't select any data.
Thanks for any help.code is :
FUNCTION ZACTIVITY_PLAN_PARTNER.
""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 ZACTIVITY_PLAN_PARTNER OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Example: DataSource for table SFLIGHT
TABLES: CRMD_ORDERADM_H.
Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SRSC_S_SELECT.
DATA: BEGIN OF ACTIVITY,
OBJECT_ID type CRMT_OBJECT_ID_DB,
PROCESS_TYPE type CRMT_PROCESS_TYPE_DB,
OBJECT_TYPE type CRMT_SUBOBJECT_CATEGORY_DB,
CREATED_BY type CRMT_CREATED_BY,
CREATED_AT type CRMT_CREATED_AT,
END OF ACTIVITY.
DATA: ZACTIVITY LIKE TABLE OF ACTIVITY WITH HEADER LINE,
Zorder LIKE TABLE OF ZORDER_S WITH HEADER LINE,
d_start type c length 15,
d_end type c length 15
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_OBJECT_ID FOR CRMD_ORDERADM_H-OBJECT_ID,
L_R_CREATED_AT FOR CRMD_ORDERADM_H-CREATED_AT,
L_R_date for ZACTIVITY_PLAN_PARTNER-ZPLAN_DAT.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZACTIVITY_PLAN_PARTNER'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
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.
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
ELSE. "Initialization mode or data extraction ?
First data package -> OPEN CURSOR
IF S_COUNTER_DATAPAKID = 0.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'OBJECT_ID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_OBJECT_ID.
APPEND L_R_OBJECT_ID.
ENDLOOP.
if L_R_OBJECT_ID-option is initial.
L_R_OBJECT_ID-option = 'EQ'.
L_R_OBJECT_ID-sign ='I'.
endif.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_R_OBJECT_ID-high
IMPORTING
OUTPUT = L_R_OBJECT_ID-high
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_R_OBJECT_ID-low
IMPORTING
OUTPUT = L_R_OBJECT_ID-low
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CREATED_AT'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_CREATED_AT.
APPEND L_R_CREATED_AT.
ENDLOOP.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT OBJECT_ID FROM CRMD_ORDERADM_H
WHERE OBJECT_ID IN L_R_OBJECT_ID
AND CREATED_AT IN L_R_CREATED_AT and
PROCESS_TYPE EQ 'Z220'.
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. -
Generic Datasource by Function Module.
Hi there,
Our ABAP guy is building a function module to bring data to BW by using Generic DataSource. My qtn is how we are going to handle delta?
Can we use the delta provided in Rso2 or we have to hard code it in the function module?
Your prompt help will be highly appreciated.
Kara.Hi,
Just Go through these.
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
Hope it helps.
Thanks,
-Vijay -
Generic DataSource on Function Module - Query
Hi All,
We have a requirement wherin we have to pull data from MARM (Material UOM fields) table. This table has some 1,130,000 records. Since this table doesn't have a Last Changed on or Created on field we are not able to create a Generic Delta on the table itself.
We have come to know that in MM02, we can change the Unit of Measure fields for material. When we update in MM02, both MARA and MARM table gets changed. MARA will be updated with the last changed date.
So we are thinking of creating a Generic DataSource on Function module so that we can perform the delta on Last changed or Created on field of MARA.
I have a doubt about creating the function module. How should we achieve the initial load (Getting all the material and it's UOM to BW) and then Delta loads through the function module?
Does the first load needs to be or should be a full load?
If someone can tell me the steps that should be followed, it would be very helpful
Please let me know your suggesstion.
Regards,
Vivek Das GuptaHi
Could u try creating a view based Datasource.
Also u can do a full load in parallel by creating 4-5 Infopackages. After which a Init without data transfer can be done.
Hope this helps.
Reg
Aparna -
Reg. Generic delta using fun module
Hello Experts,
I am creating function module for generic delta (both Full, Delta) using RSAX_BIW_GET DATASIMPLE. My generic field is AEDAT.
When I check this function module, there is no logic to maintain Delta load excapt Full. Where as this Delta functionality is available in another function module RSAX_BIW_GET_DATA. Now my question is:
Can we use RSAX_BIW_GET DATASIMPLE for Delta load also?
If yes, How to maintain delta based on AEDAT field?
Do we need to maintain this Delta specific field AEDAT in Extract structure?
Can anybody please clarify my doubts.....
Thanks in advance,
Zak.Hi,
Please check the blog:
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
Also check :
Re: Delta update - rso2
-Vikram -
How to create a generic datasource from function module?
Dear experts,
I have created a generic datasource from function module. For this extrator, I created a function module and a structure.
I have now some difficulties to continue:
In this function module, i get data from different transparent tables. Then i put these data into an internal table.
I just don't know what is the relatioin between the structure i defined and this internal table.
I should make "iTab structure AA" in the source code?
ThanksHi..
check this
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
Generic Extraction via Function Module
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
1. Create s structure with the fields that you need from the 4 tables . Activate.
2. Goto SE 80 Select The Function Group , Copy , Select the Function module
" RSAX_BIW_GET_DATA_SIMPLE " and Give a New name starting With
Y or Z .
3. SE37 ->Your Function module name -> Change , In table tab give your structure
name by deleting the associated type given in " XXXX " .
4. Now select source code and Do the coding . Give Data source name in Coding .
In your case you have to take data from more that 1 table .
5. Activate the Function Group .
6. In RSO2 Create the Data source , Give the Function Module Name , And Save.
7. RSA3 -> Give data source name and Check for the Records .
Creation of custom datasource. (Using function module)
.Create a function group .
. Structure ZTXXXX
Create function module (i.e. ZTESTXXX) .
. Create the data source using transaction (RSO2).
. If structure exists for the table parameter of your function module then ok else create a structure for the table parameter .
Test the datasource in R/3 using transaction RSA3.
Transfer the data source to BW System and replicate it in the BW-System.
Message was edited by:
shiv -
Generic Extraction - Using Function Modules
Hi Friends,
Can you pl let me know the step by step process for creating generic extraction using function module?
Thanks in Advance.
Regards,
Ari.
Please search the forum before posting a thread
Edited by: Pravender on Aug 5, 2010 7:31 PMHi,
Plz find this doc.
http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33.
And go this link...
http://www.sdn.sap.com/irj/scn/advancedsearch?query=genericextractionwithfunctionmadule
Regards.....KP
Edited by: kundan.sap on Aug 5, 2010 4:35 PM -
Create a generic extractor using Function module, what steps must I follow
Hello gurus team
I need to Create a generic extractor using Function module, what steps must I follow?
Just I have a function module not estructures or something, only the program.... and I have intented to do it in rso2 using the fm option, but give an error... somebody can helpme???
BRHi,
Generic Extraction via Function Module
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33
http://help.sap.com/saphelp_nw04/helpdata/en/86/1c8c3e94243446e10000000a114084/frameset.htm
Thanks,
JituK
Maybe you are looking for
-
Different totals based on dates (month vs date range)
I know I've seen this before, but I can't find the thread. I have a column in a fact table for price. When I add price and the month (eg April 2012) from the time dimension, it totals one number, but when I remove the month, and add a date range (4/1
-
My laptop hard disk died and had to be replaced recently. I could restart all programs from the CS4 disk with the exception of Acrobat Pro 9? Can anyone advise if there is a different process to restarting Acrobat Pro 9, as it is odd considering ther
-
Why do the Tool Bars not show when opening new window?
Here is a short jing video that clearly shows the issue http://screencast.com/t/epteOKIy
-
When we are downloading a large file 100MB + with Internet Explorer the workstation will at some point report that the connection was reset by the server and we lose the download. This is kind of random and I've only seen it in IE. I have and use Fir
-
ABAP STACK and JAVA STACK certificates
Hi Fiends, I have requirement in which I want to use HTTP adapter to send message and apply security certificate. I got from sdn that if I wan to use http adapter with certificate than I have to install certificates in ABAP stack. My problem is I had