0

我坚持编写 SAP 查询。我是 ABAP 新手。

我想要实现的是表 ESLL、EKPO、EKKO 之间的连接。具体来说,这些是我想要实现的步骤:

  1. 在每次我输入查询时的选择参数中,我都会为 ESLL-EXTSRVNO 提供不同的值;
  2. 基于该值,查询应根据给定的 ESLL-EXTSRVNO 自动选择 ESLL-PACKNO;
  3. 那么查询应该使 ESLL-SUB_PACKNO 等于之前步骤的 ESLL-PACKNO 值;
  4. 那么查询应该将新的 ESLL-PACKNO 值设置为等于 EKPO-PACKNO 并检索以下字段:EKPO-EBELN、EKPO-EBELP、EKPO-MATKL。

我已经在信息集中编写了一些代码,但我不知道如何修复它。

在我写的“数据”部分:

DATA: it_esll TYPE TABLE OF esll.
DATA: it_esll2 TYPE TABLE OF esll.
DATA: it_ekpo TYPE TABLE OF ekpo.

在“选择开始”部分,我写道:

 SELECT packno
  FROM esll
  INTO TABLE it_esll.
IF sy-subrc EQ 0.
SELECT packno  FROM esll
  into TABLE it_esll2
  for ALL ENTRIES IN it_esll
  where sub_packno EQ it_esll-packno.
IF sy-subrc EQ 0.
  SELECT ebeln ebelp bukrs werks matkl menge netpr peinh
       FROM ekpo
       into TABLE it_ekpo
        for ALL ENTRIES IN it_esll2
       WHERE packno   EQ it_esll2-packno.
endif.
endif.

而且,为了显示我想要的所有信息,我加入了以下连接: ESLL-PACKNO --> EKPO-PACKNO --> EKPO-EBELN --> EKKO-EBELN

最后我想显示这些信息:

  1. 埃克波-埃贝恩
  2. EKPO-EBELP
  3. EKPO-MATKL
  4. EKKO-BSART
  5. EKPO-PACKNO

请你帮助我好吗?

4

1 回答 1

1

一种选择是在您的信息集中使用别名表,如下所示:

  • 第一张表:ESLL;
  • 第二个表 ZESLL(ESLL 上的别名)与连接 ZESLL-PACKNO = ESLL-SUB_PACKNO;
  • 第三个表:在 EKPO-PACKNO = ZESLL-PACKNO 上加入的 EKPO;
  • 第四张表:在 EBELN 上连接的 EKKO;

所以你可以避免ABAP

信息集加入

于 2016-05-17T08:41:59.217 回答