【问题标题】:Changing system variable for testing purpose in ABAP在 ABAP 中更改系统变量以进行测试
【发布时间】:2020-12-26 06:19:32
【问题描述】:

运行程序时出现错误:未找到相应的航班

1

分析代码,发现程序调用了一个BAPI:

BAPI_SFLIGHT_GETLIST
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(FROMCOUNTRYKEY) LIKE  BAPISFDETA-COUNTRYFR
*"     VALUE(FROMCITY) LIKE  BAPISFDETA-CITYFROM
*"     VALUE(TOCOUNTRYKEY) LIKE  BAPISFDETA-COUNTRYTO
*"     VALUE(TOCITY) LIKE  BAPISFDETA-CITYTO
*"     VALUE(AIRLINECARRIER) LIKE  BAPISFDETA-CARRID DEFAULT SPACE
*"     VALUE(AFTERNOON) LIKE  BAPI_AUX-AFTERNOON DEFAULT SPACE
*"     VALUE(MAXREAD) LIKE  BAPI_AUX-MAXREAD DEFAULT 0
*"  EXPORTING
*"     VALUE(RETURN) LIKE  BAPIRET2 STRUCTURE  BAPIRET2
*"  TABLES
*"      FLIGHTLIST STRUCTURE  BAPISFLIST

BAPI 进一步调用一个选择:

  SELECT SFLIGHT-CARRID SFLIGHT-CONNID SFLIGHT-FLDATE
         AIRPFROM AIRPTO
         DEPTIME
         SEATSMAX SEATSOCC
         FROM SPFLI                    " connections
         INNER JOIN SFLIGHT            " flights
           ON  SPFLI~CARRID = SFLIGHT~CARRID
           AND SPFLI~CONNID = SFLIGHT~CONNID
         INNER JOIN SCITAIRP AS F      " Mapping cities to
           ON SPFLI~AIRPFROM = F~AIRPORT      " airports
         INNER JOIN SCITAIRP AS T
           ON SPFLI~AIRPTO = T~AIRPORT
         WHERE F~COUNTRY    = FROMCOUNTRYKEY    " restrictions
         AND   F~CITY       = FROMCITY
         AND   T~COUNTRY    = TOCOUNTRYKEY
         AND   T~CITY       = TOCITY
         AND   FLDATE       >= SY-DATUM        "<====================== HERE
         AND   DEPTIME      > AFTERNOON_HLP
         AND   SPFLI~CARRID IN CARRID
         ORDER BY FLDATE AIRPFROM AIRPTO.

自 SY-DATUM= 今天的日期以来,选择无法返回任何数据。在数据库中,今天没有航班。

如何更改 sy-datum 系统字段?

作为测试目的的解决方法,我尝试将数据库中的 sflight 表中的 fldate 更改为今天的日期,但是系统抛出了引用完整性约束错误。有没有其他可用的解决方法?

【问题讨论】:

  • 是否可以选择“重新生成 SFLIGHT 演示数据”?
  • 您是否无权访问调试模式和在调试中更改变量值的权限?
  • 好吧,如果你在沙盒机器上,你可以在 badi 的末尾添加一个增强功能并自己写选择。
  • 更改调试器中的值是最简单的方法。

标签: abap


【解决方案1】:

嗯,你可以考虑几个选项

  1. 在调试器中更改变量内容
  2. 将示例程序复制到您自己的命名空间中并按照您想要的方式操作编码。
  3. 增强源代码BAPI_SFLIGHT_GETLIST
    1. 使用功能模块打开您的源代码编辑器
    2. 切换到更改模式
    3. 调用 contextmenu Enhancements->创建
    4. 随心所欲
    5. 如果您想了解更多详细信息,可以查看此 SAP 文档ABAP SourceCode Enhancements

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 2013-12-27
    • 2020-02-04
    • 2022-07-22
    • 1970-01-01
    • 2019-03-07
    • 2017-07-26
    • 2013-04-05
    • 1970-01-01
    相关资源
    最近更新 更多