Find menu path form Tcode

*SELECTION TEXT
*TRANS 事务代码
REPORT ZMENUPATH .
************************************************************************
* This program displays the menu path for a transaction. If the user
* clicks on the transaction line, it displays the transaction's start
* screen. It is useful when working with the profile generator, because
* it is much faster than extracting a menu branch and finding a
* transaction code in it. To run this program, the user menu has to be
* generated.
************************************************************************
*This Program is to search for SAP supplied Transactions
************************************************************************
INCLUDE <ICON>.
TABLES: SMENSAPNEW, SMENSAPT, TSTC.

DATA: BEGIN OF ITAB OCCURS 10.
        INCLUDE STRUCTURE SMENSAPNEW.
DATA: END OF ITAB.
DATA: BEGIN OF STACK OCCURS 10,
        ID(5) TYPE N,
END OF STACK.
DATA: I TYPE I.
DATA: TEXT LIKE TSTCT-TCODE.
PARAMETERS: TRANS LIKE TSTC-TCODE.

* Get the ID of the Transaction
SELECT * FROM SMENSAPNEW WHERE REPORT = TRANS AND CUSTOMIZED = 'S'.
  MOVE-CORRESPONDING SMENSAPNEW TO ITAB.
  APPEND ITAB.
ENDSELECT.
* If transaction is not in SMENSAPNEW
IF SY-SUBRC <> 0.
*  WRITE AT /TRANS COLOR 5.
  WRITE: /(80) 'Main Menu' COLOR 2.
  SKIP.
  WRITE: /'Not in the profile generator''s table'.
  EXIT.
ENDIF.

* Get the parent ID that links to the root with the fewest levels
SORT ITAB BY MENU_LEVEL.
READ TABLE ITAB INDEX 1.
STACK = ITAB-OBJECT_ID.
  APPEND STACK.
STACK = ITAB-PARENT_ID.
  APPEND STACK.

* Search for the Grandparents...
DO.
  CLEAR ITAB.
  REFRESH ITAB.
  SELECT * FROM SMENSAPNEW WHERE OBJECT_ID = STACK-ID AND
                                CUSTOMIZED = 'S'.
    MOVE-CORRESPONDING SMENSAPNEW TO ITAB.
    APPEND ITAB.
  ENDSELECT.
  SORT ITAB BY MENU_LEVEL.
  READ TABLE ITAB INDEX 1.
  IF ITAB-PARENT_ID = '00001'.
    EXIT.
  ENDIF.
  STACK = ITAB-PARENT_ID.
  APPEND STACK.
ENDDO.

SELECT SINGLE TTEXT INTO TEXT FROM TSTCT WHERE TCODE = TRANS
                                   AND SPRSL = 'EN'.

* Display the result
FORMAT HOTSPOT ON.
WRITE: /(80) ICON_DISPLAY_MORE AS ICON,TEXT COLOR 3.
HIDE TRANS.
CLEAR TRANS.
WRITE: ICON_GIS_PAN AS ICON,
                       '<<<< Click on line to go to the transaction'.
FORMAT HOTSPOT OFF.
SKIP.
WRITE: /(80) 'Main Menu' COLOR 2.
SORT STACK.
LOOP AT STACK.
  I = I + 3.
  SELECT SINGLE * FROM SMENSAPT WHERE SPRAS = 'E'
                              AND OBJECT_ID = STACK-ID.
  WRITE: at /I icon_incoming_object as icon,
           (80) SMENSAPT-TEXT COLOR 2.
ENDLOOP.
SKIP 10.
FORMAT COLOR 4.
WRITE: /80 text-001 right-justified.

* Display the transaction when the user clicks on trans.
AT LINE-SELECTION.
  IF NOT TRANS IS INITIAL.
    SELECT SINGLE * FROM TSTC WHERE TCODE = TRANS.
    CALL TRANSACTION TRANS.
  ENDIF.
CLEAR TRANS. 

内容概要:本文深入研究了基于深度强化学习(DRL)的微网储能系统控制策略。首先介绍了微网系统的组成及其特性,重点探讨了光伏发电、储能系统和负荷系统的关键组件数学模型。接着详细描述了Simulink仿真设计实现,包括微网环境模拟类(MicrogridEnv)、双重深度Q网络(Double DQN)算法的实现以及训练过程。为了验证该方法的有效性,文章还进行了对比实验,分别测试了规则策略、传统优化方法和DDQN策略的表现。实验结果显示,DDQN策略在成本节约、SOC合规率等方面明显优于其他两种方法。最后,本文提出了创新点与贡献总结,包括仿真-学习一体化框架、改进的DRL算法以及多维度验证,并展望了后续研究方向如多时间尺度优化、多能源协同、不确定性处理等。 适用人群:从事电力系统、微网技术研究的专业人士,以及对深度强化学习应用于能源领域感兴趣的科研人员和工程师。 使用场景及目标:①掌握微网储能系统的基本构成与工作原理;②理解如何利用深度强化学习优化微网储能控制策略;③学习具体的算法实现细节,包括环境搭建、DDQN算法实现和训练流程;④对比不同控制策略的效果,评估DDQN策略的优势。 其他说明:本文不仅提供了理论分析和技术实现,还展示了详细的实验验证过程,通过具体的实验数据证明了所提方法的有效性。此外,文中提及的多种改进措施和技术细节对于实际工程项目具有重要的参考价值。阅读本文有助于读者全面了解微网储能控制领域的最新进展,为相关研究和技术开发提供有益的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值