一.本地函数:

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

  物料凭证创建,用于货物移动