‎2007 Oct 17 4:13 PM
Hello Friend. Thanks to SDN to get this FM created , but still i have some more issues. I copied the function module RSAX_BIW_GET_DATA_SIMPLE using SE80 TO Z_CUSTOMERB and also the Function Group I copied from RSAX TO ZCUSTB in SE80 ABAP area.
<b>Error in SE80 FOR Function Group ZCUSTB: Main program Z_CUSTOMERB does not begin with Function-Pool
please edit my code and let me know how to fix the code to include FUNCTION-POOL</b>
But when i go to se37 Activated the FM Z_CUSTOMER and check for any syntax error in FM source code it give no error. But when i run the function module using my datasource rsa3 or execute FM then i get the dump
dump reasons stated.
1. FM Z_CUSTOMER is not active and hence cannot be found during run time
2. Function Library contains incorrect entry for Z_CUSTOMERB
3. Function Module contains no Code even the FUNCTION ... ENDFUNCTION Missing.
I checked the code and no errors. Please suggest what should I change in FM Setting to fix the error. where is the function library
Please revise my code to make it work its very simple logic to populate the custom table se11 ZBW_SFLI001_DS to get the data fields from KNA1 and then fetch other fields from KNB1 where KNA1-KUNNR = KNB1 KUNNR.
Function Module Code
FUNCTION Z_CUSTOMERB.
*"----
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR OPTIONAL
*" 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 ZBW_SFLI001_DS OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
*"----
TABLES: KNA1, KNB1.
DATA: L_S_SELECT TYPE SRSC_S_SELECT.
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
S_COUNTER_DATAPAKID LIKE SY-TABIX,
S_CURSOR TYPE CURSOR.
RANGES: l_r_zcalweek FOR ZBW_SFLI001_DS-ZCALWEEK,
l_r_ZKUNNR FOR ZBW_SFLI001_DS-ZKUNNR.
RANGES: l_r_ERDAT FOR KNA1-ERDAT.
DATA: zweek LIKE ZBW_SFLI001_DS-ZCALWEEK.
DATA: ZKNA1 LIKE KNA1 OCCURS 0 WITH HEADER LINE.
DATA: ZKNB1 LIKE KNB1 OCCURS 0 WITH HEADER LINE.
DATA: zitab LIKE ZBW_SFLI001_DS OCCURS 0 WITH HEADER LINE.
IF I_INITFLAG = SBIWA_C_FLAG_ON.
CASE I_DSOURCE.
WHEN 'ZBW_SFLI001_DS'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
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.
s_s_if-requnr = I_REQUNR. "Step (B)
s_s_if-dsource = I_DSOURCE. "Step (B)
s_s_if-maxsize = I_MAXSIZE. "Step (B)
APPEND LINES OF I_T_FIELDS TO s_s_if-t_fields. "Step (B)
ELSE. "Initialization mode or data extraction ?
IF s_counter_datapakid = 0. "Step (C)
"Begin of Step (D)
LOOP AT s_s_if-t_select INTO l_s_select WHERE FIELDNM = 'ZCALWEEK'.
MOVE-CORRESPONDING l_s_select TO l_r_zcalweek.
APPEND l_r_zcalweek.
ENDLOOP.
LOOP AT s_s_if-t_select INTO l_s_select WHERE FIELDNM = 'ZKUNNR'.
MOVE-CORRESPONDING l_s_select TO l_r_ZKUNNR.
APPEND l_r_ZKUNNR.
ENDLOOP.
LOOP AT l_r_zcalweek.
CASE l_r_zcalweek-option.
WHEN 'EQ'.
CALL FUNCTION 'WEEK_GET_FIRST_DAY'
EXPORTING
WEEK = l_r_zcalweek-low
IMPORTING
DATE = l_r_ERDAT-low
EXCEPTIONS
WEEK_INVALID = 1
OTHERS = 2.
l_r_ERDAT-high = l_r_ERDAT-low + 7.
l_r_ERDAT-sign = 'I'.
l_r_ERDAT-option = 'BT'.
APPEND l_r_ERDAT.
when 'BT'.
zweek = l_r_zcalweek-low.
WHILE zweek <= l_r_zcalweek-high.
CALL FUNCTION 'WEEK_GET_FIRST_DAY'
EXPORTING
WEEK = zweek
IMPORTING
DATE = l_r_ERDAT-low
EXCEPTIONS
WEEK_INVALID = 1
OTHERS = 2.
l_r_ERDAT-high = l_r_ERDAT-low + 7.
l_r_ERDAT-sign = 'I'.
l_r_ERDAT-option = 'BT'.
APPEND l_r_ERDAT.
zweek = zweek + 1.
ENDWHILE.
ENDCASE.
ENDLOOP.
DELETE FROM ZBW_SFLI001_DS "Step (E)
WHERE ZREQUNR = s_s_if-requnr.
SELECT * FROM KNA1 "Step (F)
INTO TABLE ZKNA1
WHERE ERDAT IN l_r_ERDAT
AND KUNNR IN l_r_ZKUNNR.
SELECT * FROM KNB1 "Step (F)
INTO TABLE ZKNB1
FOR ALL ENTRIES IN ZKNA1
WHERE KUNNR = ZKNA1-KUNNR
AND ERDAT = ZKNA1-ERDAT.
LOOP AT ZKNA1.
zitab-zrequnr = s_s_if-requnr.
CALL FUNCTION 'DATE_GET_WEEK'
EXPORTING
DATE = ZKNA1-ERDAT
IMPORTING
WEEK = zitab-zcalweek
EXCEPTIONS
DATE_INVALID = 1
OTHERS = 2.
zitab-ZKUNNR = ZKNA1-KUNNR.
zitab-ZREGIO = ZKNA1-REGIO.
zitab-ZFAKSD = ZKNA1-FAKSD.
READ TABLE ZKNB1 WITH KEY KUNNR = ZKNA1-KUNNR
ERDAT = zKNA1-ERDAT.
IF sy-subrc = 0.
zitab-ZZTERM = ZKNB1-ZTERM.
ELSE.
zitab-ZZTERM = 'NULL'.
ENDIF.
zitab-ZAKONT = ZKNB1-AKONT.
ENDLOOP.
INSERT ZBW_SFLI001_DS FROM TABLE zitab.
OPEN CURSOR WITH HOLD s_cursor FOR "Step (I)
SELECT (S_S_IF-T_FIELDS) FROM ZBW_SFLI001_DS
WHERE zrequnr = s_s_if-requnr.
ENDIF.
FETCH NEXT CURSOR s_cursor "Step (J)
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0. "Step (K)
CLOSE CURSOR S_CURSOR. "Step (L)
DELETE FROM zbw_sfli001_ds "Step (M)
WHERE zrequnr = s_s_if-requnr.
RAISE NO_MORE_DATA. "Step (N)
ENDIF.
s_counter_datapakid = s_counter_datapakid + 1. "Step (O)
ENDIF.
ENDFUNCTION.
null
‎2007 Oct 17 4:16 PM
Hi Soniya,
i think you have not checked my reply to your query in another thread.
Regards,
Atish
‎2007 Oct 17 4:24 PM
Please edit my code so that i understand this for this time and i can create that in future.
MY original FM is RSAX_BIW_GET_DATA_SIMPLE and I want the copy of this . it is simple. but if u can copy it and send me the code and steps then i will repeat the same thing that I learned from you.
Thanks
Regards
Soniya
‎2007 Oct 17 4:28 PM
Hi Soniya,
Just tell one thing what is the name of your FM
Is it Z_CUSTOMER or Z_CUSTOMERB. Just delete the one from the system which you are not using.
Regards,
Atish
‎2007 Oct 17 10:25 PM
Z_CUSTOMERB is the name of FM . i deleted the other one Z_CUSTOMER but still not working
‎2007 Oct 17 10:56 PM
In the top include for the function group, ensure that the first line is:
FUNCTION-POOL Z_MY_GROUP. Where Z_MY_GROUP is the actual name of the actual function group that your actual function module belongs to.
Rob