SAP MM 采购订单的Output Type NEU要等其它Output完成后才能成功输出
笔者所在的项目里,某个流程里的采购订单的打印输出使用标准output type NEU.不过它需要在另外一个output输出之后,才能正常输出。
实现方式如下:
在PO output procedure里,NEU这个output type的配置里,维护一个requirement 901.
检查901这个requirement的源代码,
这个requirement的部分源代码如下:
代码语言:javascript复制FORM kobed_901.
…
* Need to Hold NEU output ….
IF komt1-kschl = lc_neu.
ASSIGN (lc_ekko) TO <lfs_ekko>.
IF <lfs_ekko> IS ASSIGNED AND <lfs_ekko>-submi IS INITIAL.
ASSIGN (lc_part) TO <lfs_part>.
IF <lfs_part> IS ASSIGNED.
lt_part = <lfs_part>.
ENDIF.
TRY.
IF line_exists( lt_part[ parvw = lc_zy ] ) AND <lfs_ekko>-ekorg = lc_1100.
SELECT SINGLE lifnr, ktokk FROM lfa1 INTO @DATA(ls_lfa1)
WHERE lifnr = @<lfs_ekko>-lifnr
AND ktokk = @lc_regi.
IF sy-subrc EQ 0.
sy-subrc = 4.
ENDIF.
ENDIF.
CATCH cx_sy_itab_line_not_found.
ENDTRY.
ENDIF.
ENDIF.
ENDIF.
*} INSERT
ENDFORM.
FORM kobev_901.
CONSTANTS: lc_vstat(1) TYPE c VALUE '0'.
LOOP AT xnast WHERE kschl EQ komt1-kschl AND
aktiv EQ space AND
vstat EQ lc_vstat.
EXIT.
ENDLOOP.
CHECK sy-subrc NE 0.
sy-subrc = 4.
CHECK ( komkbea-druvo EQ neu OR komkbea-druvo EQ aend ).
CLEAR sy-subrc.
ENDFORM.
实现的效果是,采购订单创建好之后保存,NEU这个Output并不立即产生。而是等其它ouput完成后,系统才会产生NEU这个output type的输出记录。
-完-
写于2023-4-19.