以数据库表
ADR2
为例,其字段
VALID_FROM
类型为 char14,存储的日期格式为
YYYYMMDDHHMMSS
:
一些具体的例子数据:
现在有个需求,开发一个 CDS view,将
valid_from
小于当前日期的记录全部读取出来。
ABAP 752 版本之后,可以使用
$session.system_date
在 CDS view 的源代码里访问当前 Application server 的当前日期。
下面是这个需求的实现步骤。
-
创建一个 CDS view
ZITIME
,
@AbapCatalog.sqlViewName: 'ZJERRYTIME'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'time'
define view zitime as select from adr2 {
key addrnumber as addnumber,
country,
valid_from,
cast(substring(valid_from,1,8) as abap.dats) as valid_from_date
} where valid_from <> ''
首先使用 substring 将 valid_from 字段前8个字符提取出来,然后使用
cast
将其转换成类型
abap.dats
, 因为只有类型相同的两个字段,
才能进行比较。我们使用
cast
将 substring 函数返回的 char 类型的值,转换成和
$session.system_date
变量相同的类型。
转换完毕之后,将这个新的字段重命名为
valid_from_date
:
-
新建一个 CDS view ZCTIME,将前一个视图的字段
valid_from_date
同
$session.system_date
比较即可:
@AbapCatalog.sqlViewName: 'ZCTIMEVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'consumption'
define view ZCTIME as select from zitime {
key zitime.addnumber,
zitime.country,
zitime.valid_from_date
} where valid_from_date < $session.system_date
最后的运行效果:
SAPUI5 中的数据类型用作验证用户输入的机制(例如,“hello”不是订单数量的可接受值),并确保数据在 UI 上被正确格式化和显示(例如将 1234567 显示为 1,234,567 需要时)。
【Android 逆向】IDA 工具使用 ( 十六进制视图 Hex View-1 | 结构体视图 Structures | 枚举视图 Enums | 导入视图 Import | 导出视图 )