SAP GUI 一些实用技巧分享(一)

简介: SAP GUI 是 SAP 的通用客户端,用于访问 SAP 应用程序中提供的开发和业务功能,例如 SAP ERP、SAP Business Suite(SAP CRM、SAP SCM 和 SAP PLM)、SAP Business Intelligence 等。

SAP GUI 是 SAP 的通用客户端,用于访问 SAP 应用程序中提供的开发和业务功能,例如 SAP ERP、SAP Business Suite(SAP CRM、SAP SCM 和 SAP PLM)、SAP Business Intelligence 等。 SAP GUI 既是 SAP 应用的开发环境,也是运行环境。它从 SAP 服务器获取信息,例如在其窗口中需要显示的信息,在何时,何处,以及以什么样的方式来显示。


本文给大家分享笔者使用 SAP GUI 进行开发这些年来,积累的一些实用技巧。


使用 SAP GUI 绘制图形

国内 80 后上的编程课应该都学过Logo这门编程语言:


Logo 语言是一门专门设计用来进行编程教学的语言,于 1967 年由 Wally Feurzeig, Seymour Papert和Cynthia Solomon发明。


下图是用 Logo 语言画出来的图案。

image.png

同样,在 SAP GUI 里内发现有一个非常古老的 ABAP 包,最后一次修改已经是 22 年前的 1995 年了。这比 SAP 成都研究院很多新同事的年龄都要大。

29.png

这个包提供了一个 HPGL 接口。Hewlett-Packard Graphics Language,简称为 HPGL,是一种打印机控制语言,由Hewlett-Packard设计。


下面是我用 ABAP 代码写的一个 HPGL 控制台,可以调用函数 GRAPH_HPGL,像小时候使用Logo 语言那样在屏幕上作图。

REPORT z.
DATA: go_text_edit      TYPE REF TO cl_gui_textedit,
      go_cust_container TYPE REF TO cl_gui_custom_container,
      ok_code           TYPE sy-ucomm.
DATA  lt_text(256) TYPE c OCCURS 0.
DATA: BEGIN OF lt_hpgl OCCURS 1,
        entry(128),
      END OF lt_hpgl.
CALL SCREEN 0101.
MODULE status_0101 OUTPUT.
  SET PF-STATUS 'JERRY_CONSOLE'.
  SET TITLEBAR 'JERRY_TITLEBAR'.
  IF go_cust_container IS INITIAL.
    go_cust_container = NEW #( container_name = 'CUSTOM_CONTROL' ).
    CREATE OBJECT go_text_edit
      EXPORTING
        parent                     = go_cust_container
        wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
        wordwrap_to_linebreak_mode = cl_gui_textedit=>false.
  ENDIF.
ENDMODULE.
MODULE user_command_0101 INPUT.
  ok_code = sy-ucomm.
  CASE ok_code.
    WHEN 'BACK' OR 'QUIT' OR 'EXIT'.
      LEAVE TO SCREEN 0.
    WHEN 'EXECUTE'.
      CLEAR: lt_text, lt_hpgl[].
      go_text_edit->get_text_as_r3table( IMPORTING table = lt_text ).
      LOOP AT lt_text ASSIGNING FIELD-SYMBOL(<text>).
         APPEND INITIAL LINE TO lt_hpgl ASSIGNING FIELD-SYMBOL(<hpgl>).
         <hpgl>-entry = <text>.
      ENDLOOP.
      CALL FUNCTION 'GRAPH_HPGL'
        TABLES
          data = lt_hpgl.
    WHEN OTHERS.
  ENDCASE.
ENDMODULE.

Screen 101 的 PBO 和 PAI 模块:

30.png

Screen 101 的界面布局,需要手工创建一个名为 CUSTOM_CONTROL 的控件。

31.png

屏幕状态:

32.png

执行这个 report,点击 Load Local file,从本地加载 Doraemon.txt 文件,内容可以从我的github下载:

33.png

执行之后,位于本地安装目录下的 gnhpx.exe 文件会根据 txt 里的指令进行图形渲染:

C:\Program Files (x86)\SAP\FrontEnd\SAPgui\gnhpx.exe

34.png

如果一切正常工作,可以看到一只渲染好的机器猫(哆啦A梦)。

关于 HPGL 的语法手册,可以在这个网站上查阅:

http://www.isoplotec.co.jp/HPGL/eHPGL.htm


如何通过一个 SAP GUI 屏幕反查这个屏幕对应的事务码

假设我通过某种跳转方式打开了下图这个 SAP GUI的屏幕,但我想搞清楚用哪一个事务码可以直接到达这个屏幕,而不通过繁琐的点击,应该怎么做?

35.png

步骤1,点击 Order 字段,按 F1 打开帮助界面,

36.png

点上图的图标显示技术信息,得到了实现这个屏幕的程序名称:SAPLCOCU:

image.png

双击程序名,进入程序实现,再点击这个图标:

image.png

从而打开了这个程序所属的 function group COCU,其对应的 ABAP 包为 CO:

image.png

在这个 package CO 里,终于找到了我想要知道的事务码名称:CO01/02/03, 用于操作S/4HANA 里的 production order 即生产订单。

40.png



image.png

目录
相关文章
|
6月前
SAP GUI 如何启用黑色主题
SAP GUI 如何启用黑色主题
27 0
|
7月前
|
存储 移动开发 前端开发
SAP Fiori Launchpad 应用的两个实用技巧分享
SAP Fiori Launchpad 应用的两个实用技巧分享
36 0
|
7月前
|
BI 开发工具 数据库
SAP GUI 里的收藏夹事务码管理工具
SAP GUI 里的收藏夹事务码管理工具
59 0
|
7月前
|
安全 网络安全 图形学
SAP GUI 一些实用技巧分享
SAP GUI 一些实用技巧分享
56 0
|
BI 开发工具 数据库
SAP GUI 里的收藏夹事务码管理工具
SAP Netweaver 里有很多名字比较长的事务码,比如 SAP CRM UI开发工具BSP_WD_CMPWB,
116 0
SAP GUI 里的收藏夹事务码管理工具
|
安全 网络安全 数据安全/隐私保护
SAP GUI 一些实用技巧分享(二)
SAP GUI 是 SAP 的通用客户端,用于访问 SAP 应用程序中提供的开发和业务功能,例如 SAP ERP、SAP Business Suite(SAP CRM、SAP SCM 和 SAP PLM)、SAP Business Intelligence 等。
215 0
SAP GUI 一些实用技巧分享(二)
SAP GUI 遇到 Error in Parser-Thread 错误的解决方法
SAP GUI 遇到 Error in Parser-Thread 错误的解决方法
420 0
SAP GUI 遇到 Error in Parser-Thread 错误的解决方法
|
Web App开发 JavaScript 机器人
为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动
为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动
111 0
为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动
|
SQL IDE 搜索推荐
不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
136 0
不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
|
网络协议
SAP GUI里Screen Painter的工作原理
SAP GUI里Screen Painter的工作原理
SAP GUI里Screen Painter的工作原理