SAP GUI 一些实用技巧分享_sapgui是什么软件-程序员宅基地

技术标签: sap  abap  ABAP  

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 PapertCynthia Solomon发明。

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

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

这个包提供了一个 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 模块:

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

屏幕状态:

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

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

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

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

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

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

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

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

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

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

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

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

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

SAP GUI 系统登录页面配置的 SAProuter 功能讲解

大家在安装完 SAP GUI 后,准备添加系统列表进行登录时,注意过这个 SAP router 字段么?

从 SAP 的帮助文档上可以找到 SAProuter 的定义:

SAProuter is an SAP program that acts as an intermediate station (proxy) in a network connection between SAP systems, or between SAP systems and external networks. SAProuter controls the access to your network, and, as such, is a useful enhancement to an existing firewall system (port filter).

Figuratively, the firewall forms an impenetrable “wall”around your network. However, since particular types of connections need to penetrate this wall, a “gate”has to be made in the firewall. SAProuter assumes control of this gate.
In short, SAProuter provides you with the means of controlling access to your SAP system.

SAProuter 是一个 SAP 发布的应用,在 SAP 系统与系统之间,SAP 系统与外部网络之间扮演着代理的角色。SAProuter 能实现对 SAP 系统的访问控制,是企业防火墙的有效补充。

如下图所示,部署于企业局域网的客户端 SAP GUI 进行系统登录,登录请求通过局域网内的 SAP router 转发到 Internet 网络上的另一台 SAP Router,再转发给部署于企业内网的 ERP 服务器。


上述描述的场景里,形象的说好比在 ERP 服务器所在的企业内网和 SAP GUI 的客户端所在的内网打了两个洞,在洞里部署两台 SAP router,确保只有受限的网络请求能够进出这两个被防火墙保护的安全网络。

这种 打洞 的思路,在 SAP 另一款解决方案:SAP Cloud Connector 里有类似的用法:

我们可以把用 SAP GUI 登录系统的快捷方式保存到本地,下次双击即可直接用 SAP GUI 登入系统:

用记事本打开,发现这些 .sap 文件的内容如下:

我们主要观看红色高亮部分,其中 H 表示主机名,S 表示服务即 Service.

总结

SAP GUI 是 SAP 的通用客户端,用于访问 SAP 应用程序中提供的开发和业务功能,它既是 SAP 应用的开发环境,也是运行环境。本文分享了笔者使用 SAP GUI 工作多年积累的一些使用小技巧,例如使用 SAP GUI 绘制简单的矢量图,根据一个屏幕反查该屏幕对应事物码,以及 SAP Router 的概念解析。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/i042416/article/details/124530066

智能推荐

机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题_传统机器学习解决cora数据集论文分类问题-程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏7次。机器学习03:决策树的学习以及应用决策树解决Cora数据集论文分类问题文章目录机器学习03:决策树的学习以及应用决策树解决Cora数据集论文分类问题1.前言2.算法分析2.1算法概述2.2 算法优化3.算法代码3.1 决策属性优先级选择3.1.1 信息熵3.2.2 信息增益率3.3.3 基尼系数3.2 数据集的预处理3.3 决策树的生成3.4 决策树的分类4.算法运行与评估4.1 使用信息增益来划分数据集4.2 使用信息增益率划分数据4.3 使用基尼指数划分数据5.结语1.前言决策树方法作为非常经典的_传统机器学习解决cora数据集论文分类问题

NVIDIA控制面板不见了解决方法-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏2次。NVIDIA控制面板调不出来欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮

x4412开发板&ibox卡片电脑项目实战16-将hello x4412驱动编译成模块-程序员宅基地

文章浏览阅读1.3k次。在内核根目录执行make menuconfig,进入Device Drivers-> Character devices菜单界面,找到hello X4412 driver配置选项,按空格键将它配置成模块[M],保存退出。执行如下指令,保存配置好的内核配置文件:cp .config arch/arm/configs/x4412_android_defconfig 再在整个源码

新一代大数据引擎操作系统:DataWorks V2.0重磅来袭-程序员宅基地

文章浏览阅读723次。摘要: 众所周知,MaxComput与Blink分别是阿里巴巴自主研发的离线计算、实时计算大数据计算引擎,不仅拥有多项国家专利技术,而且多项关键指标已远超业内开源引擎平均能力,名副其实地成为了阿里巴巴大数据之路上的领航者。认识DataWorks:新一代大数据引擎操作系统众所周知,MaxComput与Blink分别是阿里巴巴自主研发的离线计算、实时计算大数据计算引擎,不仅拥有多项国家专利技术...

不好好作图的NCS系列(五):从这篇Cell学习GSEA的R语言分析及作图-程序员宅基地

文章浏览阅读3.6k次,点赞10次,收藏30次。之前我们在讲转录组系列的时候,说过差异基因的功能富集,用的是GO和KEGG分析。但是这远远不够,很多研究者更喜欢使用GSEA,全名是Gene Set Enrichment Analysis (基因集富集分析)。GSEA在一定程度上与GO一样,但是两者具有巨大的差别。GO使用的是差异基因,因为阈值的设定是人为的,所以很有可能遗漏一些重要基因,仅仅是因为这些基因的变化较小。而GSEA则不同,它需要的是对所有的基因进行分析,因此能够保留更多的信息。通俗的说,GSEA的适用场景是:在两种不同的生物学状态下,

Odoo2021最新实用教程之——Odoo Studio 在线开发工具实战入门指导-程序员宅基地

文章浏览阅读4.7k次。Odoo Studio 作为Odoo企业版中的核心模块,能让odoo使用者通过此设计器快速、高效地构建新模块以及方便地进行已有功能地调整。但目前缺乏与Odoo Studio有关的中文指导资料,本文通过文字与视频结合的方式讲解Odoo Studio的实战操作,希望帮助有需要的朋友快速掌握这个工具。即使你最终可能不用企业版,但通过odoo企业版在线试用提供的这个在线开发工具也能帮助你对odoo的原理更快的了解。 Odoo的在线开发工具是Odoo企业版提供的强力设计工具,本实战..._odoo studio

随便推点

【问题】解决docker 容器中文乱码_主机内的vi支持中文,但是docker内vi不支持中文-程序员宅基地

文章浏览阅读3.5k次。进入容器 查看字符集# docker exec -it <container_id> /bin/bash# locale 查看当前容器字符集# locale -a 查看容器支持的字符集从输出可以看到,系统使用的是POSIX字符集,POSIX字符集是不支持中文的,而UTF-8是支持中文的 只要把系统中的环境 LANG 改为”UTF-8”格式即可解决问题。临时设置#vi /etc/profile 进入文件加入变量# export LANG="en_US..._主机内的vi支持中文,但是docker内vi不支持中文

已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。_已知数据信息为16位,最少应附加-程序员宅基地

文章浏览阅读582次。已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。 A、3B、4C、5D、6答案:C答案解析:根据公式 2的k次方 ≥ n+k+1 , n=16 则 K=5_已知数据信息为16位,最少应附加

VUE项目报错webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 192.168.1.10-程序员宅基地

文章浏览阅读1.1k次。首先粘上logF:\BackStage>npm run dev> [email protected] dev F:\BackStage> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 192.168.1.105报这个错我也是很无奈,正常情况下VU...

【ElasticSearch】RestClient和ElasticsearchTemplate实现高亮查询-程序员宅基地

文章浏览阅读1.9k次。在查询的时候希望,查询结果中的包含查询关键字高亮。(Es版本,6.5.4)前提准备,首先建立mappingPOST http://47.101.167.46:9200/hello_es/doc/_mapping{ "properties": { "name": { "type": "text", "analyzer":"ik_max_word", ...

PDF转word_pdf转word的方式csdn-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏3次。https://www.addpdf.cn/pdf-to-word_pdf转word的方式csdn

背包问题 ——第K优解 或 次优解_次优解符号-程序员宅基地

文章浏览阅读1.9k次。附上水题一枚:http://acm.hdu.edu.cn/showproblem.php?pid=2639_次优解符号

推荐文章

热门文章

相关标签