SAP Query 应用(转)

QUERY是SAP的一项简单报表工具,它可为没有编程基础的用户用来生成简单的报表。第一次接触QUERY的时候,感觉也不是很复杂,因为它有图形化的界面,你可在上面托托拽拽,然后就可以见到你要的报表,可是这只是简单的应用,其实每个工具功能都是比较完善的,QUERY也不例外。


QUERY是SAP的一项简单报表工具,它可为没有编程基础的用户用来生成简单的报表。第一次接触QUERY的时候,感觉也不是很复杂,因为它有图形化的界面,你可在上面托托拽拽,然后就可以见到你要的报表,可是这只是简单的应用,其实每个工具功能都是比较完善的,QUERY也不例外。

要全面的理解QUERY,首先看一下QUICKVIWER。
事务代码:SQVI。
我感觉这是QUERY的一个简化,大体流程基本一致,但是在许多方面的功能都“缩水“了。体现如下:
1。Quick Viewer所生成的报表是用户自定义的报表,只能由此用户自己使用、维护
2。Quick Viewer只能使用存于数据库内的数据,不能进行计算(除小计、累计)
3。提供与SAP内部工具如EIS,ABC,ALV及外部工具如Word,Excel借口
4。无须也无法利用用户组、Functional area统一管理
5。无法传输

比较而言,QUERY就比较完善了,可是做起来也比较麻烦一下:
1。生成用户组
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→用户组
T-Code:SQ03
2。创建Functional area(功能区)
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→信息集
T-Code:SQ02
3。创建SAP Query
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→查询
T-Code:SQ01

这些组件之间的关系有:
1。Query的管理包括建立Functional area(功能区)和User Group(用户组),并将功能区分配到相应的用户组中去。
2。Functional area(功能区)中定义query中需引用的表和字段。
3。只有当一个用户属于至少一个用户组才可以创建、运行Queries。一个用户可以属于几个用户组。用户组中的用户享有相同的权力。
4。当Functional area(功能区)分配给了某用户组,该用户组的成员即可以访问此功能区。


5。一个Functional area(功能区)可以分配给多个用户组;多个Functional area(功能区)可以分配给一个用户组。
6。Queries通常为特定的用户组和特定的功能区而建立。这个用户组的用户可以访问所有分配给这个用户组的Queries。

还有一点值得注意,在QUERY的管理时,有这样的概念:
  标准区(Standard Area): 建立在标准区的查询往往用以满足特定用户的特定需求,因此属于Client独立(client-specific)的查询。这些查询不会连接到SAP工作台组织器(Workbench Organizer)上。
  全局区域(Global Area): 建立在全局区域的查询是为整个系统开发的,因此属于Client交叉(cross-client)的查询。这些查询会在SAP 工作台组织器(Workbench Organizer)上注册,可以利用正常的流程传输到其他系统中。

这里提到的标准区的INFOSET,就是指QUICKVIWER中的一个数据源InfoSet(信息集),而全局区域的InfoSet是不支持QUICKVIWER的。

 

 

Tips on how to convert QuickViews to Queries(转)
    QuickViewer 和 SAP Query 是两种不同的创建SAP报表的工具,是SAP专门提供给没有任何ABAP背景的用户使用的。当然懂得ABAP的人也可以使用。他们有许多的不同之处:
    1.QuickViewer只能用来创建最基本的报表,而SAP Query可以用来创建各式报表;
 
    2.和SAP Query相比,在定义QuickView时不需要指定用户组,而是每个用户创建的QuickView只能由其来更改。SAP Query则不同,在指定的用户组内的用户都能够修改SAP Query;
 
    3.在定义QuickView时不需要一定定义其InfoSets,你可以直接指定其数据源。透明表、数据库视图、联合表、逻辑数据库,甚至是InfoSets,都可以作为QuickView的数据源。
 
    4.QuickView使用各式控件,所以使用要QuickView的话对硬件软件都有一定的要求。
 
    5.QuickView并不是SAP系统的一个传输组件,不能够被直接传输至其他的系统/client。
 
在这里,我们主要是针对第五点,怎样使QuickView能够被传输。我们需要将QuickView转化为SAP Query,才能够被传输至不同的系统,不同的client.下面是一些主要的步骤和细节:
  
    1.使用事务代码SQVI创建QuickView。
   
    2.使用事务代码SQ01进入到SAP Query的维护界面。根据SAP提供的步骤,我们需要选择菜单
Query->Convert QuickView 来转化所创建的QuickView.但是我们会发现这个菜单项是被灰掉的,没法选中。为什么呢?
 
    3.在做上面步骤之前,请选择菜单 Environment->Query areas,这时会弹出一个选择窗口来,其中用两项选择:Standard Area(Client-specific)和Global Area(Cross-client).这两项是什么意思呢?从字面上我们知道Standard Area是与客户端相关的,只能在特定的客户端使用的;而Global Area是可以跨客户端的,也就是能够在不同的客户端使用的,可以在不同的客户端传输。默认的Query是可以在不同的客户端传输使用的,请改变这个选项,选择Standard Area(Client-specific)。这是因为我们的QuickView是与客户端相关的,只能够在特定的客户端使用,所以首先我们需要将QuickView转换为与特定的客户端相关的SAP query.
 
    4.选定之后,在选择菜单Query->Convert QuickView,这时该菜单能够被使用了。按照SAP提供的步骤做下去。在弹出的窗口中填写好将要生成的Query和InfoSet的名字。确定。这样就完成了。
 
    5.转换完成之后我们知道这个生成的Query和InfoSet还只是能够在该客户端使用的,他并没有生成传输请求以让我们传输。该怎么办呢??
 
    6.请在SAP Query的维护界面选择菜单Environment->User groups.这样就到了User group的维护界面了。
 
    7.选择菜单Environment->Transports,这样就到了SAP Query的传输工具的界面,请选择必要的参数,填写所需要传输的Query、InfoSet和User group,执行就能够产生传输请求。这样就可以被传输到其他的客户端了。
 
    8.传输到另外的系统后,QUERY还是需要在SQ01里面执行generated program生成本地程序。
 
 
    QuickViewer 对于开发人员来说,一般使用的比较少,所以有些需要注意的东西还是值得我们去探究的。

posted on 2008-08-14 11:36  LongSky  阅读(1439)  评论(0编辑  收藏  举报

导航