使用bdcdata调用事务处理

2020-09-16 21:46发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 在我的一个程序中...

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

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


尊敬的专家,

在我的一个程序中,我需要启动" LX02"交易并获取具有特定存储类型(lv_ltkze)的特定仓库(lv_lgnum)中特定物料(lv_matnr)的库存水平。

首先,我尝试通过跳过第一个屏幕来设置参数并调用事务:

设置参数ID:
 " LGN"字段lv_lgnum,
 " LGT"字段lv_ltkze,
 'MAT'FIELD lv_matnr。

 呼叫交易" LX02"并跳过第一屏。
 

结果-LX02返回该特定仓库中具有指定存储类型的所有物料的库存水平,即忽略参数" MAT"。

第二,我尝试使用选择表提交报告:

数据:
 t_params rsparams的类型表,
 wa_params TYPE rsparams。

           wa_params-selname ='S1_LGNUM'。
           wa_params-kind ='S'。
           wa_params-sign ='I'。
           wa_params-option ='EQ'。
           wa_params-low = lv_lgnum。
           wa_params-high = lv_lgnum。
           将wa_params附加到t_params。
           清除wa_params。

           wa_params-selname ='S1_LGTYP'。
           wa_params-kind ='S'。
           wa_params-sign ='I'。
           wa_params-option ='EQ'。
           wa_params-low = lv_ltkze。
           wa_params-high = lv_ltkze。
           将wa_params附加到t_params。
           清除wa_params。

           wa_params-selname ='%% DYN001'。
           wa_params-kind ='S'。
           wa_params-sign ='I'。
           wa_params-option ='EQ'。
           wa_params-low = lv_matnr。
           wa_params-high = lv_matnr。
           将wa_params附加到t_params。
           清除wa_params。

 提交带有选择表t_params并返回的rls10020。
 

结果-LX02返回该特定仓库中具有指定存储类型的所有物料的库存水平,即,它对物料编号的值视而不见。

最后,现在我尝试使用bdcdata调用事务:

数据:
 it_bdcdata bdcdata类型表,
 wa_it_bdcdata喜欢it_bdcdata的线


  "开始交易
   清除wa_it_bdcdata。
   wa_it_bdcdata-program ='RLS10020'。
   wa_it_bdcdata-dynpro ='1000'。
   wa_it_bdcdata-dynbegin ='X'。
   将wa_it_bdcdata附加到it_bdcdata。

 "捕获仓库编号字段并用值填充
   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='BDC_CURSOR'。
   wa_it_bdcdata-fval ='S1_LGNUM'。
   将wa_it_bdcdata附加到it_bdcdata。

   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='S1_LGNUM'。
   wa_it_bdcdata-fval = lv_lgnum。
   将wa_it_bdcdata附加到it_bdcdata。

 "捕获存储类型字段并用alue填充它
   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='BDC_CURSOR'。
   wa_it_bdcdata-fval ='S1_LGTYP-LOW'。
   将wa_it_bdcdata附加到it_bdcdata。

   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='S1_LGTYP-LOW'。
   wa_it_bdcdata-fval ='702'。
   将wa_it_bdcdata附加到it_bdcdata。

 "模仿按钮的点击"动态选择@(Shift + F4)(红色矩形#1)
   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='BDC_OKCODE'。
   wa_it_bdcdata-fval ='= DYNS'。
   将wa_it_bdcdata附加到it_bdcdata。

   清除wa_it_bdcdata。
   wa_it_bdcdata-program ='RLS10020'。
   wa_it_bdcdata-dynpro ='1000'。
   wa_it_bdcdata-dynbegin ='X'。
   将wa_it_bdcdata附加到it_bdcdata。

 "模仿在" Quants"窗​​口中的" material"项上的点击(红色矩形#2)
   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='BDC_OKCODE'。
   wa_it_bdcdata-fval ='=%_ GC 145 25'。
   将wa_it_bdcdata附加到it_bdcdata。

 "捕获物料编号字段并用值填充(红色矩形#3)
   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='BDC_CURSOR'。
   wa_it_bdcdata-fval ='%% DYN001-LOW'。
   将wa_it_bdcdata附加到it_bdcdata。

   清除wa_it_bdcdata。
   wa_it_bdcdata-fnam ='%% DYN001-LOW'。
   wa_it_bdcdata-fval = lv_matnr。
   将wa_it_bdcdata附加到it_bdcdata。
 

结果–完全不返回任何内容。

请您帮我解决这个问题? 我弄错了什么?

(52.0 kB)
2条回答
蓋茨
2020-09-16 22:16

解决方案是创建自己的事务变体并保存。 然后获取okcode"/img/EGET"和" = DYNS"。 下面是代码片段:

 REPORT [zreport]。

 数据:
 lv_lgnum TYPE lgnum,
 lv_ltkze类型mlgn_ltkze,
 lv_matnr TYPE matnr。

 数据:
 it_bdcdata bdcdata类型表,
 wa_it_bdcdata与it_bdcdata类似。

 选择开始。

 清除wa_it_bdcdata。
 wa_it_bdcdata-program ='RLS10020'。
 wa_it_bdcdata-dynpro ='1000'。
 wa_it_bdcdata-dynbegin ='X'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='BDC_OKCODE'。
 wa_it_bdcdata-fval ='/EGET'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-program ='SAPMSSY0'。
 wa_it_bdcdata-dynpro ='0120'。
 wa_it_bdcdata-dynbegin ='X'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='BDC_CURSOR'。
 wa_it_bdcdata-fval = '04/09'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='BDC_OKCODE'。
 wa_it_bdcdata-fval ='= PICK'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-program ='RLS10020'。
 wa_it_bdcdata-dynpro ='1000'。
 wa_it_bdcdata-dynbegin ='X'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='BDC_OKCODE'。
 wa_it_bdcdata-fval ='= DYNS'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-program ='RLS10020'。
 wa_it_bdcdata-dynpro ='1000'。
 wa_it_bdcdata-dynbegin ='X'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='BDC_CURSOR'。
 wa_it_bdcdata-fval ='%% DYN001-LOW'。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='%% DYN001-LOW'。
 wa_it_bdcdata-fval = lv_matnr。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='S1_LGNUM'。
 wa_it_bdcdata-fval = lv_lgnum。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='S1_LGTYP-LOW'。
 wa_it_bdcdata-fval = lv_ltkze。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='S1_LGTYP-HIGH'。
 wa_it_bdcdata-fval = lv_ltkze。
 将wa_it_bdcdata附加到it_bdcdata。

 清除wa_it_bdcdata。
 wa_it_bdcdata-fnam ='BDC_OKCODE'。
 wa_it_bdcdata-fval ='ONLI'。
 将wa_it_bdcdata附加到it_bdcdata。

 使用it_bdcdata模式'E'进行交易'LX02'。

一周热门 更多>