我们使用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日。如果我在2013年6月28日从JCo通过考试,我会得到与2013年6日23日从JCo通过考试相同的结果。
我们已经建立了几个专门的查询,其唯一标准是人员号码,并使用RFC RSAQ_REMOTE_QUERY_call成功调用它们。
我特别询问的背景:今天的报告期,将员工信息的四个方面结合在一起:他们的最新行动(雇佣、重新雇佣等)、组织(如公司)、薪酬(如薪级表水平)和沟通(如电子邮件)。查询将在每个工作日运行。
以下是我的问题:
-
我的专案有三个选择标准。前两个是简单的字符串。第三个是约会。每次运行查询时,日期都会有所不同。我们引用的第一个标准为00001新元,第二个为00002新元,第三个为00003新元。标准的顺序从ad-hoc更改为SQ01(ad-hoc中的SP$000001现在是SP$00003)。我们不应该按照特设中定义的顺序引用它们吗(例如SP$000001)?
-
两个简单的字符串选择使用OPTION"EQ"。日期条件正在使用OPTION GT(大于)。"GT"是否正确?
-
我们对SAP的访问能力有限。是否有一种方法可以查看哪些SP$参数映射到哪些标准?
-
如果我的ad-hoc是用五个标准保存的,但当我从JCo调用ad-hoc时,其中四个标准从未改变,我只需要设置其中一个的值还是也需要设置其他四个?
-
我是否必须使用变量(函数.getImportParameterList().setValue("variant","variant_NAME"))来调用此ad-hoc?
-
报告期是否对日期标准有影响?我尝试将报告期更改为PNPBEGDA=今天和PNPENDDA=今天,但没有发现任何变化。
-
SAP中是否有一种方法可以获得您的特定(名称、输入、输出、标准)的"声明"?我已经看过JCoFunction.toXml()和JCoFunctionTemplate。如果您想在运行时看到一些东西,然后再将其发送到SAP,那么这些都是很好的,但我正在寻找一些可以在JCo端使用的东西,以帮助我编写与特定功能相匹配的Java代码。
我在网上查阅了很多问题的答案,但没有发现任何有用的东西。如果有什么能帮助我的,请告诉我。
谢谢,
LM
由于我对SQnn
了解不多,我无法回答您的所有问题。。。
- 我不知道,对不起
- 它应该是,至少它是大于的常用运算符
- 是-在函数模块内部设置一个外部断点,并在执行RFC调用时跟踪其执行情况。警告:至少需要基本的ABAP知识
- 我不知道,对不起
- 我也不知道,对不起
- 这将取决于查询,我怀疑
- JCo将无法帮助您——它不知道查询,只知道功能模块。不过,可能还有其他
RSAQ_*
功能模块可以获取该信息
我在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的帮助。