一.本地函数:
DDIF_NAMETAB_GET:获取结构或者内表的信息
CONVERSION_EXIT_ALPHA_INPUT: 补零函数
CONVERSION_EXIT_ALPHA_OUTPUT: 去零函数
CONVERSION_EXIT_MATN1_INPUT: 物料号补零函数
CONVERSION_EXIT_MATN1_OUTPUT: 物料号去零函数
二.BAPI
1. BAPI_OUTB_DELIVERY_CHANGE:
修改交货单信息,可更新库位和批次(改增强字段需要加增强)
2. BAPI_OUTB_DELIVERY_CONFIRM_DEC
更安全,但只能发货过账,不能冲销
WS_DELIVERY_UPDATE 外向交货单发货过账BAPI,过账,冲销,删除都可以,但只是个函数,缺少BAPI校验。由于BAPI_OUTB_DELIVERY_CONFIRM_DEC的BAPI会提示不能冲销的问题解决办法是在增强里去清空一个字段:
增强BADI:LE_SHP_DELIVERY_PROC
方法:CHANGE_DELIVERY_HEADER
清空值:CS_LIKP-VLSTK.“分配状态(分散仓库处理)
3.BAPI_TRANSACTION_COMMIT: 提交BAPI对业务操作的更改
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
EXPORTING
wait = ‘X’.
说明:调用的时候,通常BAPI_TRANSACTION_COMMIT的wait参数是空的,那么就会导致commit work and wait不会执行,而是简单的commit work操作。这样后续的BAPI可能需要上一个bapi所操作的数据,但这些数据可能并没有提交完成,就会导致以后的bapi都无法正常顺利的执行。需要将参数wait赋值’X’,才可以保证后续的操作正常进行。
注意:这个BAPI之后会执行一个buffer_refresh_all函数,在数据提交后还有个刷新了BAPI buffer缓冲区的操作,这个操作可避免多表写入时发生的错误,当我们要连续修改很多表且这些表又相互关联时最好使用BAPI_TRANSACTION_COMMIT。
一般情况下SAP的数据提交都是异步提交,都是在程序执行完毕后统一commit,当后续代码需要依赖前面BAPI执行数据,就需要主动同步提交数据才行,用’X’表示同步提交,只有在数据提交完毕后程序才接着往下执行。
4.BAPI_TRANSACTION_ROLLBACK: 回滚
说明:会把上一次数据commit之后与这一次rollback之前的所有操作都回滚,如果有写日志操作,就需要在写日志完毕之后主动同步提交数据,
从而避免被rollback掉。
5.BAPI_ACC_DOCUMENT_POST
创建会计凭证
6.BAPI_OBJCL_GETDETAIL
得到物料的类下面的所有特性值,然后修改特性值
7.BAPI_GOODSMVT_CREATE
物料凭证创建,用于货物移动