‎2008 Mar 10 11:34 AM
Hi All,
Tables in a Function Module can aslo cas as export parameters or not. Please clarify.
Thanks in Advance,
Subhani.
‎2008 Mar 10 11:37 AM
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
‎2008 Mar 10 11:36 AM
‎2008 Mar 10 11:37 AM
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
‎2008 Mar 10 11:37 AM
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
‎2008 Mar 10 11:39 AM
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.
‎2008 Mar 10 11:41 AM
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
‎2008 Mar 10 11:49 AM
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.