ABAP批次拆分的BAPI
时间: 2023-05-29 11:02:49 浏览: 133
BAPI_BUPA_BANKDETAIL_CHANGE - 更新银行详细信息
BAPI_BUS1077_CREATE - 创建费用报销单
BAPI_BUS1078_CREATE - 创建差旅费报销单
BAPI_BUS1079_CREATE - 创建日常费用报销单
BAPI_BUS1077_RELEASE - 释放费用报销单
BAPI_BUS1078_RELEASE - 释放差旅费报销单
BAPI_BUS1079_RELEASE - 释放日常费用报销单
相关问题
ABAP批次拆分BAPI
以下是一个简单的ABAP程序,可用于批次拆分BAPI:
```
REPORT z_batch_split_bapi.
* 定义变量
DATA: lv_batchnum TYPE chabn,
lt_batchsplit TYPE STANDARD TABLE OF bapivbfs,
ls_batchsplit TYPE bapivbfs,
lv_split_qty TYPE mara-menge.
* 输入批次号和拆分数量
PARAMETERS: p_batchnum TYPE chabn,
p_split_qty TYPE mara-menge.
* 获取批次信息
SELECT SINGLE * FROM mcha WHERE charg = p_batchnum INTO @DATA(ls_batch).
* 计算剩余数量
lv_split_qty = ls_batch-labst - p_split_qty.
* 准备拆分表
ls_batchsplit-mblnr = ls_batch-mblnr.
ls_batchsplit-zeile = ls_batch-zeile.
ls_batchsplit-posnr = ls_batch-posnr.
ls_batchsplit-charg = p_batchnum.
ls_batchsplit-menge = p_split_qty.
ls_batchsplit-meins = ls_batch-meins.
APPEND ls_batchsplit TO lt_batchsplit.
CLEAR ls_batchsplit.
ls_batchsplit-mblnr = ls_batch-mblnr.
ls_batchsplit-zeile = ls_batch-zeile.
ls_batchsplit-posnr = ls_batch-posnr + 1.
ls_batchsplit-charg = lv_batchnum.
ls_batchsplit-menge = lv_split_qty.
ls_batchsplit-meins = ls_batch-meins.
APPEND ls_batchsplit TO lt_batchsplit.
* 调用拆分BAPI
CALL FUNCTION 'BAPI_BATCH_CHANGE'
EXPORTING
change_data_general = abap_true
TABLES
batchsplit = lt_batchsplit
EXCEPTIONS
error_occurred = 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.
ELSE.
COMMIT WORK.
WRITE: / 'Batch', p_batchnum, 'has been split into', lv_batchnum, 'and remaining quantity is', lv_split_qty.
ENDIF.
```
在这个示例中,我们首先从MCHA表中获取了批次信息,然后计算出剩余数量,并对BAPI_VBFS表进行填充。
然后我们调用了BAPI_BATCH_CHANGE来进行拆分操作。
您需要替换一些变量名称以适应您自己的系统。此代码仅供参考,应进行适当的测试和优化。
ABAP MIGO过账BAPI可以实现批次拆分吗
是的,可以在调用BAPI_GOODSMVT_CREATE BAPI时通过传递相关的参数实现批次拆分。在调用该BAPI时,可以使用BATCH_SPLIT参数来指定拆分的批次数量。例如,如果需要将一个批次拆分成两个批次,则可以将该参数的值设置为2。此外,还需要传递相关的批次信息,例如批次号、数量等。具体的实现方式可以参考SAP提供的文档或相关的开发案例。
阅读全文