十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
SAP是一个复杂的系统,有很多专有的概念、规则、条件、逻辑,SAP系统也是一个根据业务需求定制配置的系统,业务操作者只有了解并遵循这些规则,才能顺利操作,否则系统会提示各种各样的报错消息,导致操作者基本的操作都无法进行,即便做个会计凭证也会一路操作一路报错,对于初学者这是一个非常难受的事情。
十年的边坝网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整边坝建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“边坝网站设计”,“边坝网站推广”以来,每个客户项目都认真落实执行。
而对于刚接触系统的人来说,对这些规则即便经过顾问的培训,学习者依旧不是十分了解或者不能理解,这是SAP难于学习的一个重要原因。
下面介绍一个财务人员学习系统操作的简要方法:即参照系统现有数据来操作业务,也即通过财务端数据反查业务端数据,然后参照业务端数据自己做业务收据,步骤如下:
1通过FAGLB03查询总帐科目数据:你要查什么数据,那么就输入什么会计科目
2、按下图箭头和说明操作
3、下图,双击A(对应借方列),出来9月份的该科目借方明细数据,双击B处显示贷方发生额,双击C处显示该月借贷发生额数据,双击D处则显示1-9月份的发生额数据
双击前要想清楚自己要查的是什么业务,如下图是“材料采购”科目的总账数据,那么借方在不考虑冲销凭证的情况下就应该是发票校验的数据(发票校验凭证:借材料采购贷:应付账款-供应商),贷方则是物料收货的数据,点 C处就是收货和发票校验的数据汇总
4、上图点的是材料采购科目,下面是该科目的明细数据,对于材料采购科目,WE的凭证类型都是物料收货凭证,RE凭证则是发票校验凭证,凭证类型是根据后台配置的,注意:下图箭头操作时查看选定会计凭证的内容
5、上述操作后得到下面的截图,按下图方式查找原始凭证或凭证流:点A处可找到产生该凭证的原始单据,点B处能带出跟该凭证所有相关的业务单据单据流
6、下图是上图点“关系浏览器”点出来的截图。注意:最上层会计凭证号为5000006974,怎么在下面截图又显示的会计凭证号码变为了5000004453呢?原因是5000006974凭证是物料凭证5000036074收货产生,而收货又是与采购订单8100001598关联的,截图里面并没有把5000006974的物料凭证点出来
7、上图双击采购订单得到下图(也可以点其他行项目得到对应的其他原始凭证):其中A\B\C处可以点开或收藏,点A处可以看到订单的抬头信息(比如采购组织、采购组公司代码信息等,这些组合具有一一对应关系,关系对应错了就建不了订单);点B处可以看到订单的采购内容,点开C处“项目”后选择D处看“采购订单历史”视图,可以看到该订单的收货和发票校验信息,E处是当采购订单采购内容有多个行项目时,在这里可以选取某行,那就能看到该采购项目的收货和发票校验信息
8、在这里,大家可以选择对应凭证进行查看,也可以冲销重新做相关操作。也可以参照原始凭证的内容自己再做一个订单,那么操作时就不会碰到太多的报错消息,做起来就会顺利多了。冲销的操作以及正向的操作参照操作手册做就可以了
上面内容只是一个抛砖引玉的介绍,其他科目(对于财务人员的话,比如还有收入科目、生产成本科目,)的操作查询也可参照上面的思路来处理
文 | SAP油瓶哥
前言
说起SAP中的变式(Variant),SAP从业者肯定不会陌生,对于选择屏幕复杂的程序界面,我们可以使用变式来简化界面(比如隐藏不相关字段),对于经常使用的并且每次都需要输入相同筛选条件的程序(比如每月都要执行的报表),可以设定和调用变式来简化操作,此外当我们需要需要设定后台JOB时,我们也需要为后台程序指定相应的变式。
本文尝试为变式相关概念做些总结,并再简单说下变式中的选择变量(Selection variables)的用法。
维护变式
当我们新定义一个变式时,我们需要:
进入程序界面,在选择屏幕输入选择条件
点击保存按钮进入变式属性界面
填上变式名字和描述
保存
或者我们也可以通过SE38,填上程序名,选择子对象变式,点击显示或修改按钮进入变式维护界面。
当我们需要从前台调用时变式时,只要点击变式按钮双击想调用的变式即可。
需要注意的是当一个程序的变式数大于10个时,点击变式按钮会弹出额外的选择界面:
这些常规操作,大家应该都非常熟悉,这里我们来看下变式属性的其他选项,看看他们都有什么作用。
变式属性
使用屏幕分配 (Use screen assignment)
如果一个程序包含多个选择屏幕(例如:COOIS),当我们只想编辑某一个选择屏幕的变式属性时,可以先在右侧勾选选择屏幕号,然后再点击使用屏幕分配按钮,这时下方的窗格就会只显示对应的选择屏幕字段,当然SAP中大多数程序还是只有一个选择屏幕界面,所以这个按钮用到的情况并不多。
仅用于后台处理 (Only for Background Processing)
如果勾上了此项,那么变式就不能在前台被调用了,只能用于后台JOB。
保护变式 (Protect Variant)
勾选后,该变式其他用户无法修改。
仅在目录中显示 (Only Display in Catalog)
勾选后,点击变式按钮不会看见此变式,变式也不会出现在SE38的变式子界面的搜索帮助中,只能在变式目录中找到此变式。
变式目录可以在SE38的变式子界面,通过如下菜单位置找到:
仅出现在变式目录中的变式依然可以被用于定义后台JOB:
系统变式 (System Variant)
该选项无法手工勾选,当定义新的系统变式或查看系统变式时会自动勾上。
关于系统变式可以分享的几点如下:
A. 系统变式命名以SAP或CUS开头,SAP表示SAP原生定义的系统变式,CUS表示客户自定义的系统变式
B. 无法为本地程序定义系统变式,否则系统会给出DB248报错
C. 系统变式不会被覆盖并且只能由创建者或最后修改者修改
D. 系统变式保存时会触发自动传输(Workbench类型,传输对象是 LIMU VARI)
E. 当传输程序时,对应的系统变式会一起被传输
F. 系统变式不区分Client (not client-specific),系统变式只能从Client 000中调用T类型选择变量(静态变量),这个下面会谈到。
屏幕字段类型 (Type)
屏幕字段一共有两种类型,P和S , P表示参数(PARAMETERS),S表示选择选项(SELECTION-OPTIONS),从前台界面上来看就会一下子明白。(这里需要说明的是,并不是屏幕上看到单个空格的就一定是P类型,用SELECTION-OPTIONS定义的选择屏幕也是可以实现单个空格效果的)。
不同类型的屏幕字段也只能调用相应类型的选择变量,这个下面会谈到。
保护字段 (Protect field)
勾选后,当程序调用此变式执行时,字段在前台选择屏幕上可见,但不接受用户输入,只能在维护变式时录入。
隐藏字段 (Hide field / Hide field 'TO')
勾选后,当程序调用此变式执行时,字段在前台选择屏幕上将不可见,但在维护变式时录入的值依然有效。
保存无值的字段 (Save field without values)
使用后,系统在保存变式时会不考虑录入的字段值。
如果该字段与MEMORY ID无关,那么对该字段系统将以空值保存在变式中。
如果该字段与MEMORY ID有关,那么系统在调用变式时该字段值会受到SAP memory中的值和用户变量的影响,具体三者间的关系,后面会谈到。关于MEMORY ID下面也会聊到。
GPA关闭 (Switch GPA off)
这里的GPA指的是SPA/GPA, 即SELECT/GET Parameter ID,也就是用户参数文件中的SET/GET 参数标识(可以用SU3或SU01维护),Parameter ID(pid)存在表TPARA中。
要讨论这个选项,我们需要先说下SAP memory。我们在日常操作中肯定注意过这种现象,就是有时我们进入到一些程序时(注意:不是用变式启动),会发现有些字段的值已经自动填写上了,这里其实用到了SAP memory机制。在这种机制下,当一个屏幕被调用时,那些用MEMORY ID语法定义的屏幕字段会去SAP memory中搜寻当前值,并自动填充到屏幕上。SAP memory是与用户ID绑定的,这种机制提高了用户的操作体验。
下面我们先看一个例子,理解下这个自动填充的逻辑:
登录SAP, 我们在SU3中维护PID WRK = 8000
进入MB51, 会发现工厂字段是自动填写上8000的
我们手工改为6000 (注意:要按下回车才会进入SAP memory),退出MB51
再次进入MB51,会发现工厂字段默认带出了6000 (其实进入MB52也会发现工厂字段自动会带出6000)
我们手工改为空,退出MB51
再次进入MB51,会发现工厂字段默认为空
登出SAP,再次登录SAP,进入MB51,会发现工厂字段自动带出了8000
退出MB51,进入SU3修改WRK = 6010
再次进入MB51,会发现工厂字段默认带出了6010
这里我们就可以明白这个SAP memory的工作原理了,当我们以无变式方式进入一个程序屏幕时,假如A字段用到了MEMORY ID语句关联了PID,并且没有在语法中给出默认值,那么当SAP memory中有值时系统会优先调用(注意:包括其他屏幕操作写入的值、空值和新保存在用户参数文件中的值),当SAP memory中还没有值时(比如刚登录系统,未进行其他操作),系统会去检查用户参数文件中有无维护PID,如果有,就调用PID值(包括空值),如果没有,那么就以初始值显示(即空值)。
回到GPA关闭这个选项上来,首先这个选项只对使用了MEMORY ID定义的屏幕字段有效,对其他屏幕字段来说这个选项是不可编辑的。如果我们勾选了GPA关闭,那么当我们调用变式时,就不会触发SAP memory机制。
更详细的举例可以参加后面的组合测试部分。
要求的字段 (Required field)
使用后,当程序调用此变式执行时,该字段在选择屏幕上变为必输项。
选择变量 (Selection variable)
选择变量可以帮助我们更灵活去管理变式,目前SAP支持的选择变量一共有4种:
静态变量,即表TVARVC中的值 (类型T)
动态日期计算 (类型D、X)
动态时间计算 (类型Z、Y)
用户变量 (类型B)
下面我们依次来看下这几种变量的用法。
T类型选择变量:表TVARVC中的值
我们可以直接将表TVARVC中定义的值用在变式中,这样当选择条件发生小的变更时,就不用每次都去变更已有的变式,只要更新表TVARVC中的静态变量即可。
T类型选择变量也可以配合 保护字段 一起使用。
假如我们每月需要为所有的工厂执行一系列的报表或程序,我们为这些程序创建了变式,并设定了后台JOB,随着业务的增长,每当有新的工厂被创建后,我们需要为这一系列程序去修改变式。如果我们在表TVARVC中定义了一个ZPLANT的变量(类型:选择选项),并将这个变量应用在所有的变式中,这样当业务环境发生变化时,我们就仅需要去修改ZPLANT这个变量值,这将大大简化我们的工作量。
关于T类型的选择变量,其他需要说明的有:
A. T类型选择变量存储在表TVARV和TVARVC中,TVARV不区分Client,TVARVC区分Client
B. 自Release 610开始, TVARV 被TVARVC所替代,可以用程序RSTVARVCLIENTDEPENDENT来将 TVARV的值拷贝至TVARVC
C. 事务码STVARV可以用来维护当前Client的表TVARVC中的值,事务码STVARVC可以在任一Client维护Client 000的表TVARVC的值。也可以在变式属性定义界面通过菜单环境定义选择变量进行维护。
D. Client 000中的表TVARVC中的值是给系统变式用的。
E. P类型的屏幕字段可以调用表TVARVC中的参数值,S类型的屏幕字段可以调用表TVARVC中的选择选项值
F. 因为动态期间计算不能涵盖所有场景,我们可以根据需要在表TVARVC创建变量,并开发一个程序进行定期更新。
比如事务码IDCNACCTBLN中的年份和期间这两个字段不能使用动态计算,我们可以在表TVARVC创建变量ZCURRENT_YEAR(本年)和ZLAST_PERIOD(上月),通过一个自开发程序每月去更新ZCURRENT_PERIOD,每年去更新ZCURRENT_YEAR。
注意:T类型的选择变量会影响到所有调用它的变式
D、X类型选择变量:动态日期计算
只有数据类型为DATS的屏幕字段才能使用动态日期计算。D类型动态日期计算使用的是本地日期,X类型使用的是系统日期。
SAP支持的动态日期计算选择如下:
Z、Y类型选择变量:动态时间计算
只有数据类型为TIMS的的屏幕字段才能使用动态时间计算。Z类型动态日期计算使用的是本地时间,Y类型使用的是系统时间。
SAP支持的动态时间计算选择如下:
B类型选择变量:用户变量 (User-specific Selection Variables)
最后来看下用户变量,用户变量是与用户ID绑定的选择变量,如果我们要在变式中使用用户变量,需要满足3个条件:
No.1 该屏幕字段用到了MEMORY ID语法关联到了PID;
No.2 表TUVID 中有相应的PID值;
No.3 已经维护了相应的用户变量值 (用户变量存储在表TVARUVN中)。
当以上条件达到时,我们在维护变式时就可以选择类型B作为选择变量,并且系统会自动带出变量名称。
维护用户变量
维护用户变量的方法有两种:
一. 通过菜单
A. 在选择屏幕中,通过菜单转到用户变量进入维护界面
B. 单击要维护的PID
C. 眼镜按钮会显示当前的用户参数值,笔按钮会进入修改界面,如果点击获取,会读取当前的用户参数值并填到屏幕字段上
D. 点击笔后,选择变量,填上参数值保存即可。(注意: 需要点击删除才会保存成功,如果选择保存空,就会以空值保存 )
E. 点击笔后,如果点击选择屏幕,系统会读取当前屏幕上的值做出输入参照
F. 如果要删除用户变量值,需要进入修改界面然后将参数值改为空,最后选择 删除 即可
二. 调用功能
用户变量也可以通过SE37调用功能来修改,相关的功能如下:
VARI_USER_VARS_GET: 读取现有变量值
VARI_USER_VARS_SET: 修改现有变量值
VARI_USER_VARS_COPY:复制变量值
VARI_USER_VARS_DELETE:删除变量值
VARI_USER_VARS_RENAME:重命名变量值
VARI_USER_VARS_DIALOG:出现对话框输入变量值
组合测试
我们可以看到用户变量和SAP memory都关联到了PID,那么它们间的关系又是怎样的呢?我自己花了点时间测试了下保存无值字段,GPA关闭及用户变量这几个易混淆的选项,在此也把测试的结果分享给大家,希望大家看过后可以了然于胸。
测试对象:
测试场景:
测试结果:
从上面可以看出,如果不考虑保存无值字段的影响,系统取值时优先级最高的是用户变量,然后是创建变式时手工录入的字段值,最后是GPA(SAP memory)
文件链接:
密码: u9cu
后记
本篇缘起年前的一次用户培训上,在讲到如何设置变式中的动态计算变量时,用户提到为什么事务码IDCNACCTBLN中的年度和期间不能设置动态计算,一开始只是想弄清这个,没曾想写的过程中觉得,要不看看所有的变式属性都有什么用,哎,系统变式是啥,以前没注意过啊,GPA是什么东东?反正不会是大学成绩绩点,保存无值字段该怎么理解,怎么还有个B类型的选择变量。。
我觉得我某种程度是有强迫症的。
以上。
参考资料
1746893 - Dynamic date and time calculation in variant
1994216 - How to maintain variant variables in table TVARVC
557314 - As of Release 610: TVARV replaced with TVARVC
770084 - Maintaining TVARVC in transaction STVARV
372724 - Maintenance of report variants
Dynamic date selection in Variants
Dynamic Dates in Screen Variants
Create SAP Dynamic Variant using Date Calculation
SAP Documentation: Variant Maintenance
SAP Documentation: SPA/GPA Parameters as Default Values
物料主数据在特定的工厂Plant下没有维护,这些错误提示不是说没有库存,而是这些物料号码不存在。
SAP我们公司在用,是一个相当大的ERP系统,里面包括的东西非常非常多,你这样是问不出什么来的。
这是SAP中国官网,可以去了解一下