在ABAP中更改系统变量以进行测试

在ABAP中更改系统变量以进行测试,abap,Abap,我在运行程序时遇到一个错误:没有发现任何与之相关的航班 分析代码后,我发现程序调用了BAPI: BAPI_SFLIGHT_GETLIST *"*"Lokale Schnittstelle: *" IMPORTING *" VALUE(FROMCOUNTRYKEY) LIKE BAPISFDETA-COUNTRYFR *" VALUE(FROMCITY) LIKE BAPISFDETA-CITYFROM *"

我在运行程序时遇到一个错误:没有发现任何与之相关的航班

分析代码后,我发现程序调用了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:

  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.
选择SFLIGHT-CARRID SFLIGHT-CONNID SFLIGHT-FLDATE
从机场到机场
戴普泰姆
SEATSMAX seatscoc
从SPFLI“连接
“轻”航班
在SPFLI~CARRID=SFLIGHT~CARRID上
SPFLI~CONNID=SFLIGHT~CONNID
内部连接SCITAIRP作为F“将城市映射到
在SPFLI~AIRPFROM=F~机场“机场上
内连接SCITAIRP为T
在SPFLI~AIRPTO=T~机场上
其中F~国家=FROMCOUNTRYKEY“限制
F~CITY=FROMCITY
T~COUNTRY=TOCOUNTRYKEY
T~城市=城市
和FLDATE>=SY-DATUM“下午\u HLP
还有SPFLI~腐肉中的腐肉
按航班日期从AIRPTO订购。
由于SY-DATAM=今天的日期,select无法返回任何数据。而在数据库中,今天没有航班

如何更改sy基准系统字段


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

嗯,有几个选项你可以考虑

  • 在调试器中更改变量内容
  • 在您自己的名称空间中列出并复制示例程序,并按照您想要的方式操作编码
  • BAPI\u SFLIGHT\u GETLIST中增强源代码
    
  • 使用功能模块打开源代码编辑器
  • 切换到转换模式
  • 调用上下文菜单增强->创建
  • 你想干什么就干什么
  • 如果您想了解更多详细信息,可以查看此SAP文档

  • 嗯,你可以考虑几个选择

  • 在调试器中更改变量内容
  • 在您自己的名称空间中列出并复制示例程序,并按照您想要的方式操作编码
  • BAPI\u SFLIGHT\u GETLIST中增强源代码
    
  • 使用功能模块打开源代码编辑器
  • 切换到转换模式
  • 调用上下文菜单增强->创建
  • 你想干什么就干什么
  • 如果您想了解更多详细信息,可以查看此SAP文档

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