2020-08-21 12:00发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在尝试使用BAPI_PO_CHANGE更新EKPO zfield(自定义),但无法正常工作。 我已正确填充struct extensioin(我检查了)。 zfield是非字符,因此我实现了badi ME_BAPI_PO_CUST方法map2iextensionin,但该字段仍未更新。 是否有必要在该方法中引发异常? 知道为什么不起作用吗?
亲爱的吉迪恩
这篇文章可能对您有所帮助。
https://answers.sap.com/questions/7489245/populate-custom-fields-in-ekpo-using-bapipochange.html
如果可以,请更新我的内容:-)
最后的意图是我尝试过这种方式,但也尝试过CL_ABAP_CONTAINER_UTILITIES。
FORM bapi_call。
数据: lt_poitem类型bapimepoitem_tp, ls_poitem类型bapimepoitemx_tp, ls_poitemx类型bapimepoitemx_tp, ls_poitemx类型bapimepoitemx ls_bapi_tex类型bapi_te_mepoitemx, lt_extin类型bapiparex_t, ls_extin类型bapiparex, lt_ret类型bapiret2_t。 FIELD-SYMBOLS: 类型c,
ls_poitem-po_item = -ebelp.APPEND ls_poitemx-po_item = -ebelp。* ls_poitemx-po_itemx ='X'.APPEND ls_poitemx> > ls_extin-structure ='BAPI_TE_MEPOITEM'。 ls_bapi_te-po_item = -ebelp。 ls_bapi_te-zzdi_rule_num = -rule_num。
ASSIGN ls_bapi_te到铸造。
分配到铸造。
将移动到ls_bapi_tec。 ls_extin + 30 = 。
APPEND ls_extin到lt_extin。
清除ls_extin。 ls_extin-structure ='BAPI_TE_MEPOITEMX'。 ls_bapi_tex-po_item = -ebelp。 ls_bapi_tex-zzdi_rule_num ='X'。
ASSIGN ls_bapi_tex到铸造
.ASSIGN 到铸造。 ls_extin + 30 = 。
清除ls_extin。
通话功能" BAPI_PO_CHANGE"
导出
采购订单= -ebeln no_authority ='X'
表格
return = lt_ret poitem = lt_poitem poitemx = lt_poitemx
extensionin = lt_extin。
请检查以下SAP注释: 1895028-使用BAPI时不会传输自定义字段。
还请检查是否在自定义EKPO字段的增强功能中使用了tcode验证。
请根据我的 经验,下面的代码足以更新自定义EKPO字段:
s_extin-structure ='BAPI_TE_MEPOITEM'。 ls_bapi_te-po_item = -ebelp。 ls_bapi_te-zzdi_rule_num = -rule_num。
s_extin-valuepart1 = ls_bapi_te。
APPEND ls_extin至lt_extin。
清除ls_extin。 ls_extin-structure ='BAPI_TE_MEPOITEMX'。< br> ls_bapi_tex-po_item = -ebelp。 ls_bapi_tex-zzdi_rule_num ='X'。
s_extin-valuepart1 = ls_bapi_tex。
APPEND ls_extin TO lt_extin。> p>
有注释 1918804-错误:对于任何材料使用ExtensionIn结构时,ME887 管理 nt BAPI 。
有一些解释,并且在BAdI的示例代码中还提供了一些代码。
感谢Sandra,我看到了 之前的笔记,但这对我没有帮助。
他们说:"实现方法MAP2I_EXTENSIONIN和MAP2E_EXTENSIONOUT映射增强参数。" 但他们没有说明如何执行此操作。
我看到了,但对我不起作用。 谢谢
最多设置5个标签!
亲爱的吉迪恩
这篇文章可能对您有所帮助。
https://answers.sap.com/questions/7489245/populate-custom-fields-in-ekpo-using-bapipochange.html
如果可以,请更新我的内容:-)
最后的意图是我尝试过这种方式,但也尝试过CL_ABAP_CONTAINER_UTILITIES。
FORM bapi_call。
数据:
类型c,
lt_poitem类型bapimepoitem_tp,
ls_poitem类型bapimepoitemx_tp,
ls_poitemx类型bapimepoitemx_tp,
ls_poitemx类型bapimepoitemx
ls_bapi_tex类型bapi_te_mepoitemx,
lt_extin类型bapiparex_t,
ls_extin类型bapiparex,
lt_ret类型bapiret2_t。
FIELD-SYMBOLS:
ls_poitem-po_item = -ebelp.APPEND ls_poitemx-po_item = -ebelp。* ls_poitemx-po_itemx ='X'.APPEND ls_poitemx> > ls_extin-structure ='BAPI_TE_MEPOITEM'。 -ebelp。 -rule_num。
ls_bapi_te-po_item =
ls_bapi_te-zzdi_rule_num =
ASSIGN ls_bapi_te到铸造。
分配到铸造。
将移动到ls_bapi_tec。。
ls_extin + 30 =
APPEND ls_extin到lt_extin。
清除ls_extin。 -ebelp。
ls_extin-structure ='BAPI_TE_MEPOITEMX'。
ls_bapi_tex-po_item =
ls_bapi_tex-zzdi_rule_num ='X'。
ASSIGN ls_bapi_tex到铸造
.ASSIGN到铸造。。
ls_extin + 30 =
APPEND ls_extin到lt_extin。
清除ls_extin。
通话功能" BAPI_PO_CHANGE"
导出
采购订单= -ebeln
no_authority ='X'
表格
return = lt_ret
poitem = lt_poitem
poitemx = lt_poitemx
extensionin = lt_extin。
请检查以下SAP注释: 1895028-使用BAPI时不会传输自定义字段。
还请检查是否在自定义EKPO字段的增强功能中使用了tcode验证。
请根据我的 经验,下面的代码足以更新自定义EKPO字段:
s_extin-structure ='BAPI_TE_MEPOITEM'。 -ebelp。 -rule_num。
ls_bapi_te-po_item =
ls_bapi_te-zzdi_rule_num =
s_extin-valuepart1 = ls_bapi_te。
APPEND ls_extin至lt_extin。
清除ls_extin。 -ebelp。
ls_extin-structure ='BAPI_TE_MEPOITEMX'。< br> ls_bapi_tex-po_item =
ls_bapi_tex-zzdi_rule_num ='X'。
s_extin-valuepart1 = ls_bapi_tex。
APPEND ls_extin TO lt_extin。> p>
有注释 1918804-错误:对于任何材料使用ExtensionIn结构时,ME887 管理 nt BAPI 。
有一些解释,并且在BAdI的示例代码中还提供了一些代码。
感谢Sandra,我看到了 之前的笔记,但这对我没有帮助。
他们说:"实现方法MAP2I_EXTENSIONIN和MAP2E_EXTENSIONOUT映射增强参数。" 但他们没有说明如何执行此操作。
我看到了,但对我不起作用。 谢谢
一周热门 更多>