Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Function Module Failing in Run Time

Former Member
0 Likes
995

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

5 REPLIES 5
Read only

Former Member
0 Likes
768

Hi Soniya,

i think you have not checked my reply to your query in another thread.

Regards,

Atish

Read only

0 Likes
768

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

Read only

Former Member
0 Likes
768

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

Read only

0 Likes
768

Z_CUSTOMERB is the name of FM . i deleted the other one Z_CUSTOMER but still not working

Read only

0 Likes
768

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