FORM zvf01 .
DATA:lt_vbeln TYPE TABLE OF ty_out WITH HEADER LINE.
DATA:lv_mseg TYPE string.
lt_vbeln[] = lt_out[] .
DELETE lt_vbeln WHERE check <> ‘X’.
SORT lt_vbeln BY vbeln_d.
DELETE ADJACENT DUPLICATES FROM lt_vbeln COMPARING vbeln_d.
LOOP AT lt_vbeln ASSIGNING FIELD-SYMBOL() .
SELECT SINGLE fkivk INTO @DATA(l_fkivk) FROM vbuk WHERE vbeln = @-vbeln_d.
IF sy-subrc = 0 AND l_fkivk <> ‘C’.
PERFORM bdc_dynpro USING 'SAPMV60A' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KOMFK-VBELN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=FAKT'.
PERFORM bdc_field USING 'KOMFK-VBELN(01)'
<fs>-vbeln_d.
PERFORM bdc_dynpro USING 'SAPMV60A' '0104'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBRK-FKART'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VF01' USING bdcdata MODE 'N' MESSAGES INTO messtab.
READ TABLE messtab INTO DATA(ls_msg) INDEX 1.
IF ls_msg-msgv1 IS NOT INITIAL .
<fs>-msg = '销售开票完成'.
<fs>-status = icon_green_light.
<fs>-vbeln_vf = ls_msg-msgv1.
ELSE.
LOOP AT messtab.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = messtab-msgid
msgnr = messtab-msgnr
msgv1 = messtab-msgv1
msgv2 = messtab-msgv2
msgv3 = messtab-msgv3
msgv4 = messtab-msgv4
IMPORTING
message_text_output = lv_mseg.
<fs>-msg = <fs>-msg && lv_mseg .
<fs>-status = icon_red_light.
CLEAR : lv_mseg .
ENDLOOP.
ENDIF.
CLEAR: messtab[].
ENDIF.
ENDLOOP.
LOOP AT lt_out ASSIGNING FIELD-SYMBOL(<fs_o>) .
READ TABLE lt_vbeln WITH KEY vbeln_d = <fs_o>-vbeln_d BINARY SEARCH.
IF sy-subrc = 0.
<fs_o>-vbeln_vf = lt_vbeln-vbeln_vf.
<fs_o>-msg = lt_vbeln-msg.
<fs_o>-status = lt_vbeln-status.
"更新sto01
UPDATE ztsto_01 SET vbeln_vf = lt_vbeln-vbeln_vf WHERE ebeln = lt_vbeln-ebeln AND ebelp = lt_vbeln-ebelp AND vbeln_d = lt_vbeln-vbeln_d.
IF sy-subrc = 0.
COMMIT WORK.
ENDIF.
ENDIF.
CLEAR:lt_vbeln.
ENDLOOP.
"第二步开采购发票
PERFORM fr_miro.
ENDFORM.
-
bdcdata-program:程序名
-
bdcdata-dynpro:屏幕号
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = ‘X’.
APPEND bdcdata.
ENDFORM. -
bdcdata-fnam:字段名
-
bdcdata-fval:字段值
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM.