在创建idoc段时添加多重条件

2020-08-25 12:46发布

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

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


您好,今天我的问题是我编写了一个在IDOC ORDRSP中添加ETD日期的程序。

我的问题是在添加细分之前,如何基于MESTYP,MESCOD和MESFCT添加新条件。

我将条件放在下面的代码中,但我仍然不知道该如何解决。

谢谢您的帮助。

表格f999_e1edp03_date_otm
  表格p_int_edidd结构edidd
  p_dxvbpa结构vbpa
  p_dxvbap结构vbap
  p_dxvbep结构vbep
  p_dxvbkd结构vbkd
  p_dikomv结构komv
  p_dikomvd结构komvd
  使用p_dxvbak TYPE vbak
  p_dxhvbkd TYPE vbkd
  p_dobject TYPE的名称。
  数据:lw_E1EDP03类型E1EDP03,
  lw_E1EDP01类型E1EDP01,
  lw_edidd TYPE edidd,
 * lw_zza68 TYPE ZZA68,
  l_zzimbd TYPE Char10,
  l_zzimbd_int TYPE VBAP-ZZIMBD,"物料交货日期
  l_tabix TYPE sy-index,
  w_tabix TYPE sy-tabix。
  "获取要求的物料交货日期zzimbd
  " E1EDP01-werks上的过滤器
  数据:lr_werks类型的werks。
  如果p_int_edidd-segnam ='E1EDP01'。
  将p_int_edidd-sdata移动到lw_e1edp01。
  "确定是否必须添加新的段E1EDP03 ...
  " ...根据工厂值E1EDP01-WERKS
  "得到治疗受限的Werks


 *添加细分的条件:
 * lw_zza68-MESTYP ='ORDRSP'。
 * lw_zza68-MESCOD ='037'。
 * lw_zza68-MESFCT ='CRE'。


  选择标志
  优化
  低
  高
  从TVARVC到表lr_werks
  其中名称='ZZB_ZZB2I449_WERKS'
  并输入='S'。
  如果sy-subrc = 0且lr_werks中的lw_e1edp01-werks。
  "标记,以通知带有EDT的新段E1EDP03。
  f_spec03 ='X'。
  万一。
 * 万一。
  万一。
  如果p_int_edidd-segnam ='E1EDP03'和f_spec03 ='X'。
  "添加了新的日期段
  清除lw_e1edp03。
  清除f_spec03。
  lw_e1edp03-iddat ='ETD'。
  lw_e1edp03-datum = p_dxvbap-ZZIMBD。
  将lw_e1edp03移动到p_int_edidd-sdata。
  APPEND p_int_edidd。
  万一。
 ENDFORM。

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

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


您好,今天我的问题是我编写了一个在IDOC ORDRSP中添加ETD日期的程序。

我的问题是在添加细分之前,如何基于MESTYP,MESCOD和MESFCT添加新条件。

我将条件放在下面的代码中,但我仍然不知道该如何解决。

谢谢您的帮助。

表格f999_e1edp03_date_otm
  表格p_int_edidd结构edidd
  p_dxvbpa结构vbpa
  p_dxvbap结构vbap
  p_dxvbep结构vbep
  p_dxvbkd结构vbkd
  p_dikomv结构komv
  p_dikomvd结构komvd
  使用p_dxvbak TYPE vbak
  p_dxhvbkd TYPE vbkd
  p_dobject TYPE的名称。
  数据:lw_E1EDP03类型E1EDP03,
  lw_E1EDP01类型E1EDP01,
  lw_edidd TYPE edidd,
 * lw_zza68 TYPE ZZA68,
  l_zzimbd TYPE Char10,
  l_zzimbd_int TYPE VBAP-ZZIMBD,"物料交货日期
  l_tabix TYPE sy-index,
  w_tabix TYPE sy-tabix。
  "获取要求的物料交货日期zzimbd
  " E1EDP01-werks上的过滤器
  数据:lr_werks类型的werks。
  如果p_int_edidd-segnam ='E1EDP01'。
  将p_int_edidd-sdata移动到lw_e1edp01。
  "确定是否必须添加新的段E1EDP03 ...
  " ...根据工厂值E1EDP01-WERKS
  "得到治疗受限的Werks


 *添加细分的条件:
 * lw_zza68-MESTYP ='ORDRSP'。
 * lw_zza68-MESCOD ='037'。
 * lw_zza68-MESFCT ='CRE'。


  选择标志
  优化
  低
  高
  从TVARVC到表lr_werks
  其中名称='ZZB_ZZB2I449_WERKS'
  并输入='S'。
  如果sy-subrc = 0且lr_werks中的lw_e1edp01-werks。
  "标记,以通知带有EDT的新段E1EDP03。
  f_spec03 ='X'。
  万一。
 * 万一。
  万一。
  如果p_int_edidd-segnam ='E1EDP03'和f_spec03 ='X'。
  "添加了新的日期段
  清除lw_e1edp03。
  清除f_spec03。
  lw_e1edp03-iddat ='ETD'。
  lw_e1edp03-datum = p_dxvbap-ZZIMBD。
  将lw_e1edp03移动到p_int_edidd-sdata。
  APPEND p_int_edidd。
  万一。
 ENDFORM。
付费偷看设置
发送
1条回答
Nan4612
1楼-- · 2020-08-25 13:12

您能解释一下上下文,什么叫您的自定义代码吗?

一周热门 更多>