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

Function Module to Insert Agent assignment upon creation of Responsibility

Former Member
0 Likes
1,761

Hi Friends,

Using BDC I am able to create Resposibilities in Responsibilities tab of PFAC tcode.

I need to insert Agent assignment under created Responsibility.

Actually In Tcode PFAC I enter Rule then select change button this will lead us to next screen there i select Responsibilities tab

there I select create button then it will give a pop-up in that i will enter Object abbr. and Name then i will select continue.

then next i will enter category then select save.

Up to this using recording I am able to create Responsibilities but here i need to come back and i need to select just now created

Responsibility and i need to select insert agent assignment icon then it will give popup there i need to select Orgnizational unit then continue then it will give small popup ther i need to give search term (what ever we entered in Object abbr.) then continue again one popup will come ther we need to select that Org.unit check box then continue then it will one more popup there i need to select create then it will be inserted under Responsibilitty.

In the above entire explanation I am able do upto create Responsibilities but to insert agent assignment we need to come back after save but it is not possible through Recording because after save Recording will be ended.

So could you please guid me how to insert agent assignment under just created Responsibility.

If there is any function module to do that please suggest me .

Thanks

Chandu

6 REPLIES 6
Read only

Former Member
0 Likes
1,415

Hi Friends,

Can you guide me a fm with inputs for the above requirement.

Thanks,

Chandu

Read only

0 Likes
1,415

Hello,

Please respond anybody if you know the suitable fm.

Thanks

Read only

Rushikesh_Yeole
Contributor
0 Likes
1,415

try RH_GET_ACTORS

Read only

Former Member
0 Likes
1,415

Hi,

At save your BDC will be over, I would suggest you to start a new BDC to add agent in your responsibility

for adding agents to a responsibility you can use t-code OOCU_RESP.

Regards

Bikas

Read only

0 Likes
1,415

Hi,

I tried like that also.

Whenever we need to insert agent assignment under just created Responsibility we need to select just created responsibility

created by first BDC . But in seccond BDC WITH TCODE OOCU_RESP Recording is not capturing that action (selecting just created Responsibility).

It is giving the message 'You did not select a valid object' in the status bar.

So It is unable to insert agent assignment under responsibility.

I think there would a function module which insert agent assignment under selected responsibility.

If anybody knows please suggest me or am I making any mistake ?

If you would like to see my code pls find below.

&----


*& Report YCRM_CREATE_REPBLT_AGENT

*&

&----


*&

*&

&----


REPORT ycrm_create_repblt_agent.

*Selection Screen

PARAMETERS : p_rule TYPE pdtask-seark OBLIGATORY,

p_file TYPE rlgrap-filename OBLIGATORY.

*Data Declarations

TYPES : BEGIN OF ty_resp,

short TYPE p1000-short,

stext TYPE p1000-stext,

category TYPE ro_expr, "EDIT_BIND_DEF-EXPR_LOW(02),

END OF ty_resp.

DATA : it_resp TYPE TABLE OF ty_resp,

wa_resp TYPE ty_resp,

p_file1 TYPE string.

DATA : it_bdcdata TYPE TABLE OF bdcdata,

wa_bdcdata TYPE bdcdata,

it_bdcmsgcoll TYPE TABLE OF bdcmsgcoll,

wa_bdcmsgcoll TYPE bdcmsgcoll.

*Constants Declarations

CONSTANTS : c_x TYPE c VALUE 'X',

c_tcode(4) TYPE c VALUE 'PFAC',

c_mode TYPE c VALUE 'A'.

*AT SELECTION-SCREEN event for providing f4 help for input file

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

PERFORM file_on_f4.

*Start of selectin event.

START-OF-SELECTION.

  • File Upload

PERFORM upload_file.

*BDC Logic

PERFORM bdc_to_create_rep.

&----


*& Form BDC_DYNPRO

&----


  • text

----


  • -->P_0061 text

  • -->P_0062 text

----


FORM bdc_dynpro USING fp_program "value(p_0061)

fp_dynpro. "value(p_0062).

CLEAR wa_bdcdata.

wa_bdcdata-program = fp_program.

wa_bdcdata-dynpro = fp_dynpro.

wa_bdcdata-dynbegin = c_x.

APPEND wa_bdcdata TO it_bdcdata.

ENDFORM. " BDC_DYNPRO

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->P_0066 text

  • -->P_0067 text

----


FORM bdc_field USING fp_fnam "value(p_0066)

fp_fval. "value(p_0067).

CLEAR wa_bdcdata.

wa_bdcdata-fnam = fp_fnam.

wa_bdcdata-fval = fp_fval.

*WA_BDCDATA-DYNBEGIN = C_X.

APPEND wa_bdcdata TO it_bdcdata.

ENDFORM. " BDC_FIELD

&----


*& Form FILE_ON_F4

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM file_on_f4 .

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

field_name = 'P_FILE'

CHANGING

file_name = p_file

EXCEPTIONS

mask_too_long = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " FILE_ON_F4

&----


*& Form UPLOAD_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM upload_file .

p_file1 = p_file.

CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING

filename = p_file1

has_field_separator = 'X'

CHANGING

data_tab = it_resp

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

not_supported_by_gui = 17

error_no_gui = 18

OTHERS = 19.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " UPLOAD_FILE

&----


*& Form BDC_TO_CREATE_REP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM bdc_to_create_rep .

LOOP AT it_resp INTO wa_resp.

REFRESH : it_bdcdata,

it_bdcmsgcoll.

*Screen 0600

PERFORM bdc_dynpro USING 'SAPLRHWS' '0600'.

PERFORM bdc_field USING 'BDC_CURSOR'

'PDTASK-SEARK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=AEND'.

PERFORM bdc_field USING 'PDTASK-SEARK'

p_rule. "'90000159'.

*Screen 0040

PERFORM bdc_dynpro USING 'SAPLRHWS' '0040'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=RESP'.

PERFORM bdc_field USING 'BDC_CURSOR'

'HRS1000-SHORT'.

PERFORM bdc_field USING 'HRS1000-SHORT'

'Z99999999972'.

PERFORM bdc_field USING 'HRS1000-STEXT'

'Category (RUN -SUPPORT) + C&PS Web'.

PERFORM bdc_field USING 'HRS1203-ACTOR_FLAG'

'R'.

*Screen 0040

PERFORM bdc_dynpro USING 'SAPLRHWS' '0040'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INSE'.

PERFORM bdc_field USING 'BDC_CURSOR'

'DATESET'.

PERFORM bdc_field USING 'DATESET'

'O'.

*Screen 0300

PERFORM bdc_dynpro USING 'SAPLSPO4' '0300'.

PERFORM bdc_field USING 'BDC_CURSOR'

'SVALD-VALUE(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=FURT'.

PERFORM bdc_field USING 'SVALD-VALUE(01)'

wa_resp-short. "'PL-BK'.

PERFORM bdc_field USING 'SVALD-VALUE(02)'

wa_resp-stext. "'Plan - BendixKing Team'.

*Screen 0200

PERFORM bdc_dynpro USING 'SAPLRHUZ' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EDIT_BIND_DEF-EXPR_LOW(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SAVE'.

  • PERFORM bdc_field USING 'P1000-BEGDA'

  • '23.03.2011'.

  • perform bdc_field using 'P1000-ENDDA'

  • '31.12.9999'.

PERFORM bdc_field USING 'P1000-SHORT'

wa_resp-short. "'PL-BK'.

PERFORM bdc_field USING 'P1000-STEXT'

wa_resp-stext. "'Plan - BendixKing Team'.

PERFORM bdc_field USING 'EDIT_BIND_DEF-EXPR_LOW(02)'

wa_resp-category. "'z11'.

CALL TRANSACTION c_tcode USING it_bdcdata

MODE c_mode

MESSAGES INTO it_bdcmsgcoll.

IF sy-subrc <> 0.

MESSAGE i001(ymsg)."Error Message

  • ROLLBACK WORK.

ELSE.

REFRESH : it_bdcdata,

it_bdcmsgcoll.

**screen 0410

PERFORM bdc_dynpro USING 'SAPLRHUZ' '0410'.

PERFORM bdc_field USING 'BDC_CURSOR'

'P1000-OBJID'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=CHG'.

PERFORM bdc_field USING 'P1000-OBJID'

p_rule. "'90000162'.

**screen 0420

PERFORM bdc_dynpro USING 'SAPLRHUZ' '0420'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=RELI'.

PERFORM bdc_field USING 'DATESET'

'O'.

**screen 0110

PERFORM bdc_dynpro USING 'SAPLRHW0' '0110'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=CONT'.

**screen 0100

PERFORM bdc_dynpro USING 'SAPLRHWL' '0100'.

*perform bdc_field using 'BDC_CURSOR'

  • 'PCHDY-SEARK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=CONT'.

PERFORM bdc_field USING 'PCHDY-SEARK'

wa_resp-short. "'PL-BK'.

**screen 0120

PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.

*perform bdc_field using 'BDC_CURSOR'

  • '04/03'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

**screen 0400

PERFORM bdc_dynpro USING 'SAPLRHUA' '0400'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=INSE'.

*perform bdc_field using 'BDC_CURSOR'

  • 'PERIOD-BEGDA'.

PERFORM bdc_field USING 'PERIOD-BEGDA'

'29.03.2011'.

PERFORM bdc_field USING 'PERIOD-ENDDA'

'31.12.9999'.

CALL TRANSACTION 'OOCU_RESP' USING it_bdcdata

MODE c_mode

MESSAGES INTO it_bdcmsgcoll.

IF sy-subrc <> 0.

MESSAGE i001(ymsg)."Error Message

ROLLBACK WORK.

ELSE.

MESSAGE i000(ymsg)."Success Message

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " BDC_TO_CREATE_REP

Guide me on this.

Thanks

Read only

0 Likes
1,415

Hi,

Could you please suggest me the code if anybody already faced this requirement.

Thanks