1. 程式人生 > >Query 操作手冊 (新增邏輯資料庫)

Query 操作手冊 (新增邏輯資料庫)

基本概念

QUERYSAP的一項簡單報表工具,它可為沒有程式設計基礎的使用者用來生成簡單的報表。它有圖形化的介面,你可在上面託託拽拽,然後就可以見到你要的報表,可是這只是簡單的應用,其實每個工具功能都是比較完善的,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

2. 這些元件之間的關係有:


1
Query的管理包括建立Functional area(功能區)和User Group(使用者組),並將功能區分配到相應的使用者組中去。
2
Functional area(功能區)中定義query中需引用的表和欄位。
3
。只有當一個使用者屬於至少一個使用者組才可以建立、執行Queries。一個使用者可以屬於幾個使用者組。使用者組中的使用者享有相同的權力。
4
。當Functional area(功能區)分配給了某使用者組,該使用者組的成員即可以訪問此功能區。5。一個Functional area(功能區)可以分配給多個使用者組;多個Functional area(功能區)可以分配給一個使用者組。

6
Queries通常為特定的使用者組和特定的功能區而建立。這個使用者組的使用者可以訪問所有分配給這個使用者組的Queries

3. 還有一點值得注意,在QUERY的管理時,有這樣的概念:  標準區(Standard Area): 建立在標準區的查詢往往用以滿足特定使用者的特定需求,因此屬於Client獨立(client-specific)的查詢。這些查詢不會連線到SAP工作臺組織器(Workbench Organizer)上。  全域性區域(Global Area): 建立在全域性區域的查詢是為整個系統開發的,因此屬於Client交叉(cross-client)的查詢。這些查詢會在SAP

工作臺組織器(Workbench Organizer)上註冊,可以利用正常的流程傳輸到其他系統中。

這裡提到的標準區的INFOSET,就是指QUICKVIWER中的一個數據源InfoSet(資訊集),而全域性區域的InfoSet是不支援QUICKVIWER的。

操作步驟

1.建立使用者組

截此為止,SQ03的工作已完成。

下一步: SQ02

這裡有幾個選項,我們常用的一般是前3項。

在這裡我們想做一個基於航班及其計劃的報表(可能要很多報表,而不是一個),

我們需要建立這樣一個資訊集,能夠包含所出報表的各種資訊,而這些資訊可能來自多個表格。

基礎表格連線方式:

在“使用基礎表進行表連線”輸入一個表格SPFLI(航班及計劃涉及到2個表,SPFLISFLIGHT ),涉及到的其它表格,我們在進入後續介面能夠加進去。

新增新表後,系統會自動判斷表之間的聯絡,用線聯絡起來,當然,如果有些聯絡不正確,我們可以右鍵刪除。

如果要新增連線(也就是2個表的關聯欄位),則可以拖動一個表的欄位到另外一個表的欄位上,中間的連線線就自動出現了。

出現如下視窗

選項1:系統將把所有表的欄位放到資訊集裡

選項2:系統將把表的關鍵欄位放到資訊集裡

選項3:自定義欄位

我們選擇建立空欄位組

在螢幕左側出現的是表,右側是欄位組,我們根據需要建立自己的欄位組,可以刪除也可以改名,右鍵功能即可操作。我們將建立一個欄位組名為“航班”

在做Query時,我們很容易遇到新增報表顯示列的情況,無論是文字還是數字。就這個例子來講,我們將新增一個“剩餘座位”欄位,單擊“附加”按鈕

在這個螢幕裡,有幾個選項,對於應用顧問來講,我們通常選擇附加欄位。

因為如果附加表格會用到相對比較多的程式碼,對於不熟悉ABAP語言的人並不合適。

然後儲存程式碼

並檢查。

然後按後退按鈕,根據提示儲存並生成功能區。

然後單擊 角色/使用者組分配

選擇開始建立的使用者組,然後儲存

然後進入SQ01建立查詢

會出現如下螢幕

選擇您配置的資訊集。

如果介面中沒有出現您剛做過的資訊集,那需要用SQ03進入,填入資訊集對應的使用者組,然後回到SQ01中建立查詢,這個螢幕裡就會出現您剛做過的資訊集了。或者通過

來實現顯示有權的查詢。

然後單擊“基本清單”

在左側,有欄位清單和選擇欄位2列,眾所周知,報表是要有選擇條件和輸出列的,

選擇條件就是選擇欄位,輸出列就是欄位清單。這裡單擊區分先後順序,先單擊的出現在前面,後單擊的出現在後面。你可以自己做一下測試。

操作後,可以儲存。

然後退出程式返回SQ01介面,按F8執行此報表。

截此為止,最簡單的Query就做完了。

ALV 輸出是我們最常用的方式,它不僅靈活而且擁有儲存變式、小計、彙總等多種功能,例如我們對同一航線承運人ID、起飛機場、目的機場進行座位小計,效果如下

當然我們可以針對這種格式儲存為變式,下次進來時直接用這種方式

下次進來後,可以選擇曾經儲存的格式,也可以設為預設格式。這種小計及合計功能,我們也可以在製作Query時來實現。如下圖

使用邏輯資料庫

簡單的講,邏輯資料庫就是系統在特定的業務裡,自動關聯一些表,我們可以直接使用其中的各種子段而無需考慮其邏輯關聯關係。在SQ02新建的介面裡,我們選擇PNPCE這個邏輯數庫,它代表HR主資料,如果HR主資料裡包含表格PA0001PA0002,PA0014,……這些表,我們完全可以不用自己關聯這些表格,直接使用PNPCE即可。在F4選單中,我們可以去選擇系統內所有的邏輯資料庫,用事物程式碼SLDB去檢視邏輯資料庫的幫助。如果這個邏輯資料庫有選擇螢幕版本,則在F4選單中就會有選項,例如PNP就會有 000 900 兩個螢幕

我們選擇PNPCE

 

PNPCE包括的資訊型別如上,我們可以選擇我們需要的型別,例如組織分配和個人資料。

進入維護介面後,就和表關聯一樣了,可以參考blog上半部分。

在這裡,我們可能經常遇到下面的錯誤:

一個窗口裡有很多紅色標記的欄位,那代表相應的結構裡欄位的描述為空,我們可以用EN 登陸,來做這個查詢,然後再返回中文使用。

上圖的這種情況就可能會出現錯誤,進入EN,這裡就會有描述。(注:這種情況,我做了幾次測試,第一次做時肯定會出現錯誤,但是用EN登陸做了之後,別的結構如有空項,也不再報錯了)

對於熟悉ABAP語言的應用顧問,也可以建立自定義的選擇螢幕元素,在SQ02->屬性介面裡,有個選擇項,這裡可以建立自定義的選擇。然後在程式碼部分寫檢查程式碼。

特別註釋:ALV的格式管理功能,是我們在使用Query時最常用的,使用者可以自定義自己的報表樣式,也可以設定全域性變式及預設設定。