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

bdc on hruser

Former Member
0 Likes
547

hi all,

I have written bdc on HRUSER in HR. it creates user for single pernr.

But when i try to pass the range, it creates the user id for only the first pernr and not all the pernr's in the range.

Can anyone please provide a solution ASAP?

hi all,

I have written bdc on HRUSER in HR. it creates user for single pernr.

But when i try to pass the range, it creates the user id for only the first pernr and not all the pernr's in the range.

Can anyone please provide a solution ASAP?

2 REPLIES 2
Read only

venkat_o
Active Contributor
0 Likes
479

Hi, Can you post your code ? We will check it . Regards, Venkat.O

Read only

Former Member
0 Likes
479

ya sure the code z below.

*--moving the role selected to variable v_temp.

v_temp = p4.

*--moving the system date to variable v_date.

v_date = sy-datum.

*--setting the date format of current date.

CONCATENATE v_date4(2) c_1 v_date6(2) c_1 v_date+0(4) INTO v_date.

*--for screen 1000.

PERFORM bdc_dynpro USING 'SAPLEHUS' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PARAMETERS-SELDAT'.

*--ok code '=PARAM'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PARAM'.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-WITH_ZBV'

c_x.

PERFORM bdc_field USING 'PARAMETERS-SELDAT'

v_date.

PERFORM bdc_field USING 'DATESET'

'O'.

*--for screen 0100.

PERFORM bdc_dynpro USING 'SAPLEHUS' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PARAMETERS-PW_METHOD'.

*--ok code '=PWC'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PWC'.

PERFORM bdc_field USING 'PARAMETERS-SELDAT'

v_date.

PERFORM bdc_field USING 'DATESET'

'O'.

PERFORM bdc_field USING 'PARAMETERS-PW_METHOD'

'2'.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_NONE'

c_x.

PERFORM bdc_field USING 'PARAMETERS-DATFM'

'2'.

PERFORM bdc_field USING 'PARAMETERS-DCPFM'

c_x.

PERFORM bdc_field USING 'PARAMETERS-TZONE'

'MST'.

*--for screen 0100.

PERFORM bdc_dynpro USING 'SAPLEHUS' '0100'.

*--local role

IF p1 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_LOCAL'.

ENDIF.

*--central role

IF p2 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_CENTRAL'.

ENDIF.

*--no role

IF p3 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_NONE'.

ENDIF.

*--ok code '=RASS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=RASS'.

PERFORM bdc_field USING 'PARAMETERS-SELDAT'

v_date.

PERFORM bdc_field USING 'DATESET'

'O'.

PERFORM bdc_field USING 'PARAMETERS-PW_METHOD'

'2'.

*--local role

IF p1 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_LOCAL'

c_x.

ENDIF.

*--central role

IF p2 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_CENTRAL'

c_x.

ENDIF.

*--no role

IF p3 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_NONE'

c_x.

ENDIF.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_NONE'

''.

PERFORM bdc_field USING 'PARAMETERS-DATFM'

'2'.

PERFORM bdc_field USING 'PARAMETERS-DCPFM'

c_x.

PERFORM bdc_field USING 'PARAMETERS-TZONE'

'MST'.

*--for screen 0120.

PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.

PERFORM bdc_field USING 'BDC_CURSOR'

'21/19'.

*--ok code '=PICK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PICK'.

*--for screen 0100.

PERFORM bdc_dynpro USING 'SAPLEHUS' '0100'.

*--local role

IF p1 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_LOCAL'.

ENDIF.

*--central role

IF p2 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_CENTRAL'.

ENDIF.

*--no role.

IF p3 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_NONE'.

ENDIF.

*--ok code '=EXEC'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=EXEC'.

PERFORM bdc_field USING 'PARAMETERS-SELDAT'

v_date.

PERFORM bdc_field USING 'DATESET'

'O'.

PERFORM bdc_field USING 'PARAMETERS-PW_METHOD'

'2'.

*--local role

IF p1 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_LOCAL'

c_x.

ENDIF.

*--central role.

IF p2 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_CENTRAL'

c_x.

ENDIF.

*--no role.

IF p3 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_NONE'

c_x.

ENDIF.

PERFORM bdc_field USING 'PARAMETERS-ACTGROUP'

v_temp.

PERFORM bdc_field USING 'PARAMETERS-DATFM'

'2'.

PERFORM bdc_field USING 'PARAMETERS-DCPFM'

c_x.

PERFORM bdc_field USING 'PARAMETERS-TZONE'

'MST'.

*--for screen 1000.

PERFORM bdc_dynpro USING 'SAPLEHUS' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PARAMETERS-SELDAT'.

*--ok code '=PCOMP'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=PCOMP'.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-WITH_ZBV'

c_x.

PERFORM bdc_field USING 'PARAMETERS-SELDAT'

v_date.

PERFORM bdc_field USING 'DATESET'

'O'.

*--For Personnel Number.

IF NOT pnppernr[] IS INITIAL.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PNPPERNR-LOW'.

*--ok code '=%165'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=%165'.

PERFORM bdc_field USING 'ALL'

c_x.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=INTL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INTL'.

*--read table pnppernr.

LOOP AT pnppernr.

*--to include single value.

IF pnppernr-sign = 'I' AND pnppernr-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_I(01)'

pnppernr-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOSV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOSV'.

*--read table pnppernr.

LOOP AT pnppernr.

*--to include range.

IF pnppernr-sign = 'I' AND pnppernr-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-ILOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_I(01)'

pnppernr-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_I(01)'

pnppernr-high.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOINT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOINT'.

*--read table pnppernr.

LOOP AT pnppernr.

*--to exclude single value.

IF pnppernr-sign = 'E' AND pnppernr-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_E(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_E(01)'

pnppernr-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=ACPT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ACPT'.

*--read table pnppernr.

LOOP AT pnppernr.

*--to exclude range.

IF pnppernr-sign = 'E' AND pnppernr-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_E(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_E(01)'

pnppernr-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_E(01)'

pnppernr-high.

ENDIF.

ENDLOOP.

ENDIF.

*--For Employee Status.

IF NOT pnpstat2[] IS INITIAL.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PNPPERNR-LOW'.

*--ok code '=%169'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=%169'.

PERFORM bdc_field USING 'ALL'

c_x.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=INTL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INTL'.

*--read table pnpstat2.

LOOP AT pnpstat2.

*--to include single value

IF pnpstat2-sign = 'I' AND pnpstat2-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_I(01)'

pnpstat2-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOSV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOSV'.

*--read table pnpstat2.

LOOP AT pnpstat2.

*--to include range.

IF pnpstat2-sign = 'I' AND pnpstat2-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_I(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_I(01)'

pnpstat2-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_I(01)'

pnpstat2-high.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOINT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOINT'.

*--read table pnpstat2.

LOOP AT pnpstat2.

*--to exclude single value.

IF pnpstat2-sign = 'E' AND pnpstat2-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_E(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_E(01)'

pnpstat2-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=ACPT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ACPT'.

*--read table pnpstat2.

LOOP AT pnpstat2.

*--to exclude range.

IF pnpstat2-sign = 'E' AND pnpstat2-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_E(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_E(01)'

pnpstat2-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_E(01)'

pnpstat2-high.

ENDIF.

ENDLOOP.

ENDIF.

*--For Company Code.

IF NOT pnpbukrs[] IS INITIAL.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PNPPERNR-LOW'.

*--ok code '=%171'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=%171'.

PERFORM bdc_field USING 'ALL'

c_x.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=INTL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INTL'.

*--read table pnpbukrs.

LOOP AT pnpbukrs.

*--to include single value.

IF pnpbukrs-sign = 'I' AND pnpbukrs-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_I(01)'

pnpbukrs-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOSV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOSV'.

*--read table pnpbukrs.

LOOP AT pnpbukrs.

*--to include range.

IF pnpbukrs-sign = 'I' AND pnpbukrs-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_I(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_I(01)'

pnpbukrs-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_I(01)'

pnpbukrs-high.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOINT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOINT'.

*--read table pnpbukrs.

LOOP AT pnpbukrs.

*--to exclude single value.

IF pnpbukrs-sign = 'E' AND pnpbukrs-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_E(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_E(01)'

pnpbukrs-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=ACPT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ACPT'.

*--read table pnpbukrs.

LOOP AT pnpbukrs.

*--to exclude range.

IF pnpbukrs-sign = 'E' AND pnpbukrs-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_E(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_E(01)'

pnpbukrs-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_E(01)'

pnpbukrs-high.

ENDIF.

ENDLOOP.

ENDIF.

*--For Payroll Area.

IF NOT pnpabkrs[] IS INITIAL.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PNPPERNR-LOW'.

*--ok code '=%179'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=%179'.

PERFORM bdc_field USING 'ALL'

c_x.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=INTL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INTL'.

*--read table pnpabkrs.

LOOP AT pnpabkrs.

*--to include single value.

IF pnpabkrs-sign = 'I' AND pnpabkrs-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_I(01)'

pnpabkrs-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOSV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOSV'.

*--read table pnpabkrs.

LOOP AT pnpabkrs.

*--to include range.

IF pnpabkrs-sign = 'I' AND pnpabkrs-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_I(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_I(01)'

pnpabkrs-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_I(01)'

pnpabkrs-high.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOINT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOINT'.

*--read table pnpabkrs.

LOOP AT pnpabkrs.

*--to exclude single value

IF pnpabkrs-sign = 'E' AND pnpabkrs-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_E(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_E(01)'

pnpabkrs-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=ACPT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ACPT'.

*--read table pnpabkrs.

LOOP AT pnpabkrs.

*--to exclude range.

IF pnpabkrs-sign = 'E' AND pnpabkrs-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_E(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_E(01)'

pnpabkrs-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_E(01)'

pnpabkrs-high.

ENDIF.

ENDLOOP.

ENDIF.

*--For Personnel Area/Subarea/Cost centre.

IF NOT pnpxbwbk[] IS INITIAL.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PNPPERNR-LOW'.

*--ok code '=%200'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=%200'.

PERFORM bdc_field USING 'ALL'

c_x.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=INTL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INTL'.

*--read table pnpxbwbk.

LOOP AT pnpxbwbk.

*--to include single value.

IF pnpxbwbk-sign = 'I' AND pnpxbwbk-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_I(01)'

pnpxbwbk-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOSV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOSV'.

*--read table pnpxbwbk.

LOOP AT pnpabkrs.

*--to include range.

IF pnpabkrs-sign = 'I' AND pnpabkrs-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_I(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_I(01)'

pnpxbwbk-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_I(01)'

pnpxbwbk-high.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOINT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOINT'.

*--read table pnpxbwbk.

LOOP AT pnpabkrs.

*--to exclude single value.

IF pnpabkrs-sign = 'E' AND pnpabkrs-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_E(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_E(01)'

pnpxbwbk-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=ACPT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ACPT'.

*--read table pnpxbwbk.

LOOP AT pnpabkrs.

*--to exclude range.

IF pnpabkrs-sign = 'E' AND pnpabkrs-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_E(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_E(01)'

pnpxbwbk-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_E(01)'

pnpxbwbk-high.

ENDIF.

ENDLOOP.

ENDIF.

*--For Employee Group/sub Group.

IF NOT pnpxpgpk[] IS INITIAL.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PNPPERNR-LOW'.

*--ok code '=%202'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=%202'.

PERFORM bdc_field USING 'ALL'

c_x.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=INTL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INTL'.

*--read table pnpxpgpk.

LOOP AT pnpxpgpk.

*--to include single value.

IF pnpxpgpk-sign = 'I' AND pnpxpgpk-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_I(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_I(01)'

pnpxpgpk-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOSV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOSV'.

*--read table pnpxpgpk.

LOOP AT pnpxpgpk.

*--to include range.

IF pnpxpgpk-sign = 'I' AND pnpxpgpk-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_I(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_I(01)'

pnpxpgpk-low. "''.

PERFORM bdc_field USING 'RSCSEL-IHIGH_I(01)'

pnpxpgpk-high.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=NOINT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=NOINT'.

*--read table pnpxpgpk.

LOOP AT pnpxpgpk.

*--to exclude single value.

IF pnpxpgpk-sign = 'E' AND pnpxpgpk-option = 'EQ'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-SLOW_E(01)'.

PERFORM bdc_field USING 'RSCSEL-SLOW_E(01)'

pnpxpgpk-low.

ENDIF.

ENDLOOP.

*--for screen 3000.

PERFORM bdc_dynpro USING 'SAPLALDB' '3000'.

*--ok code '=ACPT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ACPT'.

*--read table pnpxpgpk.

LOOP AT pnpxpgpk.

*--to exclude range.

IF pnpxpgpk-sign = 'E' AND pnpxpgpk-option = 'BT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSCSEL-IHIGH_E(01)'.

PERFORM bdc_field USING 'RSCSEL-ILOW_E(01)'

pnpxpgpk-low.

PERFORM bdc_field USING 'RSCSEL-IHIGH_E(01)'

pnpxpgpk-high.

ENDIF.

ENDLOOP.

ENDIF.

*--for screen 1000.

PERFORM bdc_dynpro USING 'ESS_SEL_PERNR_VIA_PNP' '1000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'NOUS'.

*--ok code '=ONLI'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ONLI'.

PERFORM bdc_field USING 'ALL'

''.

PERFORM bdc_field USING 'NOUS'

c_x.

*--for screen 1200.

PERFORM bdc_dynpro USING 'SAPLEHUS' '1200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'%#AUTOTEXT020'.

*--ok code '=LISTN'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=LISTN'.

*--for screen 0120.

PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.

PERFORM bdc_field USING 'BDC_CURSOR'

'04/02'.

*--ok code '=MRKA'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=MRKA'.

*--for screen 0120.

PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.

PERFORM bdc_field USING 'BDC_CURSOR'

'04/02'.

*--ok code '=INSAUTH'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INSAUTH'.

*--for screen 0100.

PERFORM bdc_dynpro USING 'SAPLEHUS' '0100'.

*--local role

IF p1 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_LOCAL'.

ENDIF.

*--Central Role

IF p2 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_CENTRAL'.

ENDIF.

*--no role.

IF p3 = c_x.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRUSER_DYNFIELDS-ROLE_NONE'.

ENDIF.

*--ok code '=EXEC'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=EXEC'.

PERFORM bdc_field USING 'PARAMETERS-PW_METHOD'

'2'.

*--local role.

IF p1 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_LOCAL'

c_x.

ENDIF.

*--central role.

IF p2 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_CENTRAL'

c_x.

ENDIF.

*--no role.

IF p3 = c_x.

PERFORM bdc_field USING 'HRUSER_DYNFIELDS-ROLE_NONE'

c_x.

ENDIF.

PERFORM bdc_field USING 'PARAMETERS-DATFM'

'2'.

PERFORM bdc_field USING 'PARAMETERS-DCPFM'

c_x.

PERFORM bdc_field USING 'PARAMETERS-TZONE'

'MST'.

*--includes Call transaction

PERFORM bdc_transaction USING hruser.