SAP为不同的用户在使用程序时,根据自己的喜好来自定义想要输入的内容。开发了程序变式。用于优化输入内容,提升用户体验。

SAP 程序变式(Program Variant) 是用于保存、复用 ABAP 程序(主要是报表)选择屏幕参数的核心功能,是作为一种“参数预设集”,用于保存和快速复用程序(如报表)的选择屏幕条件,从而提升操作效率与数据准确性,是日常操作、后台自动化、权限控制与数据一致性的基础工具。

核心作用如下:

1、提升效率,避免重复输入

保存常用筛选条件(公司代码、日期、物料、工厂等),下次运行直接调用,无需重复填写。

2、后台作业(Background Job)必备

后台运行程序(SM36)必须通过变式传递参数,实现程序按指定时间指定条件自动调用功能。

3、保证数据一致性与标准化

统一团队参数口径,防止因手动输入不同导致报表结果不一致。

4、简化界面、优化体验

可隐藏无关字段、设为只显示 / 只输入 / 保护,减少干扰、降低误操作。

5、权限与安全控制

  • 设为私有变式(仅自己可见)

  • 设为公共变式(全局共享)

  • 设为仅显示 / 保护变式(禁止他人修改)

6、支持动态变量(Dynamic Date)

内置动态变量(如当前月、上月、当年、去年),自动计算,无需每月改日期。

 一、普通用户设置变式

找到需要设置变式的程序,输入自己想要设置的条件,点击保存按钮。

 202604090101.png

转到变式属性屏幕,

 202604090102.png

1、变式属性设置

1.1、变式名称:给自己的变式一个称呼,有效长度为14位,可以是英文、数字、下划线等字符。

1.2、描述:对变式做一个简短描述。

1.3、仅用于后台处理:变式只能被SM36后台程序调用,无法在前台使用

1.4、保护变式:勾选后,其他用户无法对该变式进行修改

1.5、仅在目录中显示:勾选后无法在前台变式中查看,也无法使用SE38的变式进行查看,只能在变式目录中找到该变式,如下图所示:

 202604090103.png

2、变式字段设置

2.1、保护字段:勾选后,字段会显示在界面上,但是无法输入任何值

 202604090104.png

2.2、隐藏字段:勾选后,字段不会显示在界面上。

 202604090105.png

2.3、隐藏字段‘to’:勾选后,变成单值输入框

 202604090106.png

2.4、要求的字段:勾选后,字段变成必输

202604090107.png 

2.5、选择变量类型:根据字段的属性不同,会分别显示不同的变量类型,

字符变量:

T:TVARV 中的表变量

B:用户定义的变量

 202604090108.png

日期和时间格式:

T:TVARV 中的表变量

D:动态日期计算(本地日期)

X:动态日期计算(系统日期)

Z:动态时间计算(本地时间)

Y:动态时间计算(系统时间)

 202604090109.png

 202604090111.png

T:TVARV中的表变量:从系统表:TVARVC中获取值来填充到变式中,通过事务码:STVARV来维护表TVARVC中的值。 其作用是通过一个表的数值来维护所有字段的值,

D和X变量类型都是自动计算日期,D取的是本地计算机的日期和时间,X取的是服务器上的日期和时间。在同一个时区两者没有任何区别,两者在两个时区就会有差异。比如服务器在欧洲,人在中国上班,两者就会有时间差。

Z和Y变量类型与日期变量类型的引用是一致的。不再赘述

2.6、选项:由变量名称来决定选项是包含还是排除

2.7、变量名称(仅用F4输入):最常用的是给日期、时间设置动态变量。给B和T来指定变量。

设置动态范围:

I/E:日期和时间是否包含(I)和排除(E)

选择:即进行运算符的选:EQ 等于、BT 介于、LE 小于等于、GE 大于等于、CP 包含样式

变量名称:指定变量的范围,用于指定日期和时间的落脚点。

I/E = I; 选项= EQ; 变量名称:当前日期

当使用变量时:每次的日期值都是当天,

 202604090111.png

显示效果如下:

 202604090112.png

I/E = I; 选项= EQ; 变量名称:当前日期 +/- ??? 天

当使用变量时:每次的日期值都是当天+天数,加1表示到明天,加2白后台,-1则表示昨天。

 202604090113.png

效果如下:

 202604090114.png

想要到一个期限内,可以通过设置选择:当前日期 – xxx,当前日期 + yyy而实现

 202604090115.png

效果如下:

 202604090116.png

二、业务顾问+开发顾问设置变量

相较于普通用户,业务顾问还需要与开发顾问一同来实现更为深入的变式。

熟悉几个ABAP专业术语及作用:

1、PARAMETERS :是 ABAP 中用于在选择屏幕(Selection Screen)上定义单个输入域的核心语句,它为报表和程序提供了最基础的用户交互界面

2SELECTION-OPTIONS:是 ABAP 中用于在选择屏幕上定义复杂选择条件的核心语句。它为用户提供了一个功能强大的输入界面,允许输入范围、多值、排除项等高级查询逻辑,而不仅仅是单个值。

3、MEMORY ID :是 ABAP 中用于内存数据共享的关键标识,配合 EXPORT/IMPORT(ABAP 内存)或 SET/GET PARAMETER ID(SAP 内存)使用,核心作用是按名称读写内存、跨程序 / 会话传值。

4、SAP MEMORY :SAP 内存。是 SAP 系统为当前登录用户提供的一块全局临时存储区域,用于在同一个用户会话内、跨多个程序 / 事务码 / 窗口之间传递少量数据。

5、SPA/GPA参数:是系统存储在用户专属全局内存(即SAP内存)中的值,用于在程序间传递数据,并且同一个用户的所有会话窗口都能访问这些值.即通过SU3给SAP MEMORY先赋一个默认值,程序通过 MEMORY ID 获取默认值。

我们已工厂字段为例,找到工厂字段,按F1,跳出字段说明,然后点击工厂的MEMORY ID =  WRK ,给它分配一个默认值2001

 202604090117.png

通过事务码SU3给用户的参数中分配WRK ,定值值2001

 202604090118.png

当用户登录后,不对工厂字段做任何操作,此时SAP MEMORY 中 WRK = 2001,程序通MEMORY ID = WRK默认带出2001

 202604090119.png

用户在操作过程中修改了工厂的值并回车,如2001修改为2002,SAP MEMORY 中 WRK = 2002

使用其实事务码时,工厂的默认值变为2002

 202604090120.png

剩余的字段解释如下:

1、类型:字段类型分为两种P和S, P是PARAMETERS的缩写,表示单一输入框,S是SELECTION-OPTIONS的缩写,表示区间输入框。

 202604090121.png

2、切勿保存的值:勾选后,会忽略变式中的值。

3、GPA关:此选项只对MEMORY ID定义的屏幕字段有效,勾选后,会忽略SU3中参数值

4、B:用户定义的变量:SAP MEMORY中值的影响,一旦默认之后,只会选择用户中的变量。

4.1、点击转到–>用户变量

 202604090122.png

4.2、选择需要设置的用户变量,此处以公司代码BUKRS为例

 202604090123.png

4.3、点击变量

 202604090124.png

输入需要设置的值2003

 202604090125.png

点击是

 202604090126.png

点击删除

 202604090127.png

设置选择变量类型为B后,点击保存

 202604090128.png

每次调用该变量 工厂的值的为2003

 202604090129.png

三、设置默认变量启动:

普通用户设置好变式之后,点击保存。每次都需要点击变式按钮,然后选择变式,才会带出来。

 202604090130.png

如果想要直接使用已设定好的变式,变式名称必须使用CUS&开头,如下图

 202604090131.png

使用SE93,在使用变式启动中填入CUS&ZPPB010,此处会产生请求号。切记与用户进行沟通是否已该配置作为默认配置启用。

 202604090132.png

运行结果如下:

 202604090133.png

Comments are closed.

Post Navigation