SAP Variant 的使用

今天要讲的,对于SAP 大佬来说,完全可以关闭页面了。如果你仅仅是个操作SAP的人,平时SAP操作还不太熟练。那么有可能帮助到你。

使用 SAP有10多年了。也会一些SAP的配置,甚至学过ABAP编程语言。以及RFC BAPI等。

因为我比较爱好编程,而不太刻意去学某个软件具体怎么操作。但最近公司新上了基于HANA数据库的SAP,于是打算把一些Variant重新定义一下,方便以后日常工作的使用。

说到Variant ,有很多人把它和Layout 分不清楚,我的建议是你这么理解就好区分一点:Variant 是变量,函数的参数。是函数执行之前要告诉函数的。对于SQL来说就是事务执行之前,要告诉事务运行过程中会用到的那些变量。而layout是陈列布局,是事务执行之后,怎么把结果呈现给用户的。通俗的说 有一个参数带默认值的函数 add( A=1,B=1,C=1,D=1){return a+b+c+d}A,B分别等于什么是Variant ,你全部不告诉也没事。如果A=10,B=20,那么最后结果是32,这个32怎么显示是layout。当然SAP中一般layout是字段的选择。

SAP中很多查询界面建立Variant了。那么以后用这个Variant的时候就会根据你建的配置来查询,免去了一个一个字段输入查询条件的麻烦。

但有一个问题我之前一直没关注过,那就是对于非选择性的字段,或者说输入型的字段怎么设置Variant呢,比如,查询某个客户的open items 的FBL5N或者F.01显示财务报表,以及和其他期间对比等需要用到Variant时,肯定有一些输入型的字段。特别是期间,日期这样的。

再啰嗦一点的说明,就是,很多T-CODE界面中你要输入payer 或者 哪个月的,或者截止到哪一天的查询。其实对于SQL来说,基础数据类型,就那么几种。这时候如果你建立Variant,SAP会默认按照你输入的值和选择的值,来建立Variant。但以后我们用的时候,某个输入的值可能不是当初建立Variant的那个值,比如要查询截止2019.10.12的open items 那么建立Variant的时候,就默认截止日期2019.10.12,等到了11月,我们想查的是2019.11.30日的open items,那么这个Variant就是鸡肋了(每次都需要更改,和没建Variant一样),有什么办法解决吗?这就是今天要说的。

我的语言表达能力不强,又喜欢引申讲到方方面面。如果你看不明白上面的,那就看看下图吧。

 

解决办法是在你save 一个 variant的时候。按照下面的图来配置。

D 代表动态计算日期类型。至于怎么计算。看下图

第一个Current Date 就是“当天日期“的意思。你今天用,就是今天的日期,明天用就是明天的日期。

可以看到下面还有一些方法都是基于当前日期或者当前月份的+-,以及月初第一天,最后一天等等对应SQL语言的方法。意义也很容易明白,就不说了。

需要再留意一点的是,上面的选项是单值选择或者说是== 逻辑等于操作,所以只能配置 一个固定的值,如何配置其他的逻辑呢,比如 (不等于 !=) 大于 小于  大于等于 小于等于呢。SAP中有这样的需求,一般有个箭头按钮让你选择。

继续见下图吧。

可以看到I/E 是I 包含 和 E不包含  后面的Option 就是大于 等于 小于等等。这样就可以表示某个范围之外,某个范围之内。

当然某个字段的Variant Attributes 是根据这个字段的特性来的。就是说,如果你这个字段在查询界面就是一个单值,那么就没有I/E ,option 来配置范围。像上图那个open at key date,就是一个具体的日期。就不会出现 I/E等。而这个posting date 有可能是一个范围。就会出现I/E等。当然这些逻辑都是SAP配置好的。用户不用关心。我们只需要配置Variant的逻辑。

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值