1

我们使用 JCo 3.0 连接到 RFC 并从 SAP R/3 读取数据。我们经常使用一个 RFC RFC_READ_TABLE 并使用第二个自定义 RFC 来读取员工信息。我的问题围绕着第三个 RFC RSAQ_REMOTE_QUERY_CALL。我正在调用我使用此 RFC 在 SAP 中构建的临时查询,但我没有得到预期的结果。主要问题是 SAP 似乎忽略了我的选择标准之一,并使用了我最初构建它时保存在 SAP 中的内容。存储在我的 ad-hoc 中的日期标准是 2013 年 6 月 23 日。如果我从 JCo 于 2013 年 6 月 28 日通过,我得到的结果与我从 JCo 于 2013 年 6 月 23 日通过的结果相同。

我们构建了几个临时查询,其唯一条件是人员编号,并使用 RFC RSAQ_REMOTE_QUERY_CALL 成功调用它们。

我的临时查询的背景:今天的报告期,将员工信息的四个方面结合在一起:他们的最新行动(雇用,重新雇用等),组织(例如公司),薪酬(例如薪酬等级)和沟通(例如电子邮件)。查询将在每个工作日运行。

以下是我的问题:

  1. 我的 ad-hoc 有三个选择标准。前两个是简单的字符串。三是约会。每次查询运行时,日期都会有所不同。我们使用 SP$00001 引用第一个标准,使用 SP$00002 引用第二个标准,使用 SP$00003 引用第三个标准。标准的顺序从 ad-hoc 更改为 SQ01(ad-hoc 中的 SP$00001 现在是 SP$00003)。我们不应该按照 ad-hoc 中定义的顺序引用它们吗(例如 SP$00001)?

  2. 两个简单的字符串选择使用 OPTION “EQ”。日期标准使用 OPTION GT(大于)。“GT”正确吗?

  3. 我们对 SAP 的访问有限。有没有办法查看哪些 SP$ 参数映射到哪些标准?

  4. 如果我的 ad-hoc 保存了五个条件,但当我从 JCo 调用 ad-hoc 时其中四个永远不会改变,我只需要设置一个的值还是我还需要设置其他四个?

  5. 我是否必须使用变体 (function.getImportParameterList().setValue(“VARIANT”, “VARIANT_NAME”)) 来调用这个 ad-hoc?

  6. 报告期对日期标准有影响吗?我尝试将报告期更改为 PNPBEGDA = 今天和 PNPENDDA = 今天,但没有发现任何变化。

  7. SAP 中是否有办法获得您的临时(名称、输入、输出、标准)的“声明”?我看过 JCoFunction.toXml() 和 JCoFunctionTemplate。如果您想在运行到 SAP 之前在运行时看到一些东西,这些很好,但我正在寻找可以在 JCo 端使用的东西来帮助我编写与 ad-hoc 匹配的 Java 代码。

我已经在网上查看了我的问题的答案,但没有找到任何有用的东西。如果有什么可以帮助我的,请告诉我。

谢谢,

LM

4

2 回答 2

0

我在 SQ01 中为我的查询设置了一个变体。我在解决我的问题的变体中添加了一些设置,并在我的帖子中回答了我的几个问题。我做的主要事情是添加一个动态计算的日期作为我的标准的一部分。方法如下:
1. 在 SQ01 中,访问菜单“Go To” -> “Maintain Variants”。2. 选择您的变体并在子对象中选择“属性”并单击“更改”。
3. 在显示的列表中,找到您的日期标准。
4. 在选择变量中选择“D”,选择一个比较选项(我的是 GT 表示大于)和一个“变量名称”(真的,这是您需要的动态日期计算类型)。
5. 返回子对象面板,选择“值”并单击“更改”。
6. 在“程序选择”部分输入您需要的任何其他标准。
7. 保存变体。
通过这样做,我不需要从 JCo 向查询中传递任何内容。此外,SAP 将自动更新您在上面第 4 步中输入的日期标准。
因此,要从我的原始帖子中回答我的问题:
1 和 4。没关系,因为我不再从 JCo 传递任何东西。
2.“GT”大于。
3和7。如果有人知道,我真的很想知道。
5. 使用您在 SAP 中的名称(上面的第 2 步)。
6. 我仍然不知道,但这并没有阻止我。
我发布这个以防有人需要这种类型的信息。感谢 Esti 和 vwegert 帮助我。

于 2013-07-09T18:50:08.753 回答
0

由于我不太了解SQnn,所以我无法回答您的所有问题...

  1. 我不知道,对不起。
  2. 应该是,至少它是大于的常用运算符。
  3. 是 - 在功能模块内设置一个外部断点,并在执行 RFC 调用时跟踪其执行。警告:至少需要基本的 ABAP 知识。
  4. 我不知道,对不起。
  5. 我也不知道,对不起。
  6. 这将取决于查询,我怀疑......
  7. JCo 将无法为您提供帮助——它不知道查询,它只知道功能模块。不过,可能还有其他RSAQ_*功能模块可以获取该信息。
于 2013-07-04T18:23:02.487 回答