关于在BAPI_OUTB_DELIVERY_CHANGE中使用EXTENSION1和EXTENSION2

2020-08-30 01:47发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

任何人都可以帮我如何在BAPI_OUTB_DELIVERY_CHANGE的EXTENSION1和EXTENSION2中为zfields编码

谢谢

Nethaji。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

任何人都可以帮我如何在BAPI_OUTB_DELIVERY_CHANGE的EXTENSION1和EXTENSION2中为zfields编码

谢谢

Nethaji。

付费偷看设置
发送
9条回答
SAP小黑
1楼 · 2020-08-30 02:40.采纳回答

嗨,

请通过下面的链接。 使用的bapi不同,但是您可以看到如何使用EXTENSION1和EXTENSION2。

[Extension | Bapi扩展;

KR Jaideep,

小c菟菟
2楼-- · 2020-08-30 02:16

Hi Gabriel,

我浏览了您提供的链接,这很有帮助,但找不到解决方法,请您详细解释。

谢谢

NN。

编辑:Nethaji babu于2009年9月9日上午11:21

路亽曱_Ryan
3楼-- · 2020-08-30 02:40

嗨,

这里有EXTENSION1和EXTENSION2参数来处理您拥有的任何自定义字段,并且您想将它们映射到数据库字段,请查看BADI'SMOD_V50B0001',如果您看到每种方法都具有相同的参数,那么让我们说吧 您已添加到外向交货抬头数据中的一些自定义字段,您可以根据参数指定,可以将该字段映射到BADI中的抬头数据,然后在使用BAPI时,如果在其中传递相同的参数名称 BAPI_OUTB_DELIVERY_CHANGE和字段anme及其值将更新为标头数据。

我很高兴您知道出口用于将您将在两个参数中提供的数据映射到数据库字段。

此致

Himanshu

Nir深蓝
4楼-- · 2020-08-30 02:31

Hi Himanshu,

我已经看到了这个出口,但是找不到详细的解释如何更新自定义zfields。

谢谢

NN。

葫芦娃快救爷爷
5楼-- · 2020-08-30 02:24

我需要通过BAPI调用更改LIKP中的Z字段,并找到了该线程。

尽管最初的参与者可能已经找到了替代方法,但我希望这可以对其他寻求解决方案的人有所帮助。

这些是我在2013年的发现,如果我错了,请纠正我。 EXTENSION1和EXTENSION2不能用于更改LIKP Z字段。 这些本身不会做任何事情,但是可以导入到BADI IF_EX_SMOD_V50B0001〜EXIT_SAPLV50I_010(因此,在较早的版本中有相应的CMOD)。

但是,这里可用的数据是:

CS_VBKOK

CT_VBPOK

CT_VBSUPCON

EXTENSION1

EXTENSION2

因此,要更改传递标题,只能更改结构CS_VBKOK中的字段。 由于VBKOK没有任何客户附加,因此这是不可能的。 此外,BAPI BAPI_OUTB_DELIVERY_CHANGE始终仅调用WS_DELIVERY_UPDATE,因此BAPI无法对FM进行任何操作。 那么,EXTENSION1/EXTENSION2的目的是什么?

正如我所见,itu2019是一种将数据传输到BADI的便捷方法,因此您可以构建逻辑来操纵任何现有的CS_VBKOK字段。 无论如何,您可以通过内存导出/导入来完成相同的操作。

/END-BAD-NEWS

/BEGIN-GOOD-NEWS

经过反复试验,我设法使用BAPI_OUTB_DELIVERY_CHANGE更改LIKP中的Z字段。 通话之前,我将所需的内容导出到内存ID,然后导入到MV50AFZ1中,BAPI_OUTB_DELIVERY_CHANGE

请参见以下工作示例代码:

调用程序:

&----


*&报告ZTEST_BAPI_DELIVERY_CHANGE

*&

&----


*&

*&

&----


报告ztest_bapi_delivery_change。

数据:gs_bapiobdlvhdrchg类型bapiobdlvhdrchg。

数据:gs_bapiobdlvhdrctrlchg类型bapiobdlvhdrctrlchg。

数据:gs_bapidlvcontrol类型bapidlvcontrol。

data:gt_bapireturn类型的bapiret2标准表。

数据:gs_bapi返回类型为bapiret2。

数据:gs_likp类型likpvb。

数据:ld_zzhuload类型erlkz。

常量:gc_x(1)输入c值" X"。

参数:p_vbeln就像likp-vbeln。

  • 获取相关的LIKP字段

从likp中选择*

进入gs_likp的相应字段

其中vbeln = p_vbeln。

endselect。

  • 填充标题数据-转换为BAPI格式

调用函数" MAP2E_LIKPVB_TO_BAPIOBDLVHDRCH"

导出

likpvb = gs_likp

更改

bapiobdlvhdrchg = gs_bapiobdlvhdrchg。

  • 设置为LIKP Z字段的字段

ld_zzhuload ='X'。

  • 在MV50AFZ1中导入的Memory-ID

将ld_zzhuload导出到内存ID" ZZHULOAD"。

调用函数" BAPI_OUTB_DELIVERY_CHANGE"

导出

header_data = gs_bapiobdlvhdrchg

header_control = gs_bapiobdlvhdrctrlchg

交付= gs_bapiobdlvhdrchg-deliv_numb

techn_control = gs_bapidlvcontrol

表格

return = gt_bapireturn

例外

communication_failure = 1

system_failure = 2

其他= 3。

如果gt_bapireturn []是初始的。

调用函数" BAPI_TRANSACTION_COMMIT"

导出

等待= gc_x。

否则。

在gt_bapireturn循环到gs_bapireturn

其中type ='E'。

消息ID gs_bapireturn-id类型'S'

数字gs_bapireturn-number与

gs_bapireturn-message_v1

gs_bapireturn-message_v2

gs_bapireturn-message_v3

gs_bapireturn-message_v4。

退出。

结束循环。

endif。

MV50AFZ1,格式为USEREXIT_SAVE_DOCUMENT_PREPARE

数据:ld_zzhuload类型erlkz。

如果xlikp-vbtyp ='J'"外向交货

和t180-trtyp ='V'。 "更改

  • 从程序ZZZ导出的内存ID ...

从内存ID" ZZHULOAD"导入ld_zzhuload。

如果sy-subrc是初始的

而不是ld _zzhuload是初始的。

LOOP AT xlikp。

xlikp-zzhuload = ld_zzhuload。

修改xlikp运输zzhuload。

ENDLOOP。

免费的内存ID" ZZHULOAD"。

endif。

endif。

我希望有人会对此有所帮助。 显然,我对功能不承担任何责任

抱歉,格式不正确,标签无法正常工作..

hengyuye
6楼-- · 2020-08-30 02:19

嗨,

的反应

实施增强点LE_SHP_DELIVERY_UPDATE/UPDATE_HEADER,将自定义字段从VBKOK/VBPOK移至LIKP或LIPS。

我正在SE20中搜索增强点LE_SHP_DELIVERY_UPDATE,但没有找到。 然后,我尝试搜索BADI,但我只找到了LE_SHP_DELIVERY_PROC,但是我找不到在逻辑上将V形文件从VBPO复制到LIPS的好地方。

请允许我帮我导航到正确的位置(例如FM或放置此增强点的程序)。

非常感谢

致谢

Radek Hanus

编辑:Radek Hanus于2010年11月10日下午4:54

打个大熊猫
7楼-- · 2020-08-30 02:14

HI,

检查SAP注释143580-有关SD BAPI和客户增强概念的信息。

此致

Eduardo

PD:很抱歉,我忘记了SAP Note 700795- BAPI增强结构的增强类别

编辑者:E_Hinojosa,2010年11月9日下午6:29

一周热门 更多>