method IF_EX_ME_PROCESS_PO_CUST~CHECK.
data im_item TYPE REF TO if_longtexts_mm.
data ld_formatted type mmpur_bool.
data lt_line type table of mmpur_textlines .
data wa_line like line of lt_line.
DATA: it_items TYPE purchase_order_items,
wa_item LIKE LINE OF it_items.
data error_flag type c.
data l_mat_po(100) type c.
data re_item type mepoitem.
data re_header type mepoheader.
* if sy-ucomm = 'MESAVE' or sy-ucomm = 'MECHECKDOC'.
call method im_header->get_data
receiving
re_data = re_header.
if ( re_header-bukrs = '5010' or re_header-bukrs = '5110' or re_header-bukrs = '5180' )
and re_header-bsart eq 'ZES'
and ( re_header-ekorg+0(1) = '5' and re_header-ekorg+3(1) = 'C' )
and ( re_header-lifnr eq '0000400040' or
re_header-lifnr eq '0000400037' or
re_header-lifnr eq '0000405623' or
re_header-lifnr eq '0000406443' ).
CALL METHOD im_header->get_items
RECEIVING
re_items = it_items.
loop at it_items into wa_item.
refresh lt_line.
call method wa_item-item->get_data
receiving
re_data = re_item.
call method wa_item-item->if_longtexts_mm~get_text
exporting
im_tdid = 'F06'
importing
ex_textlines = lt_line
ex_text_formatted = ld_formatted.
clear l_mat_po .
loop at lt_line into wa_line.
if sy-tabix = 1.
move wa_line-tdline to l_mat_po .
else.
concatenate l_mat_po wa_line-tdline into l_mat_po separated by space .
endif.
endloop.
* shift l_mat_po left deleting leading ''.
if l_mat_po ne re_item-txz01.
error_flag = 'X'.
exit.
endif.
endloop.
endif.
if error_flag eq 'X'.
Message E888(sabapdocu)
WITH 'Material PO text must be the same as PO item short text, please check.' .
endif.
*endif.
endmethod.
method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM.
* data im_item TYPE REF TO if_longtexts_mm.
* data ld_formatted type mmpur_bool.
* data lt_line type table of mmpur_textlines .
* data wa_line like line of lt_line.
*
* DATA: it_items TYPE purchase_order_items,
* wa_item LIKE LINE OF it_items.
* data error_flag type c.
* data l_mat_po(100) type c.
* data re_item type mepoitem.
* data re_header type mepoheader.
* DATA: l_header TYPE REF TO if_purchase_order_mm.
* DATA:l_item TYPE mepoitem.
*
* DATA : lv_tdobject TYPE tdobject,
* lv_metafield TYPE mmpur_metafield,
* lt_texttypes TYPE mmpur_t_texttypes,
* ls_texttypes TYPE mmpur_texttypes,
* lt_textlines TYPE mmpur_t_textlines,
* ls_textlines TYPE mmpur_textlines.
*
* DATA l_schedule type ref to if_purchase_order_mm.
* data re_schedules type PURCHASE_ORDER_SCHEDULES.
* data wa_sch LIKE LINE OF re_schedules.
* data re_sch type meposchedule.
*
* data:i_text type MMPUR_T_TEXTLINES,
* wa_text like line of i_text.
*
*
*
* l_header = im_item->get_header( ).
* re_header = l_header->get_data( ).
*
* CALL METHOD im_item->get_schedules
* RECEIVING
* re_schedules = re_schedules.
*
* loop at re_schedules into wa_sch.
*
* call method wa_sch-SCHEDULE->get_data
* receiving
* re_data = re_sch.
** wa_text-TDOBJECT = 'EKPO'.
** wa_text-TDID = 'F03'.
** wa_text-TDLINE = 'ABCDEFG'.
** wa_text-TDFORMAT = '*'.
** append wa_text to i_text.
*
* endloop.
*
*
** if sy-ucomm = 'MESAVE' or sy-ucomm = 'MECHECKDOC'.
** call method IM_header->get_data
** receiving
** re_data = re_header.
*
** if re_header-bukrs = '5230'
** and re_header-ekgrp = '531'
** and re_header-bsart eq 'ZES'
** and ( re_header-ekorg = '523C' )
** and ( re_header-lifnr eq '0000400040' or
** re_header-lifnr eq '0000406443' or
** re_header-lifnr eq '0000400231' or
** re_header-lifnr eq '0000400032' or
** re_header-lifnr eq '0000405623' ).
*
* l_item = im_item->get_data( ).
*
*
** loop at l_item into wa_item.
** refresh lt_line.
*
*
*
* wa_text-TDOBJECT = 'EKPO'.
* wa_text-TDID = 'F03'.
* wa_text-TDLINE = 'ABCDEFG'.
* wa_text-TDFORMAT = '*'.
* append wa_text to i_text.
*
* CLEAR : lv_tdobject.
* im_item->if_longtexts_mm~get_textobject(
* IMPORTING
* ex_tdobject = lv_tdobject
* ex_metafield = lv_metafield ).
*
*** Get Text IDs **
* REFRESH : lt_texttypes.
* CLEAR : ls_texttypes.
*
* im_item->if_longtexts_mm~get_types(
* IMPORTING
* ex_texttypes = lt_texttypes ).
*
*DATA: it_header TYPE thead .
*
* it_header-tdobject = 'EKPO'.
** it_header-tdname = vl_vbeln.
* it_header-tdid = 'F03'.
* it_header-tdspras = sy-langu.
*
*data lt_lines TYPE table of tline .
*data l_lines type tline.
*l_lines-tdline = 'cccc'.
* CALL FUNCTION 'INIT_TEXT'
* EXPORTING
* id = 'F03'
* language = 'E'
** name = me->m_tdname
* object = 'EKPO'
* IMPORTING
* header = IT_header
* TABLES
* lines = lT_LINES
* EXCEPTIONS
* id = 1
* language = 2
* name = 3
* object = 4
* error_message = 99
* OTHERS = 5.
* CALL FUNCTION 'SAVE_TEXT'
* EXPORTING
* header = it_header
* insert = 'X'
* savemode_direct = 'X'
* TABLES
* lines = lT_lines
* EXCEPTIONS
* id = 1
* language = 2
* name = 3
* object = 4
* OTHERS = 5.
* LOOP AT lt_texttypes INTO ls_texttypes.
* CLEAR : ls_textlines.
* REFRESH : lt_textlines.
* MOVE lv_tdobject TO ls_textlines-tdobject.
* MOVE ls_texttypes-tdid TO ls_textlines-tdid.
* MOVE '*' TO ls_textlines-tdformat.
* CONCATENATE 'Test : ' ls_texttypes-tdtext INTO ls_textlines-tdline.
* APPEND ls_textlines TO lt_textlines.
* im_item->if_longtexts_mm~set_text(
* EXPORTING
* im_tdid = ls_texttypes-tdid
* im_textlines = lt_textlines ).
* ENDLOOP.
* call method im_item->if_longtexts_mm~set_text
* exporting
* im_tdid = 'F03'
* im_textlines = i_text.
* endloop.
* endif.
endmethod.