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

Please help me understand this program

Former Member
0 Likes
920

REPORT zmmrus160 NO STANDARD PAGE HEADING

LINE-SIZE 255 LINE-COUNT 65(3) MESSAGE-

INCLUDE zmmrus160top.

INCLUDE <icon>.

INITIALIZATION.

PERFORM initialize_variant.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.

PERFORM f4_for_variant.

AT SELECTION-SCREEN ON p_vari.

  • PERFORM validate_user_selection.

PERFORM check_variant.

AT SELECTION-SCREEN.

AT SELECTION-SCREEN ON p_wrkst.

  • PERFORM authority_check.

        • START OF SELECTION ****

START-OF-SELECTION.

PERFORM get_materials.

PERFORM get_tlmap.

PERFORM validate_tlmap_mapl.

PERFORM build_events USING gt_events[].

PERFORM build_comment USING gt_list_top_of_page[].

  • PERFORM build_sp_group USING gt_sp_group[].

PERFORM build_sort.

PERFORM build_layout USING gs_layout.

PERFORM build_fieldcat CHANGING gt_fieldcat[].

END-OF-SELECTION.

PERFORM write_report_alv. "write report

&----


*& Form initialize_variant

&----


  • text

----


FORM initialize_variant .

CLEAR gs_variant.

gs_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

i_save = 'A'

CHANGING

cs_variant = gs_variant

EXCEPTIONS

not_found = 2.

IF sy-subrc EQ 0.

p_vari = gs_variant-variant.

ENDIF.

ENDFORM. " INITIALIZE_VARIANT

&----


*& Form f4_for_variant

&----


  • text

----


FORM f4_for_variant .

DATA: lv_exit.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

is_variant = gs_variant

i_save = 'A'

IMPORTING

e_exit = lv_exit

es_variant = gs_variant

EXCEPTIONS

not_found = 2.

IF sy-subrc = 2.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.

IF lv_exit = space.

p_vari = gs_variant-variant.

ENDIF.

ENDIF.

gs_variant-report = sy-repid.

ENDFORM. "f4_for_variant

&----


*& Form check_variant

&----


  • text

----


FORM check_variant .

IF NOT p_vari IS INITIAL.

MOVE p_vari TO gs_variant-variant.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

i_save = 'A'

CHANGING

cs_variant = gs_variant

EXCEPTIONS

wrong_input = 1

not_found = 2

program_error = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDIF.

ENDFORM. " check_variant

----


  • FORM GET_MATERIALS *

----


  • this form creates MATTAB

----


FORM get_materials.

*get materials for the report

SELECT matnr spart matkl prdha meins wrkst extwg groes normt

FROM mara

INTO TABLE gt_mara

WHERE matnr IN p_matnr

AND spart IN p_spart

AND matkl IN p_matkl

AND prdha IN p_prdha

AND wrkst IN p_wrkst

AND extwg IN p_extwg

AND groes IN p_groes

AND normt IN p_normt

AND lvorm = space.

CHECK sy-subrc IS INITIAL.

SELECT matnr werks

FROM marc

INTO TABLE gt_marc

FOR ALL ENTRIES IN gt_mara

WHERE matnr = gt_mara-matnr

AND werks IN p_werks

AND lvorm = space

AND mmsta IN (space, '01').

CHECK sy-subrc IS INITIAL.

  • SELECT matnr werks lgort

  • FROM mard

  • INTO TABLE gt_mard

  • FOR ALL ENTRIES IN gt_marc

  • WHERE matnr = gt_marc-matnr

  • AND werks = gt_marc-werks

  • AND lgort IN p_lgort

  • AND lvorm = space.

*

  • CHECK sy-subrc IS INITIAL.

*

SORT gt_mara BY matnr.

SORT gt_marc BY matnr werks.

  • SORT gt_mard BY matnr werks lgort.

ENDFORM. "GET_MATERIALS

&----


*& Form get_tlmap

&----


  • text

----


FORM get_tlmap.

DATA: BEGIN OF lt_tlmap OCCURS 0.

INCLUDE STRUCTURE zmmtlmap.

DATA: END OF lt_tlmap.

DATA: lv_fetflag LIKE zmmtlmap-fetflag.

*get task list map for the materials

LOOP AT gt_mara.

READ TABLE gt_marc WITH KEY matnr = gt_mara-matnr

BINARY SEARCH.

CHECK sy-subrc IS INITIAL.

LOOP AT gt_marc FROM sy-tabix.

IF gt_marc-matnr <> gt_mara-matnr.

EXIT.

ENDIF.

IF gt_mara-normt CS 'FET'.

lv_fetflag = 'X'.

ELSE.

CLEAR lv_fetflag.

ENDIF.

*select from ZMMTLMAP...

SELECT * FROM zmmtlmap

INTO TABLE lt_tlmap

WHERE werks = gt_marc-werks

AND spart = gt_mara-spart

AND matkl = gt_mara-matkl

AND wrkst = gt_mara-wrkst

AND groes = gt_mara-groes

AND fetflag = lv_fetflag

AND prdha = gt_mara-prdha.

IF NOT sy-subrc IS INITIAL.

*...sometimes seed size (GROES) can be blank

SELECT * FROM zmmtlmap

INTO TABLE lt_tlmap

WHERE werks = gt_marc-werks

AND spart = gt_mara-spart

AND matkl = gt_mara-matkl

AND wrkst = gt_mara-wrkst

AND groes = space

AND fetflag = lv_fetflag

AND prdha = gt_mara-prdha.

ENDIF.

IF NOT sy-subrc IS INITIAL.

*...look for blank PRDHA

SELECT * FROM zmmtlmap

INTO TABLE lt_tlmap

WHERE werks = gt_marc-werks

AND spart = gt_mara-spart

AND matkl = gt_mara-matkl

AND wrkst = gt_mara-wrkst

AND groes = gt_mara-groes

AND fetflag = lv_fetflag

AND prdha = space.

ENDIF.

IF NOT sy-subrc IS INITIAL.

*...look for blank PRDHA and GROES

SELECT * FROM zmmtlmap

INTO TABLE lt_tlmap

WHERE werks = gt_marc-werks

AND spart = gt_mara-spart

AND matkl = gt_mara-matkl

AND wrkst = gt_mara-wrkst

AND groes = space

AND fetflag = lv_fetflag

AND prdha = space.

ENDIF.

CHECK sy-subrc IS INITIAL.

LOOP AT lt_tlmap.

CLEAR gt_tlmap.

gt_tlmap-matnr = gt_mara-matnr.

MOVE-CORRESPONDING lt_tlmap TO gt_tlmap.

APPEND gt_tlmap.

ENDLOOP. "tlmap

ENDLOOP. "marc

ENDLOOP. "mara

ENDFORM. "get_tlmap

&----


*& Form validate_tlmap_mapl

&----


  • text

----


FORM validate_tlmap_mapl .

DATA: lv_plnnr.

LOOP AT gt_tlmap.

SELECT SINGLE plnnr

FROM mapl

INTO lv_plnnr

WHERE matnr = gt_tlmap-matnr

AND werks = gt_tlmap-werks

AND plnty = gt_tlmap-plnty

AND plnnr = gt_tlmap-plnnr

AND plnal = gt_tlmap-plnal

AND loekz = space.

IF sy-subrc IS INITIAL.

gt_tlmap-errflag = 'A'. "already assigned

gt_tlmap-notes = 'Already assigned'.

gt_tlmap-linecolor = 'C31'.

ENDIF.

MODIFY gt_tlmap.

ENDLOOP.

ENDFORM. " validate_tlmap_mapl

&----


*& Form build_fieldcat

&----


  • text

----


FORM build_fieldcat CHANGING lt_fieldcat TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'GT_TLMAP'

i_inclname = 'ZMMRUS160TOP'

CHANGING

ct_fieldcat = lt_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

IF sy-subrc NE 0.

EXIT.

ENDIF.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

LOOP AT lt_fieldcat INTO ls_fieldcat.

*column headings, output lengths, field positions etc

CASE ls_fieldcat-fieldname.

WHEN 'ERRFLAG'.

ls_fieldcat-seltext_s = 'Error!'.

ls_fieldcat-seltext_m = 'Error!'.

ls_fieldcat-seltext_l = 'Error!'.

ls_fieldcat-reptext_ddic = 'Error!'.

WHEN 'NOTES'.

ls_fieldcat-seltext_s = 'Notes'.

ls_fieldcat-seltext_m = 'Notes'.

ls_fieldcat-seltext_l = 'Notes'.

ls_fieldcat-reptext_ddic = 'Notes'.

ENDCASE.

MODIFY lt_fieldcat FROM ls_fieldcat.

ENDLOOP.

ENDFORM. "build_fieldcat

&----


*& Form build_layout

&----


  • text

----


FORM build_layout USING ls_layout TYPE slis_layout_alv.

ls_layout-info_fieldname = 'LINECOLOR'.

  • LS_LAYOUT-BOX_FIELDNAME = 'BOX'.

  • LS_LAYOUT-LIGHTS_FIELDNAME = 'LIGHTS'.

  • ls_layout-zebra = 'X'.

  • LS_LAYOUT-NO_VLINE = 'X'.

  • ls_layout-no_unit_splitting = 'X'.

  • ls_layout-cell_merge = space.

  • ls_layout-totals_only = 'X'.

ls_layout-colwidth_optimize = 'X'.

  • ls_layout-no_sumchoice = 'X'.

  • ls_layout-no_subchoice = 'X'.

*

ls_layout-box_fieldname = 'CHECKBOX'.

ls_layout-box_tabname = 'GT_TLMAP'.

ls_layout-no_totalline = 'X'.

  • ls_layout-coltab_fieldname = 'CELLCOLORS'.

ENDFORM. "BUILD_LAYOUT

&----


*& Form build_sort

&----


  • text

----


FORM build_sort.

DATA: is_sort TYPE slis_sortinfo_alv.

REFRESH gt_sort.

CLEAR is_sort.

is_sort-spos = 1.

is_sort-fieldname = 'MATNR'.

is_sort-up = 'X'.

APPEND is_sort TO gt_sort.

CLEAR is_sort.

is_sort-spos = 2.

is_sort-fieldname = 'WERKS'.

is_sort-up = 'X'.

APPEND is_sort TO gt_sort.

CLEAR is_sort.

is_sort-spos = 3.

is_sort-fieldname = 'LGORT'.

is_sort-up = 'X'.

APPEND is_sort TO gt_sort.

ENDFORM. " build_sort

&----


*& Form build_sp_group

&----


  • text

----


FORM build_sp_group USING us_t_sp_group TYPE slis_t_sp_group_alv.

DATA: ls_sp_group TYPE slis_sp_group_alv.

*

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'A'.

ls_sp_group-text = 'Key Fields'.

APPEND ls_sp_group TO us_t_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'B'.

ls_sp_group-text = 'Forecast Quantities'.

APPEND ls_sp_group TO us_t_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'C'.

ls_sp_group-text = 'Short Position'.

APPEND ls_sp_group TO us_t_sp_group.

  • RN MOD

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'C'.

ls_sp_group-text = 'Ship Position'.

APPEND ls_sp_group TO us_t_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'C'.

ls_sp_group-text = 'Shippable Qty'.

APPEND ls_sp_group TO us_t_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'C'.

ls_sp_group-text = 'Rebag Qty'.

APPEND ls_sp_group TO us_t_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'C'.

ls_sp_group-text = 'Retag Shippable'.

APPEND ls_sp_group TO us_t_sp_group.

ENDFORM. "build_sp_group

&----


*& Form pf_status_set

&----


  • text

----


  • -->EXTAB text

----


FORM pf_status_set USING extab TYPE slis_t_extab.

SET PF-STATUS 'ALV_STATUS' EXCLUDING extab.

ENDFORM. "PF_STATUS_SET

&----


*& Form build_events

&----


  • text

----


  • -->US_T_EVENTStext

----


FORM build_events USING us_t_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = us_t_events.

READ TABLE us_t_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE gc_form_top_of_page TO ls_event-form.

APPEND ls_event TO us_t_events.

ENDIF.

READ TABLE us_t_events WITH KEY name = slis_ev_user_command

INTO ls_event.

IF sy-subrc = 0.

MOVE gc_form_user_command TO ls_event-form.

APPEND ls_event TO us_t_events.

ENDIF.

ENDFORM. "build_EVENTs

&----


*& Form build_comment

&----


  • text

----


FORM build_comment USING us_t_top_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

DATA: tmp_char(10).

ls_line-typ = 'H'.

ls_line-info = text-h01.

APPEND ls_line TO us_t_top_of_page.

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = 'User/System:'.

CONCATENATE sy-uname sy-sysid sy-mandt

INTO ls_line-info SEPARATED BY space.

APPEND ls_line TO us_t_top_of_page.

ls_line-key = 'Date/Time:'.

WRITE sy-datlo TO ls_line-info.

WRITE sy-timlo TO tmp_char.

CONCATENATE ls_line-info tmp_char sy-zonlo

INTO ls_line-info SEPARATED BY space.

APPEND ls_line TO us_t_top_of_page.

ENDFORM. " build_COMMENT

&----


*& Form top_of_page

&----


  • text

----


FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = gt_list_top_of_page.

ENDFORM. "TOP_OF_PAGE

&----


*& Form write_report_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM write_report_alv .

g_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_repid

i_callback_pf_status_set = 'PF_STATUS_SET'

is_layout = gs_layout

it_fieldcat = gt_fieldcat[]

it_sort = gt_sort[]

i_save = 'A'

it_events = gt_events[]

TABLES

t_outtab = gt_tlmap

EXCEPTIONS

program_error = 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. "write_report_alv

&----


*& Form user_command

&----


  • text

----


FORM user_command USING ucomm TYPE sy-ucomm selfield TYPE slis_selfield.

CASE sy-ucomm.

WHEN 'PROCESS'.

PERFORM process_materials.

selfield-refresh = 'X'.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form process_materials

&----


  • text

----


FORM process_materials .

REFRESH gt_taskl.

LOOP AT gt_tlmap WHERE checkbox = 'X'.

CHECK gt_tlmap-errflag IS INITIAL.

CLEAR gt_taskl.

MOVE-CORRESPONDING gt_tlmap TO gt_taskl.

APPEND gt_taskl.

ENDLOOP.

SORT gt_taskl BY werks plnty plnnr matnr.

  • PERFORM bdc_assign_to_tasklists.

PERFORM bapi_assign_to_tasklists.

LOOP AT gt_tlmap.

READ TABLE gt_taskl WITH KEY werks = gt_tlmap-werks

plnty = gt_tlmap-plnty

plnnr = gt_tlmap-plnnr

matnr = gt_tlmap-matnr

BINARY SEARCH.

CHECK sy-subrc IS INITIAL.

CLEAR gt_tlmap-checkbox.

READ TABLE gt_errtab WITH KEY plnty = gt_tlmap-plnty

plnnr = gt_tlmap-plnnr

BINARY SEARCH.

IF sy-subrc IS INITIAL.

gt_tlmap-errflag = 'X'.

gt_tlmap-notes = gt_errtab-notes.

ELSE.

gt_tlmap-errflag = 'P'.

gt_tlmap-notes = 'Processed'.

ENDIF.

IF gt_tlmap-errflag = 'X'.

gt_tlmap-linecolor = 'C61'.

ELSEIF gt_tlmap-errflag = 'P'.

gt_tlmap-linecolor = 'C51'.

ENDIF.

MODIFY gt_tlmap.

ENDLOOP.

ENDFORM. " process_materials

&----


*& Form bdc_assign_to_tasklists

&----


  • text

----


FORM bdc_assign_to_tasklists .

LOOP AT gt_taskl.

AT NEW plnty.

IF gt_taskl-plnty = c_plnty_rout.

gv_scr_init = '1010'.

gv_scr_assn = '1010'.

gv_tran = 'CA02'.

ELSEIF gt_taskl-plnty = c_plnty_insp.

gv_scr_init = '8010'.

gv_scr_assn = '4010'.

gv_tran = 'QP02'.

ENDIF.

ENDAT.

AT NEW plnnr.

REFRESH bdctab.

PERFORM bdc_dynpro USING: 'X' 'SAPLCPDI' gv_scr_init,

' ' 'RC27M-WERKS' space,

' ' 'RC27M-MATNR' space,

' ' 'RC271-PLNNR' gt_taskl-plnnr,

' ' 'RC271-PLNAL' space,

' ' 'BDC_OKCODE' '=ALUE'.

PERFORM bdc_dynpro USING: 'X' 'SAPLCPDI' '1200',

' ' 'BDC_OKCODE' '=MTUE'.

PERFORM bdc_dynpro USING: 'X' 'SAPLCZDI' gv_scr_assn,

' ' 'BDC_OKCODE' 'P++'.

ENDAT.

PERFORM bdc_dynpro USING: 'X' 'SAPLCZDI' gv_scr_assn,

' ' 'BDC_OKCODE' 'P+'.

SHIFT gt_taskl-matnr LEFT DELETING LEADING '0'.

PERFORM bdc_dynpro USING: 'X' 'SAPLCZDI' gv_scr_assn,

' ' 'BDC_OKCODE' 'P+',

' ' 'MAPL-PLNAL(2)' gt_taskl-plnal,

' ' 'MAPL-MATNR(2)' gt_taskl-matnr,

' ' 'MAPL-WERKS(2)' gt_taskl-werks.

AT END OF plnnr.

PERFORM bdc_dynpro USING: 'X' 'SAPLCZDI' gv_scr_assn,

' ' 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING: 'X' 'SAPLCPDI' '1200',

' ' 'BDC_OKCODE' '=BU'.

PERFORM call_tran USING gv_tran.

IF NOT bdcrc IS INITIAL.

PERFORM store_error.

ENDIF.

ENDAT.

ENDLOOP.

SORT gt_errtab BY plnty plnnr.

ENDFORM. "bdc_assign_to_tasklists

&----


*& Form bdc_dynpro

&----


  • text

----


FORM bdc_dynpro USING dynbegin name value.

CLEAR bdctab.

IF dynbegin EQ charx.

MOVE: name TO bdctab-program,

value TO bdctab-dynpro,

charx TO bdctab-dynbegin.

ELSE.

MOVE: name TO bdctab-fnam,

value TO bdctab-fval.

ENDIF.

APPEND bdctab.

ENDFORM. " BDC_DYNPRO

&----


*& Form call_tran

&----


  • text

----


FORM call_tran USING tcode.

CLEAR bdcmsg. REFRESH bdcmsg.

CALL TRANSACTION tcode

USING bdctab

MODE bdcmode

UPDATE bdcupdt

MESSAGES INTO bdcmsg.

bdcrc = sy-subrc.

ENDFORM. " CALL_TRAN

&----


*& Form bapi_assign_to_tasklists

&----


FORM bapi_assign_to_tasklists .

DATA: save_di LIKE save_di.

DATA: BEGIN OF mapl_di OCCURS 0.

INCLUDE STRUCTURE mapl_di.

DATA: END OF mapl_di.

DATA: error_di_exp LIKE error_di.

DATA: plnnr_exp LIKE rc271-plnnr.

DATA: BEGIN OF error_di_tab OCCURS 0.

INCLUDE STRUCTURE error_di.

DATA: END OF error_di_tab.

DATA: BEGIN OF errtab OCCURS 0.

INCLUDE STRUCTURE cmfmsg.

DATA: END OF errtab.

DATA: BEGIN OF rcuob1 OCCURS 0.

INCLUDE STRUCTURE rcuob1.

DATA: END OF rcuob1.

DATA: BEGIN OF obj_nfield OCCURS 0.

INCLUDE STRUCTURE obj_nfield.

DATA: END OF obj_nfield.

DATA: BEGIN OF rcuob1_ex OCCURS 0.

INCLUDE STRUCTURE rcuob1_ex.

DATA: END OF rcuob1_ex.

DATA: BEGIN OF rcuob2 OCCURS 0.

INCLUDE STRUCTURE rcuob2.

DATA: END OF rcuob2.

  • relevant ones ---

DATA: rc271_ex LIKE rc271_ex.

DATA: BEGIN OF mapl_di_ex OCCURS 0.

INCLUDE STRUCTURE mapl_di_ex.

DATA: END OF mapl_di_ex.

  • relevant ones ---

DATA: BEGIN OF plko_di_ex OCCURS 0.

INCLUDE STRUCTURE plko_di_ex.

DATA: END OF plko_di_ex.

DATA: BEGIN OF plpo_di_ex OCCURS 0.

INCLUDE STRUCTURE plpo_di_ex.

DATA: END OF plpo_di_ex.

DATA: BEGIN OF plfl_di_ex OCCURS 0.

INCLUDE STRUCTURE plfl_di_ex.

DATA: END OF plfl_di_ex.

DATA: BEGIN OF plmz_di_ex OCCURS 0.

INCLUDE STRUCTURE plmz_di_ex.

DATA: END OF plmz_di_ex.

DATA: BEGIN OF plfh_di_ex OCCURS 0.

INCLUDE STRUCTURE plfh_di_ex.

DATA: END OF plfh_di_ex.

DATA: BEGIN OF txt_obj_ex OCCURS 0.

INCLUDE STRUCTURE txt_obj_ex.

DATA: END OF txt_obj_ex.

DATA: BEGIN OF txt_di_tab OCCURS 0.

INCLUDE STRUCTURE tline.

DATA: END OF txt_di_tab.

LOOP AT gt_taskl.

*XXX when does QP02 come in - test that scenario

AT NEW plnty.

IF gt_taskl-plnty = c_plnty_rout.

gv_scr_init = '1010'.

gv_scr_assn = '1010'.

gv_tran = 'CA02'.

ELSEIF gt_taskl-plnty = c_plnty_insp.

gv_scr_init = '8010'.

gv_scr_assn = '4010'.

gv_tran = 'QP02'.

ENDIF.

ENDAT.

rc271_ex-tcode = gv_tran.

rc271_ex-werks = gt_taskl-werks.

rc271_ex-plnnr = gt_taskl-plnnr.

rc271_ex-plnal = gt_taskl-plnal.

rc271_ex-sttag = sy-datum.

WRITE sy-datum TO rc271_ex-sttag MM/DD/YYYY.

save_di-syn_save = 'X'.

mapl_di_ex-matnr = gt_taskl-matnr.

mapl_di_ex-werks = gt_taskl-werks.

mapl_di_ex-plnal = gt_taskl-plnal.

mapl_di_ex-acttyp = 'H'.

APPEND mapl_di_ex.

CALL FUNCTION 'CP_BD_DIRECT_INPUT_PLAN_EXT'

EXPORTING

rc271_ex_imp = rc271_ex

  • RC27M_EX_IMP = ''

save_di_imp = save_di

IMPORTING

error_di_exp = error_di_exp

plnnr_exp = plnnr_exp

TABLES

plko_di_ex_tab = plko_di_ex

mapl_di_ex_tab = mapl_di_ex

plpo_di_ex_tab = plpo_di_ex

plfl_di_ex_tab = plfl_di_ex

plmz_di_ex_tab = plmz_di_ex

plfh_di_ex_tab = plfh_di_ex

text_obj_di_ex_tab = txt_obj_ex

text_di_tab = txt_di_tab

knowl_alloc_obj_di_ex_tab = rcuob1_ex

knowl_alloc_di_ex_tab = rcuob2

obj_null_field_tab = obj_nfield

error_plan_di_tab = error_di_tab

error_plan_tab = errtab.

READ TABLE errtab INDEX 1.

IF errtab-msgty = 'E'.

gt_errtab-plnty = gt_taskl-plnty.

gt_errtab-plnnr = gt_taskl-plnnr.

DATA: msgtxt(250).

SELECT SINGLE text FROM t100

INTO msgtxt

WHERE sprsl = 'E'

AND arbgb = errtab-arbgb

AND msgnr = errtab-msgnr.

IF NOT sy-subrc IS INITIAL.

gt_errtab-notes = errtab-msgv1.

ELSE.

REPLACE '&' WITH errtab-msgv1 INTO gt_errtab-notes.

CONDENSE gt_errtab-notes.

REPLACE '&' WITH errtab-msgv2 INTO gt_errtab-notes.

CONDENSE gt_errtab-notes.

REPLACE '&' WITH errtab-msgv3 INTO gt_errtab-notes.

CONDENSE gt_errtab-notes.

REPLACE '&' WITH errtab-msgv4 INTO gt_errtab-notes.

CONDENSE gt_errtab-notes.

ENDIF.

APPEND gt_errtab.

ENDIF.

ENDLOOP.

SORT gt_errtab BY plnty plnnr.

ENDFORM. " bapi_assign_to_tasklists

&----


*& Form store_error

&----


FORM store_error .

CLEAR gt_errtab.

gt_errtab-plnty = gt_taskl-plnty.

gt_errtab-plnnr = gt_taskl-plnnr.

READ TABLE bdcmsg WITH KEY msgtyp = 'E'.

PERFORM get_message_text USING bdcmsg

CHANGING gt_errtab-notes.

APPEND gt_errtab.

ENDFORM. " store_error

&----


*& Form get_message_text

&----


FORM get_message_text USING us_bdcmsg STRUCTURE bdcmsgcoll

CHANGING ch_msgtxt.

DATA: msgtxt(250).

SELECT SINGLE text FROM t100

INTO msgtxt

WHERE sprsl = us_bdcmsg-msgspra

AND arbgb = us_bdcmsg-msgid

AND msgnr = us_bdcmsg-msgnr.

IF NOT sy-subrc IS INITIAL.

msgtxt = us_bdcmsg-msgv1.

ELSE.

REPLACE '&' WITH us_bdcmsg-msgv1 INTO msgtxt.

CONDENSE msgtxt.

REPLACE '&' WITH us_bdcmsg-msgv2 INTO msgtxt.

CONDENSE msgtxt.

REPLACE '&' WITH us_bdcmsg-msgv3 INTO msgtxt.

CONDENSE msgtxt.

REPLACE '&' WITH us_bdcmsg-msgv4 INTO msgtxt.

CONDENSE msgtxt.

ENDIF.

ch_msgtxt = msgtxt.

ENDFORM. "GET_MESSAGE_TEXT

5 REPLIES 5
Read only

Former Member
0 Likes
819

Hi

It's a program uses ALV tools to display the data of material, what don't you understand?

Max

Read only

0 Likes
819

Thanks for the reply..I guess I was topo vague is asking the previous question.

For the same program.The program is using direct input method to update the routing of the material i.e CA02. I want to know will it work for inspection as well i.e QP02.If it can work what modification will i have to make here in this funtion module.

If this does not work, is there any direct input method to do the inspection plan for materials.

The name of the function module is CP_BD_DIRECT_INPUT_PLAN_EXT.

Thanks in adnace

deepak

Read only

0 Likes
819

Hi

I don't know that fm but probably It could work for your case too: CA02 and QP02 run the same program. Try!

Max

Read only

0 Likes
819

Hi Max,

That fm does not work for qp02.

Do you have any idea as to what fm would help me to assign the material for inspection.

thanks

deepak

Read only

Former Member
0 Likes
819

Hello,

It displays the Material data in an ALV grid.

Regards,

Shehryar