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

changing option in function module

Former Member
0 Likes
2,327

sir,

plz explain the role or importance of changing option in function module SE37

5 REPLIES 5
Read only

Former Member
0 Likes
1,376

Hi Sandeep,

Changing

Contains a list of the formal parameters that are used both to pass data to and receive data from a function module.

Regards,

Sunil

Read only

Former Member
0 Likes
1,376

Have a look at this link

http://help.sap.com/saphelp_46c/helpdata/EN/d1/801ece454211d189710000e8322d00/frameset.htm

Changing

Values that act as import and export parameters simultaneously. The original value of a changing parameter is transferred from the calling program to the function module. The function module can alter the initial value and send it back to the calling program.

Read only

vinod_vemuru2
Active Contributor
0 Likes
1,376

Hi Sandeep,

Changing parameters is nothing but Call by reference i.e U can pass the values to the Fm as input, U can modify the data inside FM and all the changes done in side the FM to these parameters will be reflected even after FM execution is completed. Same thing applies to TABLES parameter also.

Thanks,

Vinod.

Read only

Former Member
0 Likes
1,376

hi

changing

all the things the r specified under changing signefies that when thias code is executed this things will be get changed from there previous state or last saved

<REMOVED BY MODERATOR>

snehi chouhan

Edited by: Alvaro Tejada Galindo on Apr 25, 2008 11:46 AM

Read only

Former Member
0 Likes
1,376

hi check this example it had the usage of the changing option..

here the using will input the value to the perform and do some prosses and output some value..

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