问题标签 [sap-gui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
375 浏览

vbscript - 报告有时会在 SAP GUI 脚本中返回 0 条记录

所以我使用 SAP GUI 记录器录制了一个脚本。我基本上只是运行 7 个报告并将内容保存到一个 excel 文件中。该代码是平淡无奇的,只是一些变化。

session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "SAP_ALL.TXT" session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 11

但有时报告中没有记录。

  1. 我怀疑我可以检查一些东西来保存报告或继续使用if/then/else,但找不到一个很好的例子。我如何捕捉并从这个或其他错误中恢复?
  2. 有没有办法来sapshcut构造脚本以避免这个问题?
  3. 另外,有没有办法从命令行执行脚本,将用户名和密码作为参数传递?

欢迎提供相关示例。我会使用 RTFM,但我没有。

0 投票
2 回答
2106 浏览

excel - 无法从 SAP 系统下载 SAP 提取 - 错误“无效的 GUI 输入数据:焦点数据”

需要有关宏的帮助,该宏尝试从 SAP 系统下载数据提取,但恰好停在需要下载的位置。但是手动完成时不会出现同样的问题。

以下是我们在 SAP 系统中遵循的步骤:

  • 第一步,输入 TCode:ZFIS 并进行以下选择(Finance New GL >> Line Item Reports >> Cognos Download)
  • 输入所需的详细信息并执行
  • 结果需要保存在txt格式的文件夹路径中
  • 到达黄线代码时出现问题
  • 手动保存不会造成任何问题,但是当尝试使用编码运行它时,会出现以下错误。不知道为什么...

我们尝试了所有可能性(即与我们的 IT 部门核实并尝试安装新版本的 SAP 系统),但我们仍然无法找到解决方案。

最后,我在这里看看是否可以找到相同的解决方案。

附上 VBA 代码供您参考:

0 投票
1 回答
943 浏览

c# - 如何使用 VBA 或 C# 读取 SAP HTMLViewer 控件数据

我正在尝试自动化一个 SAP 任务,其中 HTMLViewercontrol 用于显示一些数据并在需要时进行更新。

加载后的 HTMLViewer 控件如下所示。

HTMLViewer 控件

我试图记录页面的加载,但遗憾的是,其中没有任何事件。

在挠了几个小时后,我尝试在编辑值时记录脚本并得到下面的脚本。

我不知道如何sapevent在编辑之前读取值。

任何人都可以分享他们在这方面的专业知识。

0 投票
1 回答
502 浏览

c# - 如何在 C# 中获取 SAP GUI 录制脚本

任何人都可以指导我获取任何有用的文档以获取 C# 中的 SAP 录制脚本吗?

根据我的发现,我们需要连接到 SAP,我可以通过 C# 建立。

不是试图重新发明轮子,而是有一个复杂的要求,需要 C# 中的脚本文本。

输出与Tracker一样

在此处输入图像描述

只需要脚本文本/字符串。仅此而已。

任何帮助将不胜感激。

0 投票
1 回答
355 浏览

excel - 根据 Excel 字段(列)在 SAP excel 脚本值中设置 VBA 代码

我的脚本正在运行,但是有一个字段我无法弄清楚如何在 VBA 脚本中进行更改。我需要根据 Excel 中的条目对其进行更改。

这是我遇到问题的脚本,我用粗体显示的值(4)。

我在手动更改值时进行了测试,它可以工作。但我需要的是根据 excel 文件中的数据 将值( 4 )更改为不同的值。

Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB").getAbsoluteRow( 4 ).Selected = False Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/ tabpT\01/ssubSUBSCREEN_BODY:SAPMV50A:1202/tblSAPMV50ATC_LIPS_OVER_INB/txtLIPS-POSNR[0, 4 ]").SetFocus Session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\01/ssubSUBSCREEN_BODY:SAPMV50A:1202/ tblIPS-POSNR[0, 4]"). txtLIPS-POSNR[0, 4 ]").caretPosition = 0

示例:如果 Excel 文件在 G 列中显示“20”,则将上面的 ( 4 ) 更改为 ( 1 ) 所以简单地说,根据 excel 值替换脚本中的值。

0 投票
3 回答
7814 浏览

vba - 在 VBA 中使用 SAP GUI 脚本时,如何在编码时查看 SAP GUI 对象属性 - 就像在 IntelliSense 中一样?

有没有办法查看 SAP GUI 对象的属性?

像这样:

工作簿对象的属性下拉列表

但对于 SAP 对象,如以下对象:

在阅读了这篇文章答案的最后一部分后,我问了这个问题:VBA general way for pull data out of SAP

但是,如果您想使用早期绑定以便您的 VBA 编辑器可以显示您正在使用的对象的属性和方法,您需要sapfewse.ocx在 SAP GUI 安装文件夹中添加对的引用。

0 投票
1 回答
9497 浏览

vba - 如何使用 VBA 宏在 SAP GUI 网格视图中选择当前行?

我正在尝试自动化 SAP GUI 中的重复性任务。我需要搜索订单号,选择订单号所在的行,然后单击按钮完成任务。我录制了一个宏,它给了我:

该行:

对应于我要搜索的顺序,但如果我更改此值,它仍会尝试处理与宏记录相同的顺序,我假设是因为以下行:

有谁知道我将如何找到与 SEARCH-VALUE 的结果相对应的行号,然后将其用作 .selectedRows =“”?

0 投票
1 回答
1369 浏览

excel - SAP 销售订单文本提取到 Excel

多年来,我使用的 ERP 系统可以很容易地到达每个角落并从中获取数据,但现在我们已经转移到全球 SAP 系统,并且访问级别低得多,事情就变得不那么容易了。我有从某些销售订单项目文本字段中提取数据的特定要求;因为这些是加密的,而且因为我仅限于 SQVI,所以不能直接完成。我尝试使用事务 VA03 记录一个脚本来提取数据,并发现其他人都没有记录保存为本地文件的重要部分。我在 SAP 存档讨论中发现了一个非常有用的帖子,https://archive.sap.com/discussions/thread/3240622其中解决了这个问题,并通过进行一些微不足道的更改以适应我们的配置,设法将标题文本保存到 Excel 中。

这行得通,(在极不可能的情况下,订单号已被抑制为 nnnnnn 有人可能会认出它)并且我能够通过添加行从其他字段中获取数据,但是当我尝试为 item 做同样的事情时带有以下变体的文本

这会在 SAP 屏幕上显示必填字段,但随后会引发错误“运行时错误 '619' 无法找到该控件的 ID。”

我显然不明白正在发生的一切 - 有人可以帮助我吗?

安德鲁

0 投票
4 回答
1915 浏览

excel - 对象“ISapCTextField”的方法“文本”失败

我必须从 SAP 中提取数据。此错误随机发生:

对象“ISapCTextField”的方法“文本”失败

我进行了搜索,但没有一个解决方案有效。多次尝试的错误处理也不起作用。我没有尝试更多的方法,而是.Text完全避免了这种方法。

导致错误的行示例:

为了避免使用该.text方法,我曾经SendKeys实现同样的事情。基本上使 SAP 窗口成为活动窗口,并通过使用 set focus 在 SAP GUI 中选择所需的字段,然后使用Ctrl+ Vviasendkeys将文本从范围粘贴到字段。下面是代码:

要调用该函数,只需使用 SAP 脚本记录获取字段 ID 名称并解析为 SAPSafeText(“字段 ID 为字符串”,“单元格范围为字符串”)。

调用示例:

这是蛮力的方式,但它有效。

为什么会发生错误?

有没有更好的方法来处理这个?

0 投票
2 回答
1954 浏览

excel - 使用 Do Loop VBA 选择 SAP 字段

我正在研究一个宏以进入 SAP 并选择列中的单元格以提取到 Excel。现在,如果这是 excel,这将没有问题,因为我会简单地使用 do 循环沿列复制。我在 SAP GUI 中,但是它与 VBA 兼容,但有点不同。我录制了一个脚本,我点击一个列来查看代码是如何变化的。这就是我得到的。

当我向下移动该列时,您可以看到特定值从 13 增加到 17。我想我可以合并一个 do 循环,然后沿着列向下移动并复制值。这是我的相关代码

但是,这不起作用,因为它不将 i 识别为变量。它给了我错误 619(找不到 ID)

有谁知道使这项工作的方法?