从z程序中调用单独的dynpro

2020-09-13 05:43发布

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

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


Hallo Abapers,

我需要从旧的ZProgram调用屏幕到新的ZProgram。

此屏幕名称 0400 是通过在旧程序的选择屏幕中单击一个按钮来调用的,此按钮称为" PB_01" ...。

现在回到我的新zprogram中,我创建了一个名为 PB_02 的新按钮,并在尝试调用dynpro '0400'时编写了以下代码。

 DATA:l_f_bdcdata TYPE bdcdata,
 l_t_bdcdata_tab bdcdata类型表。
   如果sy-ucomm ='PB_02'。
 清除l_f_bdcdata。
 l_f_bdcdata-program ='/EDEL/R_DD_RPRT_MGMT'。
 l_f_bdcdata-dynpro ='0400'。
 l_f_bdcdata-dynbegin ='X'。
 将l_f_bdcdata附加到l_t_bdcdata_tab。
 使用l_t_bdcdata_tab进行呼叫交易" altprogram"。

内部表类型是排序表,而不是BDCDATA。 .....

因此代码无法正常工作.....

有人可以指导如何做到这一点吗??

最好的问候

珍妮

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

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


Hallo Abapers,

我需要从旧的ZProgram调用屏幕到新的ZProgram。

此屏幕名称 0400 是通过在旧程序的选择屏幕中单击一个按钮来调用的,此按钮称为" PB_01" ...。

现在回到我的新zprogram中,我创建了一个名为 PB_02 的新按钮,并在尝试调用dynpro '0400'时编写了以下代码。

 DATA:l_f_bdcdata TYPE bdcdata,
 l_t_bdcdata_tab bdcdata类型表。
   如果sy-ucomm ='PB_02'。
 清除l_f_bdcdata。
 l_f_bdcdata-program ='/EDEL/R_DD_RPRT_MGMT'。
 l_f_bdcdata-dynpro ='0400'。
 l_f_bdcdata-dynbegin ='X'。
 将l_f_bdcdata附加到l_t_bdcdata_tab。
 使用l_t_bdcdata_tab进行呼叫交易" altprogram"。

内部表类型是排序表,而不是BDCDATA。 .....

因此代码无法正常工作.....

有人可以指导如何做到这一点吗??

最好的问候

珍妮

付费偷看设置
发送
4条回答
d56caomao
1楼-- · 2020-09-13 06:02

首先,我想您不能从其他程序中调用屏幕,如果要这样做,则应在功能组中定义它。

现在,因为您正在使用bdcdata i 建议您尝试fm:ABAP4_CALL_TRANSACTION并传递所有bdcdata以检查其是否有效。 也许您需要先用sm36记录旧程序(为了能够从旧程序中调用屏幕0400,它背后应该有其他逻辑,也许您在BDC中丢失了。)

我认为还有另一种方法 可以使用的方法是添加一个子屏幕区域并进行调用(如果屏幕0400定义为子屏幕):

呼叫子屏幕:SUB1包括OLD_PROGRAM_ID'0400'。
歪着头看世界
2楼-- · 2020-09-13 05:57

这只是正常现象 您将ok代码PB_02放入bdcdata中的"使用bdcdata进行交易" ...

(是的批输入没有死)

我是小鹏鹏啊
3楼-- · 2020-09-13 05:49

我有 已经做过,但无法正常工作,请查看下面的代码

数据:l_f_bdcdata TYPE bdcdata,
  l_t_bdcdata_tab bdcdata类型表。
  如果sy-ucomm ='PB_01'。 新程序中的新按钮
  清除l_f_bdcdata。
  l_f_bdcdata-program ='旧程序'。
  l_f_bdcdata-dynpro ='0400'。
  l_f_bdcdata-dynbegin ='X'。
  l_f_bdcdata-fnam ='PB_02'。
  * l_f_bdcdata-FVAL ='PB_02'。 耶尔也没有工作
  将l_f_bdcdata附加到l_t_bdcdata_tab。
  使用l_t_bdcdata_tab调用"旧程序的TCODE"交易。
  ENDIF。

关于

风早神人
4楼-- · 2020-09-13 06:11

这取决于PB_02是否在屏幕0400上...我确实知道您必须单击PB_02按钮才能进入屏幕0400: 很抱歉,您必须在上一个屏幕上生成ok代码PB_02

抱歉,但是我不能在此处进行完整的BDC培训,在最坏的情况下,您可以使用事务SHDB来注册要执行的操作 放在BDCDATA中。

一周热门 更多>