‎2011 Mar 24 7:55 AM
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
‎2011 Mar 25 11:56 AM
Hi Friends,
Can you guide me a fm with inputs for the above requirement.
Thanks,
Chandu
‎2011 Mar 29 6:12 AM
Hello,
Please respond anybody if you know the suitable fm.
Thanks
‎2011 Mar 29 6:27 AM
‎2011 Mar 29 6:39 AM
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
‎2011 Mar 30 7:52 AM
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
‎2011 Apr 07 11:20 AM
Hi,
Could you please suggest me the code if anybody already faced this requirement.
Thanks