SAPQuery操作技巧介绍材料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
QUERY是SAP提供的方便无编程基础用户的报表工具,使用图形化的界面,让用户托托拽拽就能轻松完成报表编写。
Query的操作简单,包括建立用户组、建立信息集和建立查询报表,分别对应Tcode :SQ01/SQ02/SQ03,下面以资产全息查询报表的建立介绍Query操作的完整理步骤。
一.建立Query用户组(Tcode:SQ03)
如上图,你可能为各个模块建立查询报表,这些报表和SAP Tcode一样需要进行权限控制。
[1].走菜单环境->查询区域可选择查询的工作区,标准区域表示特定client(译成客户真是有才),全局区域则表示该用户组是跨client端的,大家知道同一SAP Server可允许多个client存在,象标准的ABAP程序就是跨client的,SAP已经为各模块预制了很多跨Client 的查询,资产查询比较多,此处选择特定client, 特定client查询不会连接到SAP工作台组织器(Workbench Organizer),可使用程序RSAQR3TR进行传输。
[2].传输用户组,调用程序RSAQR3TR,也可以直接使用SE38执行RSAQR3TR传输,稍后详细介绍如何传输。
[3].建立用户组名为ZFICO。
[4].将用户组分配到SAP用户,比如将需要使用查询的财务关键用户和最终用户的SAP用户帐号分配到该用户组。
二.建立信息集(Tcode:SQ02)
信息集是数据集的特定视图,数据集主要来自多表连接或逻辑数据库,建立信息集如下图:
[1].假设建立信息集ZFIAM001,建立信息集时,用户可自由选择基于表还是基于逻辑数据库,本例使用到资产相关表格ANLA,ANLB,ANLC,ANLU,ALNZ共5个表。
[2][3].按“角色/用户组分配”按钮将信息集分配到用户组ZFICO,你可将一个信息集分配给多个用户组,比如投资项目管理组用户也希望看到该资产查询。
到此,信息集->Query用户组->SAP用户就关联起来了。
介绍一下信息集的详细建立步骤,分abc三个步骤:
a.添加信息集Table
新建信息集ZFIAM001的数据源选择“使用基础表进行表连接”,输入表ANLC,进入后到下图:
[1][2].按此图标添加表,新增表ANLA,ANLB,ANLU,ANLZ,系统自动形成表间的连接,注意添加表不能添加象BSEG一样的簇表。
*从数据存储角度,SAP table分透明表(Transparent Table),簇表(Cluster table)和池表/共享表(Pooler table).
[3].你还可以使用别名表,当一个查询重复用到同一个表时,可使用别名表。
表表之间的连接分两种:内部连接和左外连接,熟悉数据库的一定对此非常了解,将各表的连接条件接下来,点击”信息集合”按钮正式建立信息集,如下图,进入步骤b。
b.建立信息集
[1].按此按钮正式生成一个信息集。
[2].按“附加”按钮可增加附加Table和字段,有人问,在此附加Table和上一步的添加信息集表有什么不同呢?在添加信息集表时实际上各表是存在关联关系的,如果需要从某个不大能相互关联的表中取得一个字段,例如,需要取资产购置的供应商名称,那么可以将供应商表LFA1作为附加表,通过资产主数据表ANLA-LIFNR查找LFA1-NAME1,当然,也可直接使用附加字段,然后通过代码获取供应商名称。
[3].在Query中允许增加ABAP代码,当存在附加表和附加字段时尤其重要。
[4].假设新增了以下几个字段,其中包括本年已提折旧,年初累计折旧和当前累计折旧(当前累计折旧=本年已提折旧+年初累计折旧);本年已提减值,年初累计减值和当前累计减值(当前累计减值=本年已提减值 + 年初累计减值)等。
[5].信息集的字段组和每个字段组的数据字段,在建立信息集时系统会提示如下图的三个选择,选择包括所有表字段,则信息集将包含所有的表的所有字段,实际上,查询并不涉及所有表的所有字段,因此,通常人们会选择”创建空字段组”,系统默认为每个表建立一个默认不包括任何表字段的空字段组,然后,由创建者自行添加各表所需字段。
*有的人还可能喜欢将所有的默认空字段组删除,另外只建立一个空字段组包括所有的查询所需字段,如果设计表较多,本人不大推崇此法。
依次将各表所需字段添加到对应字段组,并将附加字段全部填加到附加字段组。
[6].按“连接”可回到步骤a去修改表连接或新增表。
C.为附加字段添加代码
如下图,除了自定义代码,你还可在“选择”屏自定义选屏字段。
自定义代码如下表,注意“代码部分”选择的是”5记录处理“,在这里编写代码可以使用
信息集中的任何表来编写逻辑:
ZCDL = ANLA-GDLGRP(2). "资产大类
ZCEL = ANLA-GDLGRP(4). "资产小类
IF ANLB-AFABE <> '04'. "04表示税务折旧
BNZJ = ANLC-NAFAG + ANLC-SAFAG.
NCZJ = ANLC-KNAFA + ANLC-KSAFA .
ZCLJZJ = NCZJ + BNZJ .
BNJZ = ANLC-AAFAG .
NCJZ = ANLC-KAAFA .
ZCLJJZ = BNJZ + NCJZ .
ENDIF.
ZCYZ = ANLC-KANSW + ANLC-ANSWL .
编写代码完毕后,就可以生成信息集了。
注意下列表ANLC的以下几个字段:
*ANLC-NAFAG:记帐在当前年的正常折旧(本年计提累计数)
*ANLC-SAFAG:在当前财会年度中的记帐的特别折旧(本年计提累计数)
*ANLC-AAFAG:有关年的计划外折旧记帐(本年计提累计数)
*ANLC-KNAFA:累计正常折旧(年初累计数)
*ANLC-KSAFA:累计特殊折旧(年初累计数)
*ANLC-KAAFA:累积计划外折旧(年初累计数)
SAP的折旧包括普通的正常折旧和两种手工折旧:特殊折旧和计划外折旧, ANLC类似资产的价值汇总表,类似FI模块的GLT0, 在设计上,SAP将资产的各种价值分成了年初(累计)数和本年累计数,因此有下列公式:
当前累计折旧=本年已提折旧+年初累计折旧(包括正常折旧和特殊折旧)