Step | Issue 1 | Issue 2 |
1 | /AFS/BAPI_SALESORD_CHANGE | BAPI_SALESORDER_CHANGE |
2 | /AFS/VBAK_SALESDOCUMENT_CHANGE | SD_SALESDOCUMENT_CHANGE |
3 | map_vbak_to_bapisdhead | MAP_VBAK_TO_BAPISDHD |
在工作中,由于需要对SO 功能进行改进,增加一些Customer Field ,一般情况下,均需要在以下 Table/Structure 中增加字段:
以Header 表(VBAK)为例:(Detail 表有同样的一组Structure 对应)
1, BAPE_VBAK -> ZABAPE_VBAK
2, BAPE_VBAKX -> ZABAPE_VBAKX
3, VBAKKOZ -> ZAVBAKKOZ
4, VBAKKOZX -> ZAVBAKKOZX
但在增加字段过多,超过960个字符(BAPIPAREX 类型的长充)之后,在调用上表中两个Standard BAPI 进行SO Change 时,就会在其Sub Method :MAP_VBAK_TO_BAPISDHD 出现错误: “DATA_OFFSET_LENGTH_TOO_LARGE” - “CX_SY_RANGE_OUT_OF_BOUNDS”。
经联系SAP 后,通过Implement 以下两个SAP note 之后解决:(两个SAP note 分别对应两个BAPI 进行改进)
1936790 - Short dumponSO BAPI /AFS/BAPI_SALESORD_CHANGE
1765710 - BAPI termination DATA_OFFSET_LENGTH_TOO_LARGE (II), BAPI_SALESORDER_CHANGE