EWM:在处理单位自定义中将新字段添加到字段目录中

2020-08-15 04:42发布

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

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


大家好,

我在自定义spro-> scm扩展仓库管理->扩展仓库管理->跨过程设置->处理单位->基础->打印->创建字段目录中添加了新字段。 如下:

字段类型:I

实现类型:1,即默认实现

字段名称:PHU_VSBED

虚拟:C

选择类型:B

数据元素:/SCWM/VSBED

1.如果我将实现类型设置为空,即badi实现,则在保持交易条件记录的同时

/SCWM/PRHU6,一旦选择了仓库编号,它就会以某个转换例程转储? 目录中大多数现有字段的实现类型都为2,其描述为默认属性转换。 到目前为止,我还没有尝试2作为实现类型。 如果我将实现类型设置为1,那么在打印过程中的事务/SCWM/VASEXEC中,未选择维护的条件记录。 实现类型的正确值应该是什么?

2.数据元素已存在于vsbed字段中,因此我也给字段名称加上前缀PHU,就像目录中的现有字段一样。 可以吗?还是我应该在字段前加上z前缀?

3。 除了在此自定义中在字段目录中添加字段之外,还需要做其他事情吗?

谢谢

基丹

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

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


大家好,

我在自定义spro-> scm扩展仓库管理->扩展仓库管理->跨过程设置->处理单位->基础->打印->创建字段目录中添加了新字段。 如下:

字段类型:I

实现类型:1,即默认实现

字段名称:PHU_VSBED

虚拟:C

选择类型:B

数据元素:/SCWM/VSBED

1.如果我将实现类型设置为空,即badi实现,则在保持交易条件记录的同时

/SCWM/PRHU6,一旦选择了仓库编号,它就会以某个转换例程转储? 目录中大多数现有字段的实现类型都为2,其描述为默认属性转换。 到目前为止,我还没有尝试2作为实现类型。 如果我将实现类型设置为1,那么在打印过程中的事务/SCWM/VASEXEC中,未选择维护的条件记录。 实现类型的正确值应该是什么?

2.数据元素已存在于vsbed字段中,因此我也给字段名称加上前缀PHU,就像目录中的现有字段一样。 可以吗?还是我应该在字段前加上z前缀?

3。 除了在此自定义中在字段目录中添加字段之外,还需要做其他事情吗?

谢谢

基丹

付费偷看设置
发送
2条回答
Violet凡
1楼-- · 2020-08-15 05:30

已实现Badi/SCWM/EX_PRNT_CCAT_HU。 必须在此Badi中填写新添加的Catalog字段。

方法/scwm/if_ex_prnt_ccat_hu〜change。
     数据:lo_context类型参考/scwm/cl_hu_cxt_ppf。
     数据:lo_ao_hu类型参考/scwm/cl_hu_ppf。
     数据:lv_huident类型/scwm/de_huident。
     数据:lv_ttype TYPE ppfdtt。
     数据:lv_vsbed类型/scwm/vsbed。
     FIELD-SYMBOLS:<请求>类型/sapcnd/det_request。
     FIELD-SYMBOLS:类型/sapcnd/det_attrib_value。
     数据:ls_item_attr TYPE/sapcnd/det_attrib_value。
     数据:ls_attribute TYPE/sapcnd/det_attrib_value。
     数据:lt_huref类型/scwm/tt_huref_int。
     数据:ls_item类型/scdl/db_proci_o。
     数据:ls_vbfa TYPE vbfa,
            ls_likp TYPE likp。
     数据:lf_vsbed TYPE vsbed。

 *获取上下文类(/SCWM/CL_HU_CXT_PPF)
     lo_context?= io_context_hu。
 *获取持久数据
     lo_ao_hu?= io_context_hu-> appl。  "引用对象->/scwm/cl_hu_ppf
     lv_huident = lo_ao_hu-> get_huident()。
 * lv_ttype = lo_ao_hu-> get_ttype()。
 *
 *如果lv_ttype等于'ZELW/HU_CHPOST'。
 *
 *
 *    万一。
 *读取表ct_request-ITEM_ATTRIBUTES ASSIGNING 索引1。
     "阅读HU和内容
     通话功能'/SCWM/HU_READ'
       出口
         iv_appl = wmegc_huappl_wme"恒定值WME
         iv_lgnum = iv_lgnum
         iv_huident = lv_huident
       输入
 * es_huhdr = ls_huhdr
 * et_huhdr = lt_huhdr
 * et_hutree = lt_hutree
 * et_ident = lt_ident
         et_huref = lt_huref
 * et_huitm = lt_huitm
       例外情况
         删除= 1
         not_found = 2
         错误= 3
         其他= 4。
     在lt_huref ASSIGNING FIELD-SYMBOL()处循环播放。
       出口。
     结局。
     如果已分配。
 *使用huref docid从表/scdl/db_proci_o中读取参考文献编号和项目编号。
       选择单个*从/scdl/db_proci_o INTO ls_item
       docid =  -docid和itemcat ='DLV'。
       如果sy-subrc EQ 0并且ls_item-refitemno_so不是初始的,而ls_item-refdocno_so不是初始的。  "并且ls_item-service_level不是INITIAL。
 *请阅读vbfa的文档后续内容。
         选择单个*从vbfa到ls_vbfa,其中vbelv = ls_item-refdocno_so AND posnv = ls_item-refitemno_so AND vbtyp_n ='J'。
         如果ls_vbfa不是INITIAL。
 *使用以下文档从likp阅读vsbed。
           选择单个*从lik到ls_likp,其中vbeln = ls_vbfa-vbeln。
           如果ls_likp-vsart不是INITIAL。
             lf_vsbed = ls_likp-vsart。
           其他。
             lf_vsbed = ls_likp-vsbed。
           万一。
 *如果可以使用vsbed,请使用此vsbed填充搜索属性。
           如果lf_vsbed不是INITIAL。
             在ct_request ASSIGNING 中循环。
               在<请求> -item_attributes分配处循环播放。
                 IF -字段名EQ'PHU_VSBED'。
                   从删除表 -item_attributes。
                   ls_attribute-fieldname ='PHU_VSBED'。
                   ls_attribute-value = lf_vsbed。
                   插入ls_attribute到表 -item_attributes中。
                   出口 。
                 万一。
               结局。
             结局。
           万一。
         万一。
       万一。
     万一。
   终结法。
 
太Q了
2楼-- · 2020-08-15 05:33

您好 Ketan Sood

这真的很有帮助 为社区。

感谢您分享代码解决方案!

致谢,

Ajit


一周热门 更多>