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

Creating Includes for Function Modules

former_member189420
Active Participant
0 Likes
1,382

Hi Experts,

Can you please let me know how to create includes for function modules.

I came across this in a standard include program, which was generated by a function library. The includes inside this program where linked to the function modules (when I double clicked on them).

Please let me know how to create it.

Thanks in advance !

Regards,

Anand Patil.

1 ACCEPTED SOLUTION
Read only

varma_narayana
Active Contributor
0 Likes
1,334

Hi Anand..

Whenever We create a Function module in SE37 the FM will be internally created as an INCLUDE program by the System itself.

So there is no need to Create Includes for FMs separately..

<b>Reward if Helpful.</b>

6 REPLIES 6
Read only

former_member404244
Active Contributor
0 Likes
1,334

Hi,

In the source of the function module u just need to call a perform statement which ultimately gives u one incldue where u can write ur FORM ....ENDFORM..

PERFORM GET_DATA.

Double click on get_data,it will prompt u a include and then write ur code in that include.

Regards,

Nagaraj

Read only

0 Likes
1,334

thanks nagaraj for your input but i couldn't understand it.

if you can elaborate on this i can reward 2 points for it.

regards,

Anand Patil

Read only

varma_narayana
Active Contributor
0 Likes
1,335

Hi Anand..

Whenever We create a Function module in SE37 the FM will be internally created as an INCLUDE program by the System itself.

So there is no need to Create Includes for FMs separately..

<b>Reward if Helpful.</b>

Read only

Former Member
0 Likes
1,334

Hi,

To Create the includes for the function module...

In the you will find the main program of that particular FM.. double click on that program it will take you to SE38 Tcode and the main program is displayed ... here your need to specify the new inlcude name and bouble click on the include name it will ask for the new include creation....

Satya.

Read only

seshatalpasai_madala
Product and Topic Expert
Product and Topic Expert
0 Likes
1,334

Hi.

For any function group you will have a include like this

Suppose your function group name is "ZFG".

Then you will a have an include of name LZFGUXX created automatically by ABAP runtime.

Then in this include you will see INCLUDE statement one for each function module.

LZFGU01 will have the first function module that you create under this Function group.

So you can have upto LZFGU99 includes meaning at the max we can have upto 99 function modules.

Regards,

Sesh

Read only

former_member404244
Active Contributor
0 Likes
1,334

Hi,

have a look at the code for better understanding

************************************************************************

  • Declaration of Workareas *

************************************************************************

DATA: lwa_e1bp2017_gm_item_create TYPE e1bp2017_gm_item_create,

lwa_data TYPE edidd, " Work area for IDOC

lwa_control TYPE edidc. " Work Area for control rec

  • Read the control data information of idoc.

loop at idoc_contrl INTO lwa_control Where mestyp = lc_mbgmcr.

  • Extract the data from the segments.

LOOP AT idoc_data INTO lwa_data

WHERE docnum = lwa_control-docnum and

segnam = lc_item_create.

*->> Set the tabix of the internal table

lv_index = sy-tabix.

  • Move the Material Document Item Segment data

MOVE lwa_data-sdata TO lwa_e1bp2017_gm_item_create.

  • Modify the material document item data internal table

PERFORM sub_modify_idocdata changing lwa_e1bp2017_gm_item_create.

*->> set the changed values to the IDOC SDATA

MOVE lwa_e1bp2017_gm_item_create TO lwa_data-sdata.

*->> Modify the table

MODIFY idoc_data FROM lwa_data index lv_index.

  • Clear the Work areas

CLEAR : lwa_data,

lwa_e1bp2017_gm_item_create.

ENDLOOP. "LOOP AT t_idoc_data

  • Call the BAPI function module to create the

  • appropriate Material Document

CALL FUNCTION 'BAPI_IDOC_INPUT1'

EXPORTING

input_method = input_method

mass_processing = mass_processing

IMPORTING

workflow_result = workflow_result

application_variable = application_variable

in_update_task = in_update_task

call_transaction_done = call_transaction_done

TABLES

idoc_contrl = idoc_contrl

idoc_data = idoc_data

idoc_status = idoc_status

return_variables = return_variables

serialization_info = serialization_info

EXCEPTIONS

wrong_function_called = 1

OTHERS = 2.

IF sy-subrc = 1.

RAISE wrong_function_called.

ENDIF.

endloop.

ENDFUNCTION.

here when we write the statment

PERFORM sub_modify_idocdata changing lwa_e1bp2017_gm_item_create and double click on sub_modify_idocdata .

it will create a include with the name "LZDTSINT052F_GPOMS_GMF01 ".

now we can write the FORM ..END FORM In this inculde.like this.

----


***INCLUDE LZDTSINT052F_GPOMS_GMF01 .

----


&----


*& Form sub_modify_idocdata

&----


  • Modify the material document item data internal table

----


FORM sub_modify_idocdata

CHANGING pwa_e1bp2017_gm_item_create TYPE e1bp2017_gm_item_create.

  • contant declaration

CONSTANTS: lc_261(3) TYPE c VALUE '261'.

DATA : lv_aplzl LIKE resb-aplzl,

lv_aufpl LIKE resb-aufpl,

lv_subrc LIKE sy-subrc,

lv_charg LIKE resb-charg,

lv_uom LIKE pwa_e1bp2017_gm_item_create-entry_uom.

CLEAR: pwa_e1bp2017_gm_item_create-reserv_no,

pwa_e1bp2017_gm_item_create-res_item.

*->> Get SAP storage bin & Storage type from the Z table

SELECT lgtyp lgpla

INTO (pwa_e1bp2017_gm_item_create-stge_type,

pwa_e1bp2017_gm_item_create-stge_bin)

UP TO 1 ROWS

FROM zdtsint050_sttyp

WHERE zstorage_typ = pwa_e1bp2017_gm_item_create-stge_type

AND zstorage_bin = pwa_e1bp2017_gm_item_create-stge_bin.

ENDSELECT.

IF sy-subrc NE 0.

CLEAR: pwa_e1bp2017_gm_item_create-stge_type,

pwa_e1bp2017_gm_item_create-stge_bin.

ENDIF.

PERFORM get_oper CHANGING pwa_e1bp2017_gm_item_create.

  • Get the Reservation number and Reservation item number

  • basing on the idoc data.

SELECT rspos werks lgort

INTO (pwa_e1bp2017_gm_item_create-res_item,

pwa_e1bp2017_gm_item_create-plant,

pwa_e1bp2017_gm_item_create-stge_loc)

FROM resb

UP TO 1 ROWS

WHERE rsnum = pwa_e1bp2017_gm_item_create-reserv_no

AND matnr = pwa_e1bp2017_gm_item_create-material

AND charg = pwa_e1bp2017_gm_item_create-batch

AND aufnr = pwa_e1bp2017_gm_item_create-orderid

AND vornr = pwa_e1bp2017_gm_item_create-activity

AND bwart = lc_261.

ENDSELECT.

IF sy-subrc <> 0.

  • Start of insertion for R31K993797

CLEAR lv_charg.

SELECT rspos werks lgort

INTO (pwa_e1bp2017_gm_item_create-res_item,

pwa_e1bp2017_gm_item_create-plant,

pwa_e1bp2017_gm_item_create-stge_loc)

FROM resb

UP TO 1 ROWS

WHERE rsnum = pwa_e1bp2017_gm_item_create-reserv_no

AND matnr = pwa_e1bp2017_gm_item_create-material

AND charg = lv_charg

AND aufnr = pwa_e1bp2017_gm_item_create-orderid

AND vornr = pwa_e1bp2017_gm_item_create-activity

AND ( splkz = 'X' or

splkz = space )

AND bwart = lc_261.

ENDSELECT.

IF sy-subrc <> 0.

  • End of insertion for R31K993797

SELECT SINGLE werks lgort

INTO (pwa_e1bp2017_gm_item_create-plant,

pwa_e1bp2017_gm_item_create-stge_loc)

FROM resb

WHERE rsnum = pwa_e1bp2017_gm_item_create-reserv_no.

CLEAR : pwa_e1bp2017_gm_item_create-reserv_no,

pwa_e1bp2017_gm_item_create-res_item.

ENDIF.

ENDIF.

  • get SAP UOM

SELECT SINGLE zsap_uom

INTO lv_uom

FROM zca_uom_conv

WHERE zext_uom = pwa_e1bp2017_gm_item_create-entry_uom.

IF sy-subrc = 0.

pwa_e1bp2017_gm_item_create-entry_uom = lv_uom.

ENDIF.

ENDFORM. " sub_modify_idocdata

&----


*& Form get_oper

&----


  • Get the operation

----


  • <--P_PWA_E1BP2017_GM_ITEM_CREATE_RE Segment

----


FORM get_oper CHANGING p_pwa_e1bp2017_gm_item_create TYPE

e1bp2017_gm_item_create.

DATA : l_aufpl LIKE afko-aufpl,

l_aplzl LIKE afvc-aplzl.

REFRESH : i_op.

UNPACK p_pwa_e1bp2017_gm_item_create-orderid TO

p_pwa_e1bp2017_gm_item_create-orderid.

  • Get the reservation and routing number for the order

SELECT SINGLE

rsnum

aufpl

FROM afko

INTO (p_pwa_e1bp2017_gm_item_create-reserv_no,

l_aufpl)

WHERE aufnr = p_pwa_e1bp2017_gm_item_create-orderid.

IF sy-subrc = 0.

CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT'

EXPORTING

input = p_pwa_e1bp2017_gm_item_create-activity

IMPORTING

output = p_pwa_e1bp2017_gm_item_create-activity.

ENDIF.

ENDFORM. " get_oper

Regards,

nagaraj