關(guān)于Sap系統(tǒng)變式創(chuàng)建的信息

魔鬼在細(xì)節(jié)中:你不一定知道的SAP程序變式和選擇變量

文?|?SAP油瓶哥

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供盤錦企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為盤錦眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

前言

說起SAP中的變式(Variant),SAP從業(yè)者肯定不會陌生,對于選擇屏幕復(fù)雜的程序界面,我們可以使用變式來簡化界面(比如隱藏不相關(guān)字段),對于經(jīng)常使用的并且每次都需要輸入相同篩選條件的程序(比如每月都要執(zhí)行的報表),可以設(shè)定和調(diào)用變式來簡化操作,此外當(dāng)我們需要需要設(shè)定后臺JOB時,我們也需要為后臺程序指定相應(yīng)的變式。

本文嘗試為變式相關(guān)概念做些總結(jié),并再簡單說下變式中的選擇變量(Selection?variables)的用法。

維護(hù)變式

當(dāng)我們新定義一個變式時,我們需要:

進(jìn)入程序界面,在選擇屏幕輸入選擇條件

點擊保存按鈕進(jìn)入變式屬性界面

填上變式名字和描述

保存

或者我們也可以通過SE38,填上程序名,選擇子對象變式,點擊顯示或修改按鈕進(jìn)入變式維護(hù)界面。

當(dāng)我們需要從前臺調(diào)用時變式時,只要點擊變式按鈕雙擊想調(diào)用的變式即可。

需要注意的是當(dāng)一個程序的變式數(shù)大于10個時,點擊變式按鈕會彈出額外的選擇界面:

這些常規(guī)操作,大家應(yīng)該都非常熟悉,這里我們來看下變式屬性的其他選項,看看他們都有什么作用。

變式屬性

使用屏幕分配?(Use?screen?assignment)

如果一個程序包含多個選擇屏幕(例如:COOIS),當(dāng)我們只想編輯某一個選擇屏幕的變式屬性時,可以先在右側(cè)勾選選擇屏幕號,然后再點擊使用屏幕分配按鈕,這時下方的窗格就會只顯示對應(yīng)的選擇屏幕字段,當(dāng)然SAP中大多數(shù)程序還是只有一個選擇屏幕界面,所以這個按鈕用到的情況并不多。

僅用于后臺處理?(Only?for?Background?Processing)

如果勾上了此項,那么變式就不能在前臺被調(diào)用了,只能用于后臺JOB。

保護(hù)變式?(Protect?Variant)

勾選后,該變式其他用戶無法修改。

僅在目錄中顯示?(Only?Display?in?Catalog)

勾選后,點擊變式按鈕不會看見此變式,變式也不會出現(xiàn)在SE38的變式子界面的搜索幫助中,只能在變式目錄中找到此變式。

變式目錄可以在SE38的變式子界面,通過如下菜單位置找到:

僅出現(xiàn)在變式目錄中的變式依然可以被用于定義后臺JOB:

系統(tǒng)變式?(System?Variant)

該選項無法手工勾選,當(dāng)定義新的系統(tǒng)變式或查看系統(tǒng)變式時會自動勾上。

關(guān)于系統(tǒng)變式可以分享的幾點如下:

A.?系統(tǒng)變式命名以SAP或CUS開頭,SAP表示SAP原生定義的系統(tǒng)變式,CUS表示客戶自定義的系統(tǒng)變式

B.?無法為本地程序定義系統(tǒng)變式,否則系統(tǒng)會給出DB248報錯

C.?系統(tǒng)變式不會被覆蓋并且只能由創(chuàng)建者或最后修改者修改

D.?系統(tǒng)變式保存時會觸發(fā)自動傳輸(Workbench類型,傳輸對象是?LIMU?VARI)

E.?當(dāng)傳輸程序時,對應(yīng)的系統(tǒng)變式會一起被傳輸

F.?系統(tǒng)變式不區(qū)分Client?(not?client-specific),系統(tǒng)變式只能從Client?000中調(diào)用T類型選擇變量(靜態(tài)變量),這個下面會談到。

屏幕字段類型?(Type)

屏幕字段一共有兩種類型,P和S?,?P表示參數(shù)(PARAMETERS),S表示選擇選項(SELECTION-OPTIONS),從前臺界面上來看就會一下子明白。(這里需要說明的是,并不是屏幕上看到單個空格的就一定是P類型,用SELECTION-OPTIONS定義的選擇屏幕也是可以實現(xiàn)單個空格效果的)。

不同類型的屏幕字段也只能調(diào)用相應(yīng)類型的選擇變量,這個下面會談到。

保護(hù)字段?(Protect?field)

勾選后,當(dāng)程序調(diào)用此變式執(zhí)行時,字段在前臺選擇屏幕上可見,但不接受用戶輸入,只能在維護(hù)變式時錄入。

隱藏字段?(Hide?field?/?Hide?field?'TO')

勾選后,當(dāng)程序調(diào)用此變式執(zhí)行時,字段在前臺選擇屏幕上將不可見,但在維護(hù)變式時錄入的值依然有效。

保存無值的字段?(Save?field?without?values)

使用后,系統(tǒng)在保存變式時會不考慮錄入的字段值。

如果該字段與MEMORY?ID無關(guān),那么對該字段系統(tǒng)將以空值保存在變式中。

如果該字段與MEMORY?ID有關(guān),那么系統(tǒng)在調(diào)用變式時該字段值會受到SAP?memory中的值和用戶變量的影響,具體三者間的關(guān)系,后面會談到。關(guān)于MEMORY?ID下面也會聊到。

GPA關(guān)閉?(Switch?GPA?off)

這里的GPA指的是SPA/GPA,?即SELECT/GET?Parameter?ID,也就是用戶參數(shù)文件中的SET/GET?參數(shù)標(biāo)識(可以用SU3或SU01維護(hù)),Parameter?ID(pid)存在表TPARA中。

要討論這個選項,我們需要先說下SAP?memory。我們在日常操作中肯定注意過這種現(xiàn)象,就是有時我們進(jìn)入到一些程序時(注意:不是用變式啟動),會發(fā)現(xiàn)有些字段的值已經(jīng)自動填寫上了,這里其實用到了SAP?memory機(jī)制。在這種機(jī)制下,當(dāng)一個屏幕被調(diào)用時,那些用MEMORY?ID語法定義的屏幕字段會去SAP?memory中搜尋當(dāng)前值,并自動填充到屏幕上。SAP?memory是與用戶ID綁定的,這種機(jī)制提高了用戶的操作體驗。

下面我們先看一個例子,理解下這個自動填充的邏輯:

登錄SAP,?我們在SU3中維護(hù)PID?WRK?=?8000

進(jìn)入MB51,?會發(fā)現(xiàn)工廠字段是自動填寫上8000的

我們手工改為6000?(注意:要按下回車才會進(jìn)入SAP?memory),退出MB51

再次進(jìn)入MB51,會發(fā)現(xiàn)工廠字段默認(rèn)帶出了6000?(其實進(jìn)入MB52也會發(fā)現(xiàn)工廠字段自動會帶出6000)

我們手工改為空,退出MB51

再次進(jìn)入MB51,會發(fā)現(xiàn)工廠字段默認(rèn)為空

登出SAP,再次登錄SAP,進(jìn)入MB51,會發(fā)現(xiàn)工廠字段自動帶出了8000

退出MB51,進(jìn)入SU3修改WRK?=?6010

再次進(jìn)入MB51,會發(fā)現(xiàn)工廠字段默認(rèn)帶出了6010

這里我們就可以明白這個SAP?memory的工作原理了,當(dāng)我們以無變式方式進(jìn)入一個程序屏幕時,假如A字段用到了MEMORY?ID語句關(guān)聯(lián)了PID,并且沒有在語法中給出默認(rèn)值,那么當(dāng)SAP?memory中有值時系統(tǒng)會優(yōu)先調(diào)用(注意:包括其他屏幕操作寫入的值、空值和新保存在用戶參數(shù)文件中的值),當(dāng)SAP?memory中還沒有值時(比如剛登錄系統(tǒng),未進(jìn)行其他操作),系統(tǒng)會去檢查用戶參數(shù)文件中有無維護(hù)PID,如果有,就調(diào)用PID值(包括空值),如果沒有,那么就以初始值顯示(即空值)。

回到GPA關(guān)閉這個選項上來,首先這個選項只對使用了MEMORY?ID定義的屏幕字段有效,對其他屏幕字段來說這個選項是不可編輯的。如果我們勾選了GPA關(guān)閉,那么當(dāng)我們調(diào)用變式時,就不會觸發(fā)SAP?memory機(jī)制。

更詳細(xì)的舉例可以參加后面的組合測試部分。

要求的字段?(Required?field)

使用后,當(dāng)程序調(diào)用此變式執(zhí)行時,該字段在選擇屏幕上變?yōu)楸剌旐棥?/p>

選擇變量?(Selection?variable)

選擇變量可以幫助我們更靈活去管理變式,目前SAP支持的選擇變量一共有4種:

靜態(tài)變量,即表TVARVC中的值?(類型T)

動態(tài)日期計算?(類型D、X)

動態(tài)時間計算?(類型Z、Y)

用戶變量?(類型B)

下面我們依次來看下這幾種變量的用法。

T類型選擇變量:表TVARVC中的值

我們可以直接將表TVARVC中定義的值用在變式中,這樣當(dāng)選擇條件發(fā)生小的變更時,就不用每次都去變更已有的變式,只要更新表TVARVC中的靜態(tài)變量即可。

T類型選擇變量也可以配合?保護(hù)字段?一起使用。

假如我們每月需要為所有的工廠執(zhí)行一系列的報表或程序,我們?yōu)檫@些程序創(chuàng)建了變式,并設(shè)定了后臺JOB,隨著業(yè)務(wù)的增長,每當(dāng)有新的工廠被創(chuàng)建后,我們需要為這一系列程序去修改變式。如果我們在表TVARVC中定義了一個ZPLANT的變量(類型:選擇選項),并將這個變量應(yīng)用在所有的變式中,這樣當(dāng)業(yè)務(wù)環(huán)境發(fā)生變化時,我們就僅需要去修改ZPLANT這個變量值,這將大大簡化我們的工作量。

關(guān)于T類型的選擇變量,其他需要說明的有:

A.?T類型選擇變量存儲在表TVARV和TVARVC中,TVARV不區(qū)分Client,TVARVC區(qū)分Client

B.?自Release?610開始,?TVARV?被TVARVC所替代,可以用程序RSTVARVCLIENTDEPENDENT來將?TVARV的值拷貝至TVARVC

C.?事務(wù)碼STVARV可以用來維護(hù)當(dāng)前Client的表TVARVC中的值,事務(wù)碼STVARVC可以在任一Client維護(hù)Client?000的表TVARVC的值。也可以在變式屬性定義界面通過菜單環(huán)境定義選擇變量進(jìn)行維護(hù)。

D.?Client?000中的表TVARVC中的值是給系統(tǒng)變式用的。

E.?P類型的屏幕字段可以調(diào)用表TVARVC中的參數(shù)值,S類型的屏幕字段可以調(diào)用表TVARVC中的選擇選項值

F.?因為動態(tài)期間計算不能涵蓋所有場景,我們可以根據(jù)需要在表TVARVC創(chuàng)建變量,并開發(fā)一個程序進(jìn)行定期更新。

比如事務(wù)碼IDCNACCTBLN中的年份和期間這兩個字段不能使用動態(tài)計算,我們可以在表TVARVC創(chuàng)建變量ZCURRENT_YEAR(本年)和ZLAST_PERIOD(上月),通過一個自開發(fā)程序每月去更新ZCURRENT_PERIOD,每年去更新ZCURRENT_YEAR。

注意:T類型的選擇變量會影響到所有調(diào)用它的變式

D、X類型選擇變量:動態(tài)日期計算

只有數(shù)據(jù)類型為DATS的屏幕字段才能使用動態(tài)日期計算。D類型動態(tài)日期計算使用的是本地日期,X類型使用的是系統(tǒng)日期。

SAP支持的動態(tài)日期計算選擇如下:

Z、Y類型選擇變量:動態(tài)時間計算

只有數(shù)據(jù)類型為TIMS的的屏幕字段才能使用動態(tài)時間計算。Z類型動態(tài)日期計算使用的是本地時間,Y類型使用的是系統(tǒng)時間。

SAP支持的動態(tài)時間計算選擇如下:

B類型選擇變量:用戶變量?(User-specific?Selection?Variables)

最后來看下用戶變量,用戶變量是與用戶ID綁定的選擇變量,如果我們要在變式中使用用戶變量,需要滿足3個條件:

No.1?該屏幕字段用到了MEMORY?ID語法關(guān)聯(lián)到了PID;

No.2?表TUVID?中有相應(yīng)的PID值;

No.3?已經(jīng)維護(hù)了相應(yīng)的用戶變量值?(用戶變量存儲在表TVARUVN中)。

當(dāng)以上條件達(dá)到時,我們在維護(hù)變式時就可以選擇類型B作為選擇變量,并且系統(tǒng)會自動帶出變量名稱。

維護(hù)用戶變量

維護(hù)用戶變量的方法有兩種:

一.?通過菜單

A.?在選擇屏幕中,通過菜單轉(zhuǎn)到用戶變量進(jìn)入維護(hù)界面

B.?單擊要維護(hù)的PID

C.?眼鏡按鈕會顯示當(dāng)前的用戶參數(shù)值,筆按鈕會進(jìn)入修改界面,如果點擊獲取,會讀取當(dāng)前的用戶參數(shù)值并填到屏幕字段上

D.?點擊筆后,選擇變量,填上參數(shù)值保存即可。(注意:?需要點擊刪除才會保存成功,如果選擇保存空,就會以空值保存?)

E.?點擊筆后,如果點擊選擇屏幕,系統(tǒng)會讀取當(dāng)前屏幕上的值做出輸入?yún)⒄?/p>

F.?如果要刪除用戶變量值,需要進(jìn)入修改界面然后將參數(shù)值改為空,最后選擇?刪除?即可

二.?調(diào)用功能

用戶變量也可以通過SE37調(diào)用功能來修改,相關(guān)的功能如下:

VARI_USER_VARS_GET:?讀取現(xiàn)有變量值

VARI_USER_VARS_SET:?修改現(xiàn)有變量值

VARI_USER_VARS_COPY:復(fù)制變量值

VARI_USER_VARS_DELETE:刪除變量值

VARI_USER_VARS_RENAME:重命名變量值

VARI_USER_VARS_DIALOG:出現(xiàn)對話框輸入變量值

組合測試

我們可以看到用戶變量和SAP?memory都關(guān)聯(lián)到了PID,那么它們間的關(guān)系又是怎樣的呢?我自己花了點時間測試了下保存無值字段,GPA關(guān)閉及用戶變量這幾個易混淆的選項,在此也把測試的結(jié)果分享給大家,希望大家看過后可以了然于胸。

測試對象:

測試場景:

測試結(jié)果:

從上面可以看出,如果不考慮保存無值字段的影響,系統(tǒng)取值時優(yōu)先級最高的是用戶變量,然后是創(chuàng)建變式時手工錄入的字段值,最后是GPA(SAP?memory)

文件鏈接:

密碼:?u9cu

后記

本篇緣起年前的一次用戶培訓(xùn)上,在講到如何設(shè)置變式中的動態(tài)計算變量時,用戶提到為什么事務(wù)碼IDCNACCTBLN中的年度和期間不能設(shè)置動態(tài)計算,一開始只是想弄清這個,沒曾想寫的過程中覺得,要不看看所有的變式屬性都有什么用,哎,系統(tǒng)變式是啥,以前沒注意過啊,GPA是什么東東?反正不會是大學(xué)成績績點,保存無值字段該怎么理解,怎么還有個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

sap怎么創(chuàng)建結(jié)賬變式

打開SAP Logon,登錄系統(tǒng)

2/6

輸入事務(wù)碼'SPRO' ,進(jìn)入視圖配置

3/6

點擊'SAP 參考 IMG' ,進(jìn)入明細(xì)界面

4/6

點擊'項目系統(tǒng)',展開列表執(zhí)行‘創(chuàng)建成本核算變式’

5/6

點擊‘新條目’按鈕創(chuàng)建新條目

sap 什么是事務(wù)變式?為何要使用它?

事務(wù)變式是一組屏幕變式,用于預(yù)定義屏幕行為和默認(rèn)值。通過使用變式功能,可以將用戶不需要的字段、子屏幕及全屏幕從用戶視圖中取消。可以給任何輸入字段設(shè)置默認(rèn)值,字段也可以不用帶

"Ready

for

Input"

狀態(tài)。

只能為對話和報表事務(wù)創(chuàng)建事務(wù)變式;變式中只能包含普通屏幕、子屏幕及對話屏幕。

開發(fā)人員可以使用

GuiXT

腳本語言通過事務(wù)變式維護(hù)對屏幕進(jìn)行修改。修改屏幕布局的方式有:插入按鈕、值幫助(Value

Helps)、移動對象、插入屏幕等等。

網(wǎng)站欄目:關(guān)于Sap系統(tǒng)變式創(chuàng)建的信息
網(wǎng)頁路徑:http://muchs.cn/article34/ddceepe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站策劃、云服務(wù)器、品牌網(wǎng)站制作網(wǎng)頁設(shè)計公司、App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站