DATA po_number TYPE bapimepoheader-po_number.
DATA return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA lt_poitemtext TYPE TABLE OF bapimepotext.
DATA ls_poitemtext TYPE bapimepotext.
DATA:lv_text_form TYPE i.
DATA:lv_in(200)." TYPE string.
DATA:len TYPE i VALUE ‘60’.
DATA:lv_out TYPE string.
DATA:lv_rest TYPE string.
DATA:lv_error.
DATA:lv_mess TYPE string.
DATA:it_data2 LIKE TABLE OF lt_data2 WITH HEADER LINE.
REFRESH:lt_poitemtext,return,it_data2.
APPEND LINES OF lt_data2 TO it_data2.
LOOP AT it_data2.
IF it_data2-type NE ‘’.
CONTINUE.
ENDIF.
CLEAR:ls_poitemtext.
ls_poitemtext-po_item = it_data2-ebelp.
ls_poitemtext-text_id = 'F01'.
"文本处理 begin
IF it_data2-text = ''.
APPEND ls_poitemtext TO lt_poitemtext.
ELSE.
CLEAR:lv_text_form,lv_in,lv_out,lv_rest.
lv_in = it_data2-text.
WHILE lv_in IS NOT INITIAL.
CALL FUNCTION 'TEXT_SPLIT'
EXPORTING
length = len "传入文本值
text = lv_in "拆分长度
IMPORTING
line = lv_out "按长度拆得文本值
rest = lv_rest. "剩余文本值
lv_in = lv_rest.
ADD 1 TO lv_text_form.
ls_poitemtext-text_form = lv_text_form.
ls_poitemtext-text_line = lv_out.
APPEND ls_poitemtext TO lt_poitemtext.
CLEAR lv_out.
ENDWHILE.
ENDIF.
"文本处理 end
po_number = it_data2-ebeln.
AT END OF ebeln.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = po_number
TABLES
return = return
-
POITEM =
-
POITEMX =
-
POADDRDELIVERY = potextitem = lt_poitemtext. CLEAR:lv_error,lv_mess. LOOP AT return WHERE type CA 'EAX' . lv_mess = lv_mess && '/' && return-message. lv_error = 'E'. ENDLOOP. IF lv_error = ''. lv_error = 'S'. lv_mess = '修改成功'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. LOOP AT lt_data2 WHERE ebeln = it_data2-ebeln AND type = ''. lt_data2-type = lv_error. lt_data2-mess = lv_mess. MODIFY lt_data2. ENDLOOP. REFRESH:lt_poitemtext,return.
ENDAT.
ENDLOOP.