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

Tables in a Function Module

Former Member
0 Likes
722

Hi All,

Tables in a Function Module can aslo cas as export parameters or not. Please clarify.

Thanks in Advance,

Subhani.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
677

Yes they can be used as Export Parameters with a set of records.

Eg:

Define I_ITAB1 for Import Parameters

Define E_ITAB2 for Export Parameters

Basically you need to populate the Export table with the values which you need for O/P.

Hope this helps.

Regards

Vinayak

6 REPLIES 6
Read only

Former Member
0 Likes
677

Yes. U can use them to send some data to the FM ...

Read only

Former Member
0 Likes
678

Yes they can be used as Export Parameters with a set of records.

Eg:

Define I_ITAB1 for Import Parameters

Define E_ITAB2 for Export Parameters

Basically you need to populate the Export table with the values which you need for O/P.

Hope this helps.

Regards

Vinayak

Read only

Former Member
0 Likes
677

hi.,

tables in FMs will act as both Export/Import parameters.

depends up on the situations.

it will take the input as table and returns the processed data in the same parameter(internal table).

Reward poionts if useful

Chandra

Read only

Former Member
0 Likes
677

Hi,

Yes , they can be as export parameters as well.

In case the function module needs data from these tables then they will be given to the function module , by having those tables as export parameters in the function module.

Reward if helpful.

Regards.

Read only

Former Member
0 Likes
677

Hi,

It is used when we have to pass internal tables.

Use this link for your reference

http://help.sap.com/saphelp_46c/helpdata/EN/9f/db98ef35c111d1829f0000e829fbfe/content.htm

Read only

Former Member
0 Likes
677

hi ,

generally we use structures for displaying the tables through the fm .. here is an example code where i used the tables and exporting parameters.....check this....

PERNR TYPE P0001-PERNR Personnel Number

PLANS TYPE P0001-PLANS Position

ORGEH TYPE P0001-ORGEH Organizational Unit

DATE TYPE SY-DATUM SY-DATUM Date and time, current (applic

PLVAR TYPE PLOG-PLVAR '01' Plan Version

ISTAT TYPE PLOG-ISTAT '1' Planning Status

MANAGER TYPE ZHMSS_MANAGER Structure for manager for MSS

NO_PERNR_PLANS_ORGEH_SPEC No pernr, position or org unit specified

NO_EXIST_PLANS Position does not exist

INVALID_PLANS Position invalid

NO_EXIST_ORGEH Org unit does not exist

NO_EXIST_PERNR Personnel number does not exist

function z_get_orgunit_manager_info.

*"----


""Local interface:

*" IMPORTING

*" REFERENCE(PERNR) TYPE P0001-PERNR OPTIONAL

*" REFERENCE(PLANS) TYPE P0001-PLANS OPTIONAL

*" REFERENCE(ORGEH) TYPE P0001-ORGEH OPTIONAL

*" REFERENCE(DATE) TYPE SY-DATUM DEFAULT SY-DATUM

*" REFERENCE(PLVAR) TYPE PLOG-PLVAR DEFAULT '01'

*" REFERENCE(ISTAT) TYPE PLOG-ISTAT DEFAULT '1'

*" EXPORTING

*" REFERENCE(MANAGER) TYPE ZHMSS_MANAGER

*" EXCEPTIONS

*" NO_PERNR_PLANS_ORGEH_SPEC

*" NO_EXIST_PLANS

*" INVALID_PLANS

*" NO_EXIST_ORGEH

*" NO_EXIST_PERNR

*"----


if pernr is initial and

plans is initial and

orgeh is initial.

raise no_pernr_plans_orgeh_spec.

endif."pernr is initial and

if not pernr is initial.

if pernr cn '0123456789'.

exit.

endif.

*-- See if pernr exists

call function 'P_EMPLOYEE_CHECKEXISTENCE'

exporting

object_id = pernr

date = date

exceptions

employee_not_found = 01.

if sy-subrc ne 0.

raise no_exist_pernr.

exit.

endif.

*-- Obtain pernr position

call function 'HR_READ_INFOTYPE'

exporting

pernr = pernr

infty = c_infty_0001

begda = date

endda = date

importing

subrc = g_retcd

tables

infty_tab = i0001

exceptions

infty_not_found = 01

others = 02.

if sy-subrc eq 0.

describe table i0001 lines g_lines.

if g_lines > 0.

read table i0001 index 1.

*-- Got position now find org unit

perform zf_proc_get_om_objects tables i_objects

using c_otype_position

i0001-plans

plvar

c_rsign_a

c_relat_003

istat

date

date

c_otype_orgunit

changing g_retcd.

if g_retcd eq 0.

read table i_objects index 1.

g_orgeh = i_objects-sobid(8).

endif. "g_retcd eq 0.

endif. "g_lines > 0. for i0001

endif. "sy-subrc eq 0 hr_read_infotype

elseif not plans is initial.

if plans co '9' or

plans co '0'.

raise invalid_plans.

exit.

endif.

call function 'RH_READ_OBJECT'

exporting

plvar = plvar

otype = c_otype_position

objid = plans

istat = istat

begda = date

endda = date

langu = sy-langu

exceptions

not_found = 1

others = 2.

if sy-subrc <> 0.

raise no_exist_plans.

exit.

endif.

*-- Find org unit

perform zf_proc_get_om_objects tables i_objects

using c_otype_position

plans

plvar

c_rsign_a

c_relat_003

istat

date

date

c_otype_orgunit

changing g_retcd.

if g_retcd eq 0.

read table i_objects index 1.

g_orgeh = i_objects-sobid(8).

endif."g_retcd eq 0.

elseif not orgeh is initial.

call function 'RH_READ_OBJECT'

exporting

plvar = plvar

otype = c_otype_orgunit

objid = orgeh

istat = istat

begda = date

endda = date

langu = sy-langu

CHECK_STRU_AUTH = space "ASikaria, 10/15

exceptions

not_found = 1

others = 2.

if sy-subrc <> 0.

raise no_exist_orgeh.

exit.

endif.

g_orgeh = orgeh.

endif. "not pernr is initial.

if not g_orgeh is initial.

manager-orgeh = g_orgeh.

*-- Got org unit now find manager

perform zf_proc_get_om_objects tables i_objects

using c_otype_orgunit

manager-orgeh

plvar

c_rsign_b

c_relat_012

istat

date

date

c_otype_position

changing g_retcd.

if g_retcd eq 0.

read table i_objects index 1.

if sy-subrc eq 0.

manager-plans = i_objects-sobid.

call function 'Z_GET_POSITION_HOLDER'

exporting

plans = manager-plans

plvar = plvar

istat = istat

date = date

importing

pernr = manager-pernr

exceptions

position_not_exist = 1

position_invalid = 2

others = 3.

if sy-subrc <> 0.

clear: manager-pernr.

endif.

if not manager-pernr is initial.

*- BOC RTDK902962

*-- Obtained formatted name

clear: i0001.

refresh: i0001.

call function 'HR_READ_INFOTYPE'

exporting

pernr = manager-pernr

infty = c_infty_0001

begda = date

endda = date

importing

subrc = g_retcd

tables

infty_tab = i0001

exceptions

infty_not_found = 1

others = 2.

if sy-subrc eq 0.

read table i0001 index 1.

if sy-subrc eq 0.

manager-ename = i0001-ename.

endif.

endif.

*- EOC RTDK902962

*-- Obtain pernr information

*- Get 0002 data

clear: i0002.

refresh: i0002.

call function 'HR_READ_INFOTYPE'

exporting

pernr = manager-pernr

infty = c_infty_0002

begda = date

endda = date

importing

subrc = g_retcd

tables

infty_tab = i0002

exceptions

infty_not_found = 1

others = 2.

if sy-subrc eq 0.

read table i0002 index 1.

if sy-subrc eq 0.

manager-inits = i0002-inits.

manager-vorna = i0002-vorna.

manager-nachn = i0002-nachn.

manager-midnm = i0002-midnm.

endif.

endif.

*- Get 0105 data

clear: i0105.

refresh: i0105.

call function 'HR_READ_INFOTYPE'

exporting

pernr = manager-pernr

infty = c_infty_0105

begda = date

endda = date

importing

subrc = g_retcd

tables

infty_tab = i0105

exceptions

infty_not_found = 1

others = 2.

if sy-subrc eq 0.

describe table i0105 lines g_lines.

if g_lines > 0.

*- SAP usrid

loop at i0105 where subty = c_0105_usrid_subty.

manager-usrid = i0105-usrid.

endloop.

*- Email address

*// not sure where email is going to be stored but assume it is subtype

*// 0010

loop at i0105 where subty = c_0105_email_subty.

manager-email = i0105-usrid_long.

endloop.

endif. "g_lines > 0

endif."sy-subrc eq 0.

endif. "not manager-pernr is initial.

endif. "sy-subrc eq 0.

endif."g_retcd eq 0.

endif. "not g_orgeh is initial.

endfunction.

-


zposition holder

PLANS TYPE PLOG-OBJID Object ID

PLVAR TYPE PLOG-PLVAR '01' Plan Version

ISTAT TYPE PLOG-ISTAT '1' Planning Status

DATE TYPE SY-DATUM SY-DATUM Date and time, current (application server) date

PERNR TYPE P0001-PERNR Personnel Number

POSITION_NOT_EXIST Position does not exist

POSITION_INVALID Invalid position

function z_get_position_holder.

*"----


""Local interface:

*" IMPORTING

*" REFERENCE(PLANS) TYPE PLOG-OBJID

*" REFERENCE(PLVAR) TYPE PLOG-PLVAR DEFAULT '01'

*" REFERENCE(ISTAT) TYPE PLOG-ISTAT DEFAULT '1'

*" REFERENCE(DATE) TYPE SY-DATUM DEFAULT SY-DATUM

*" EXPORTING

*" REFERENCE(PERNR) TYPE P0001-PERNR

*" EXCEPTIONS

*" POSITION_NOT_EXIST

*" POSITION_INVALID

*"----


if plans cn '0123456789'.

raise position_invalid.

endif."plans cn '0123456789'.

if plans co '9'. "default position

exit.

endif.

call function 'RH_READ_OBJECT'

exporting

plvar = plvar

otype = c_otype_position

objid = plans

begda = date

endda = date

exceptions

not_found = 01

others = 02.

if sy-subrc ne 0.

raise position_not_exist.

else.

perform zf_proc_get_om_objects tables i_objects

using c_otype_position

plans

plvar

c_rsign_a

c_relat_008

istat

date

date

c_otype_pernr

changing g_retcd.

if g_retcd eq 0.

sort i_objects by begda descending. "get earliest rec

read table i_objects index 1.

if sy-subrc eq 0.

pernr = i_objects-sobid(8).

endif.

endif. "g_retcd eq 0.

endif. "sy-subrc ne 0.

endfunction.

regards,

venkat.