VBAK没有保存来自出口USEREXIT_SAVE_DOCUMENT的值。

2020-09-08 21:00发布

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

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


您好,我正在尝试修改

 XVBAK-LIFSK 

因为必须通过某些验证

我尝试使用USEREXIT_SAVE_DOCUMENT_PREPARE,但是我的表xvbep上没有数据,并且我没有vbeln,这就是为什么我使用USEREXIT_SAVE_DOCUMENT的原因。 因此,我的代码修改了该字段,但是即使我收到令人满意的创建订单,此更改也未保存在表vbak中

增强功能1 ZSD_VALID_PEDIDO_ECOMMERCE。  "活动版本

 类型:st_zbloqueo的开头,
         SETNAME TYPE SETNAMENEW,
         VALSIGN TYPE RALDB_SIGN,
         VALOPTION TYPE RALDB_OPTI,
         VALFROM TYPE SETVALMIN,
         VALTO TYPE SETVALMAX,
        st_zbloqueo的结尾。
 常量c_setdat_bloq_web(12)值'ZBLOQUEO_WEB'。
 范围:r_auart FOR vbak-auart。
 数据:lv_setid TYPE SETHIER-SETID,
       lv_auart TYPE SETVALMIN,
       wa_rgsbv TYPE RGSBV,
       ti_rgsbv RGSBV的类型表,
       it_zbloqueo_web st_zbloqueo的类型表。


 字段符号: TYPE VBEPVB,
                 TYPE st_zbloqueo。


 SELECT SETNAME VALSIGN VALOPTION VALFROM VALTO" #EC CI_SROFC_NESTED
  插入表it_zbloqueo_web
  从SETLEAF
  SETCLASS ='0000'并且
        SETNAME EQ c_setdat_bloq_web。


 如果sy-subrc = 0。
   在it_zbloqueo_web上分配。
     r_auart-sign =  -valsign。
     r_auart-option =  -valoption。
     r_auart-low =  -valfrom。
     r_auart-high =  -valto。
     APPEND r_auart。
     清除r_auart。
   结局。


   如果是vbak-auart IN r_auart。
       在XVBEP []处分配环在VBELN EQ VBAP-VBELN处。
       如果 -WMENG NE  -BMENG。
         TVAK-LIFSK ='Z3'。
         继续。
       万一。
     结局。
   万一。
 万一。

 增强。
 

调试,我得到xvbak已清理并分配给tvak的信息,所以我将xvbak更改为tvak,并与其他更改一样保存订单,但在屏幕上更改字段,但仅在事务视图中更改,但所有其他字段为空 我不知道我的解释是否正确

有什么建议吗?


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

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


您好,我正在尝试修改

 XVBAK-LIFSK 

因为必须通过某些验证

我尝试使用USEREXIT_SAVE_DOCUMENT_PREPARE,但是我的表xvbep上没有数据,并且我没有vbeln,这就是为什么我使用USEREXIT_SAVE_DOCUMENT的原因。 因此,我的代码修改了该字段,但是即使我收到令人满意的创建订单,此更改也未保存在表vbak中

增强功能1 ZSD_VALID_PEDIDO_ECOMMERCE。  "活动版本

 类型:st_zbloqueo的开头,
         SETNAME TYPE SETNAMENEW,
         VALSIGN TYPE RALDB_SIGN,
         VALOPTION TYPE RALDB_OPTI,
         VALFROM TYPE SETVALMIN,
         VALTO TYPE SETVALMAX,
        st_zbloqueo的结尾。
 常量c_setdat_bloq_web(12)值'ZBLOQUEO_WEB'。
 范围:r_auart FOR vbak-auart。
 数据:lv_setid TYPE SETHIER-SETID,
       lv_auart TYPE SETVALMIN,
       wa_rgsbv TYPE RGSBV,
       ti_rgsbv RGSBV的类型表,
       it_zbloqueo_web st_zbloqueo的类型表。


 字段符号: TYPE VBEPVB,
                 TYPE st_zbloqueo。


 SELECT SETNAME VALSIGN VALOPTION VALFROM VALTO" #EC CI_SROFC_NESTED
  插入表it_zbloqueo_web
  从SETLEAF
  SETCLASS ='0000'并且
        SETNAME EQ c_setdat_bloq_web。


 如果sy-subrc = 0。
   在it_zbloqueo_web上分配。
     r_auart-sign =  -valsign。
     r_auart-option =  -valoption。
     r_auart-low =  -valfrom。
     r_auart-high =  -valto。
     APPEND r_auart。
     清除r_auart。
   结局。


   如果是vbak-auart IN r_auart。
       在XVBEP []处分配环在VBELN EQ VBAP-VBELN处。
       如果 -WMENG NE  -BMENG。
         TVAK-LIFSK ='Z3'。
         继续。
       万一。
     结局。
   万一。
 万一。

 增强。
 

调试,我得到xvbak已清理并分配给tvak的信息,所以我将xvbak更改为tvak,并与其他更改一样保存订单,但在屏幕上更改字段,但仅在事务视图中更改,但所有其他字段为空 我不知道我的解释是否正确

有什么建议吗?


付费偷看设置
发送
3条回答
Doze时光
1楼-- · 2020-09-08 21:42

嗨Naoto,

VBAK是订单抬头表,但VBEP是隐藏行(项目)数据。

在下面的代码中,您将循环所有预定的订单项,并多次更改XVBAK-LIFSK(表示TVAK-LIFK)。

只需在循环中通过" EXIT"更改" CONTINUE"即可,
CONTINUE命令仅用于跳过当前行..它并没有结束循环。

如果vbak-auart IN r_auart。
       在XVBEP []处分配环在VBELN EQ VBAP-VBELN处。
       如果 -WMENG NE  -BMENG。
         TVAK-LIFSK ='Z3'。

         继续。
       万一。
     结局。
   ENDIF。

如果这不起作用,那么我将检查文档类型范围(r_auart)。

Bulent Balci

Climb_Ma
2楼-- · 2020-09-08 21:44

我使用了另一个出口,该出口拥有我的所有数据,但谢谢! :D

nice_wp
3楼-- · 2020-09-08 21:51

嗨Naoto,

尝试在方法SAVE_DOCUMENT中实现BADI

/DSD/CL_IM_SL_BADI_SD_SALE。

请注意,

一周热门 更多>