问题标签 [sap-query]

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 投票
2 回答
8149 浏览

dynamic - 如何在只有参考数据的表中循环

我正在使用函数 Module RSAQ_QUERY_CALL,取回一个表:

现在我怎样才能在那张桌子上循环?

我尝试了什么:

  • 分配给字段符号
  • 传递字段符号而不是 dref

两者都没有工作。

0 投票
1 回答
5250 浏览

abap - 检查语句中的 IN 运算符

SQ02事务中,我想使用检查命令。我可以OR用另一个使命令短路的运算符替换运算符吗?INSQL中是否存在类似的运算符?检查命令类似于: CHECK SKB1-BUKRS EQ '1000'or CHECK SKB1-BUKRS EQ '2001'or CHECK SKB1-BUKRS EQ '5221'INSQL中 是否存在类似的运算符?CHECK SKB1-BUKRS in ('1000', '2001', '5221')

当我在记录处理部分写:START-OF-SELECTION。检查 gt_ranges 中的 skb1-bukrs。

部分记录处理

然后我收到 ABAP 错误: 错误信息

0 投票
0 回答
218 浏览

abap - SAP 信息集表连接

我是 SAP 的新手,我有一个问题。我有一个信息集,其中包含 3 个包含客户信息和购物的表格。目前,我收到一份报告,其中包含有关客户的详细信息,并且有一列指示客户是否在特定销售期间购买。如果该客户在该日期进行了购买,我会得到一个报价日期并检查表格(未链接到 3 个表格)。

现在我必须做一些更复杂的事情。我有一个销售日期和时间,我必须返回一个包含所有客户姓名的报告,对于在销售期间购买的客户,记录他们购买的所有金额(销售是一天一小时星期)

这就是我到目前为止得到的:

这意味着客户 A 实际上是在销售中购买的。现在我必须得到:

我的问题是,当我将桌子与所有顾客的购物联系起来时,我得到了他曾经结交的每一位顾客。如果我CHECK在日期和时间条件下这样做,则所有未购买此优惠的客户都将被删除。我的意思是我只得到客户 2。我将表格添加为“左外部”。我应该怎么办 ?

0 投票
2 回答
11378 浏览

abap - 在 SAP Query 中连接字符串

我正在为 SAP R/3 创建一个 BAPI。我正在尝试编写的 MSSQL 中的等价物是:

但显然 Open Sql 不允许在查询中进行操作。因此,对于我的研究,我想“加入”的表必须检索到内存表中,在循环中创建一个新列来执行操作并与 #tab 表进行比较。但我在语法上苦苦挣扎。我到目前为止是这样的:

但我收到以下错误。

字段“ITAB_BKPF”未知。它既不在指定的表之一中,也不由“DATA”语句定义。

字段“ITAB_BKPF-GJAHR”未知。它既不在指定的表之一中,也不由“DATA”语句定义。

嵌套错误:语句“ENDFUNCTION”之前,“SELECT”引入的控制结构必须以“ENDSELECT”结束。

嵌套错误:在“+END-OF-INCLUDE”语句之前,“FUNCTION”引入的控制结构必须以“ENDFUNCTION”结束。

显然有一个公开的声明。但我不太熟悉这种语言,不知道在哪里需要句号,或者我是否放错了任何结束语。我在网上看到的其他方法是使用构造SELECT..ENDSELECT

但这会产生一批新的错误:

“对应”字段未知。它既不在指定的表之一中,也不由“DATA”语句定义。字段“WA_BKPF-CHKEY”未知。它既不在指定的表之一中,也不由“DATA”语句定义。字段“WA_BKPF”未知。它既不在指定的表之一中,也不由“DATA”语句定义。

我怀疑我在网上找到的解决方案和示例跳过了他们定义他们使用的一些结构的部分。但我真的不知道该怎么做。有人可以帮忙吗?

编辑:最终代码如下所示:

0 投票
0 回答
545 浏览

sap-query - 选择后 SAP 信息集查询修改表

是否可以在 SAP 信息集查询中修改输出表的某些行?如果是,如何?我已经尝试在信息集中的编码选项卡中为此编写一些代码(在选择结束时 - 在列表之后),但我无法引用表格或字段。

0 投票
2 回答
191 浏览

abap - SAP Infoset 中的字段不匹配时如何返回值

我将主表 EKPO 作为外连接连接到表 MLGN 和 MLGT。

我在信息集中创建了一个额外的字段BINALOC,并希望它在某些条件下从表 MLGT 返回一个值:

  1. 如果字段 MLGN-LTKZE 和 MLGT-LGTYP 匹配,则返回关联的 MLGT-LGPLA 字段。
  2. 如果 MLGN-LTKZE = 'R1',则仅返回相关的 MLGT-LGPLA,其中 MLGT-LGTYP = '006'。
  3. 如果 MLGN-LTKZE <> MLGT-LGTYP 返回空白。

目前我可以做到前 2 个条件,但无法适应第 3 个条件,因为它与数字 2 冲突。

我尝试了各种 IF 语句和 IF 条件的各种顺序,以及不同的连接类型。

这是我在额外字段BINALOC编码部分中的当前代码:

当我之前提到的字段不匹配时,我希望该字段返回空白。

目前它返回其上方字段的副本。

0 投票
1 回答
2599 浏览

abap - cl_salv_bs_runtime_info=>get_data_ref() returns no data

I have this code, which works very nice for a lot of reports:

But for AdHoc Queries the line IF lr_data_descr IS NOT BOUND. is true and ev_result_json is empty.

What could be the reason for this?

The name of the report is AQZZZMM=========ZME80FN=======.

0 投票
1 回答
293 浏览

abap - 检测报告是否为 SAP 查询

我有一个 ABAP 程序,它调用报告并将其输出转换为 JSON。

不幸的是,这不适用于此问题中描述的SAP 查询

如果报告的名称为字符串,我如何检测报告是否为 SAP 查询。例如AQZZZMM=========ZME80FN=======

到目前为止,我这样称呼报告:

0 投票
1 回答
1369 浏览

abap - 如何以有效的方式计算查询中的重复行?

我正在 SAP SQ01/SQ02 中创建一个报告,其目的是显示产品在指定时间范围内被挑选的次数。

数据主要来自表 LTAP。我只需要能够计算重复材料 XYZ 的行数,并将该数字输出到一个额外的字段中并显示该值。此外,我希望这个计数在指定的时间范围内发生,比如说在过去 30 天内,这是为了确保它是最新的和相关的。

下面的代码可以工作,但它太慢了,输出仅 1 种材料的计数需要几秒钟,我需要报告根据计数输出前 1000 个。有没有更有效的方法来完成同样的事情?

数据选项卡

初始化选项卡

记录处理选项卡

选项卡后选择结束

额外字段代码

在 LTAP 中,字段 UMREZ 填充有数字“1”,因此我在这里使用它来计算重复项。

对于几个材料代码,我希望报告能在几秒钟内而不是几分钟内出来。非常感谢可以实现此目的的替代代码或对当前代码的改进。

0 投票
0 回答
494 浏览

sql - 如何将重复的行数输出到 SAP 查询中的自定义字段中

我们公司在 SAP ERP 6.0、SAP_BASIS 702、SAP_ABA 702 (2005) 上运行,只是在代码语法方面需要牢记。

我有一个表 LTAP,我想创建一个基于此表的查询,它将产生“N”作为从报告运行之日起过去一个月发生的选择数。

我已经使用以下内容定义了动态日期:

这似乎可以完成这项工作。

我似乎无法开始工作的是获取字段 MATNR 的重复行数(每个行条目代表一个唯一选择)并将其输出到自定义字段,同时删除重复行并仅保留唯一值。

我的意思的例子:

在此处输入图像描述

我想在尊重上述日期范围的同时做到这一点,并且在 sq01/sq02 内是可行的。

如何将重复的行数输出到 SAP 查询中的自定义字段中?