SAP:查詢修改紀錄
比如說,要知道銷售單某筆資料被修改的價格紀錄
除了說可以按下 -> 環境 -> 更改 來進行查詢之外
也可以利用兩個Table:(1) CDHDR (2) CDPOS
或者,可以利用兩個function:
(1) CHANGEDOCUMENT_READ_HEADERS
(2) CHANGEDOCUMENT_READ_POSITIONS
有關範例,可以上google查詢
http://www.sap-img.com/ab024.htm
生活‧主張‧樂趣‧分享
比如說,要知道銷售單某筆資料被修改的價格紀錄
除了說可以按下 -> 環境 -> 更改 來進行查詢之外
也可以利用兩個Table:(1) CDHDR (2) CDPOS
或者,可以利用兩個function:
(1) CHANGEDOCUMENT_READ_HEADERS
(2) CHANGEDOCUMENT_READ_POSITIONS
有關範例,可以上google查詢
http://www.sap-img.com/ab024.htm
要查詢, 可以採用 FUNCTION HR_HK_DIFF_BT_2_DATES
簡單寫個範例:
DATA: zY LIKE P0347-SCRYY.
DATA: zM LIKE P0347-SCRMM.
DATA: zD LIKE P0347-SCRDD.
CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
EXPORTING
DATE1 = 日期一
DATE2 = 日期二
OUTPUT_FORMAT = '01' "<----備註
IMPORTING
YEARS = zY
MONTHS = zM
DAYS = zD.
備註:
以 SE16 查詢 T7HK2P
參數有幾種用法
01 ---> Years with decimals(年, 含小數)
04 ---> Months with decimals(月, 含小數)
07 ---> Anniversary(年, 整數)
08 ---> Anniversary months(月, 整數)
若是要算差異幾日, 參數下 02 即可
*另外, 其他一些常用的日期處理functions, 可到下列網址查詢
請按這裡
使用Range的好處,在於讓程式碼簡潔可以閱讀
這裡提供一段程式碼,請參考使用
*定義Range
*RANGE for AUFNR (紀錄工單號的集合)
DATA: rAUFNR LIKE RANGE OF GLPCA-AUFNR INITIAL SIZE 0 WITH HEADER LINE.
*新增一筆虛擬資料
MOVE: 'I' TO rAUFNR-SIGN,
'EQ' TO rAUFNR-OPTION,
'XXXX' TO rAUFNR-LOW.
APPEND rAUFNR.
*將工單號碼加入Range
*找到2007/1, 有原料耗用科目的工單, 加入Range
SELECT * FROM GLPCA WHERE RYEAR = '2007' AND
POPER = '1' AND
RACCT = '4101010100'.
"若沒有加入Range的, 才加入
IF GLPCA-AUFNR IN rAUFNR.
ELSE.
rAUFNR-SIGN = 'I'.
rAUFNR-OPTION = 'EQ'.
rAUFNR-LOW = GLPCA-AUFNR.
APPEND rAUFNR.
ENDIF.
ENDSELECT.
*使用Range
*訂單物料異動檔(AUFM), 找到剛剛篩選的工單
SELECT * FROM AUFM WHERE AUFNR in rAUFNR. "只要使用IN, 不需要寫一堆OR
IF AUFM-SHKZG = 'S'.
INV_PROFIT = INV_PROFIT + AUFM-DMBTR.
ELSE.
INV_PROFIT = INV_PROFIT - AUFM-DMBTR.
ENDIF.
ENDSELECT.
既然可以由 SAP下載檔案,當然也有對應的檔案上傳的功能
當我們需要將一些參數由PC傳送至SAP主機時,這功能就很實用了
DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.
*儲存資料
DATA: BEGIN OF i_Data OCCURS 10,
CATA(30) TYPE C,
HSL TYPE P,
END OF i_GLPCT.
*檔案上傳
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\Upload\U_file.txt' "U_file.txt 要以Tab間隔
FILETYPE = 'DAT'
ITEM = '對照表檔案上傳'
IMPORTING
ACT_FILENAME = FNAME
ACT_FILETYPE = FTYPE
FILESIZE = FSIZE
TABLES
DATA_TAB = i_Data
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.
當我們要將Internal table的資料 dump 至用戶的電腦上
我們可以下列寫法, 呼叫 Download..
DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.
*欄位文字
data: begin of i_column occurs 0,
hd(50) type c,
end of i_column.
*儲存資料
DATA: BEGIN OF i_Data OCCURS 10,
CATA(30) TYPE C,
HSL TYPE P,
END OF i_GLPCT.
*欄位名稱輸入
move '類別' to i_column-hd. append i_column.
move '金額' to i_column-hd. append i_column.
*呼叫下載FUNCTUIN
CALL FUNCTION 'DOWNLOAD'
EXPORTING
FILENAME = 'C:\FileName.XLS'
FILETYPE = 'DAT'
ITEM = ' 下載 '
IMPORTING
ACT_FILENAME = FNAME
ACT_FILETYPE = FTYPE
FILESIZE = FSIZE
TABLES
DATA_TAB = i_Data
FIELDNAMES = i_column
EXCEPTIONS
INVALID_FILESIZE = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3.
補充一下, 如果將 IMPORTING段的程式碼刪除, 就不會再執行中, 一直詢問檔案名稱
如果一次會下載大量的檔案, 或者檔案名稱及位置都已經固定, 則這個關閉功能是很實用的
農曆年前去Toyota濱江廠保養Premio,業務回Call給我,說要換動力方向機
嗯,車子也才開六年、7萬多公里,平常也只有上下班,怎麼有漏油狀況,需要換新的?
真是嚇一跳…當下告訴業務只要換機油,可先不要讓我花這30000~
我心理在想,到底是真的要換,還是保養廠業務在唬爛賺我錢?
每次來保養,都要推銷東西。幾百幾千也還好,乖乖,上萬塊…
當天下午保養後,自我檢查動力方向機油是否不足?檢查看看… 唷,是到了Min水位。好吧,先到大賣場買罐〔STP 止漏型方向機油〕:D 才不到 200~
哈,省了不少….
我是沒有再去其他家保養廠或者找其他師傅朋友瞧瞧車子如何如何?
接下來,我就每天打開引擎蓋,檢查是否油量變少?然後再看看地上有沒有油漬?到今天也滿一個月了…
怪怪… 油量沒變少,地上也乾乾淨淨…
等下次保養再看業務說要換什麼?
我的心得是,保養廠的業務也太會A錢。怎不先建議客戶補充油料?
先幫客戶省錢,建立信賴,才會賺大錢!
"加總指定月份某個會計科目的金額
data: s_fieldname(15) type c. "欄位
data: nTTL type p decimals 3. "加總
data: i(2) type n. "臨時變數
data: nMonth(2) type N. "暫存月
FIELD-SYMBOLS <fs&gl TYPE P.
select * from glpct where
RLDNR = '8A' AND "分類帳
RRCTY = '0' AND "記錄類型
RVERS = '000' AND "版本
RYEAR = 2006 AND "會計年度
RPMAX = 16 AND "期間
RBUKRS = 'TSMC' AND "公司代碼
KOKRS = 'TW' AND "成本控制範圍
RPRCTR = 'P1' AND "利潤中心
RACCT = '1241050000'.
nTTL = glpct-hslvt.
i = 1.
do 12 times.
CONCATENATE 'GLPCT-HSL' i INTO s_fieldname.
ASSIGN (s_fieldname) TO <fs&gl . "動態給欄位
nTTL = nTTL + <fs&gl .
i = i + 1.
if i > nMonth .
exit.
endif.
enddo.
endselect.
礁溪老爺平日價在網路上可以買到的 --> $8800 (面對山壁)
在這種價格之下, 總要好好利用附近的景點與老爺的設施囉
----出發----
由台北開車, 早上9:00出動, 利用國道五號, 大約10:00就可以下頭城交流道
先到有三層瀑布的五峰旗爬山(現在最上面的瀑布因為落石關閉)
五峰旗很容易走, 順便到旁邊天主堂參觀
接近中午時分, 看各位想吃什麼...
這次到宜蘭市泰山路, 找了一家賣肉羹和炸雞捲的店家(泰山肉羹店,宜蘭縣泰山路70幾號)
在地小吃, 好吃又便宜~
然後, 到附近的宜蘭酒廠逛逛, 試吃他的招牌紅糟香腸(very good)
請注意, 要先買好要帶回的宜蘭特產(牛舌餅蜜餞等), 以及想要在老爺吃吃喝喝的點心飲料
(因為我們計劃一進老爺就中間不會出來逛)
這樣, 時間就差不多1:30多, 可以趕緊到礁溪老爺報到, 約2:00到
##CONTINUE##
----到老爺----
這次我們的春天專案:住一晚 + 泡溫泉 + 晚餐 +早餐(6:30~14:00)
雖然說要到15:00才可以check-in, 但是由於是平日, 所以客人少的話, 可以提前囉
check-in 之後, 先參觀房間~
老爺房間設計的很有意思, 可以自己玩玩看, 原本以為的柱子, 其實是櫃子.
洗手間和浴室(可以於石頭浴缸泡溫泉)分開不同隔間
電視機是32"LCD 還有DVD Player可以放自己帶來的影片
看的差不多, 趕緊換上泳裝, 準備先使用老爺的戶外溫泉與泳池設施, 這時約14:30
由於這個時候的客人不多, 戶外設施和泳池客人只有兩三位,
你可以專心的使用各個水池, 大多時候, 就我們自己在使用, 好像私人設施, 真是過癮
享受到15:50, 可以梳洗並回房換上運動裝, 到他的撞球室桌球室健身房遊樂一下
這時候啊, 也是沒有客人, 不用排隊等
嗯, 還可以上網
對了, 老爺有附送晚餐, 可以預約最早17:30的時間, 享受一下高挑兩層的餐廳樓
我這次吃的日式料理普通, 說不定該去吃自助餐
吃完, 大約18:30, 回房間休息一下, 準備19:00泡大眾湯(不穿衣服的)
19:00的時間, 就是沒有幾個人在泡
你會覺得這個室內湯, 簡直就是一個超大的私人浴缸....哇哈哈
如果你可以, 一定要熱水泡泡, 冷水泡泡, 烤箱烤烤... :D 過癮度100分!!!
泡差不多, 就可以趕老爺晚上的小音樂表演, 還不賴, 值得聽聽~
然後, 大約21:30, 可以免費報名參加瑜珈課程, 順便拉拉筋, 也是很讚
做完瑜珈, 趕緊到老爺一樓的bar享用免費飲料(專案內含)
如果有時間, 可以花100做個算命
老爺的bar面對宜蘭平原, 景色極佳(戶外泳池也是)
時間這樣就差不多23:00, 準備睡個好覺囉...
(要記得洗手間的電燈位置, 或者留個小燈以免半夜起來上廁所跌倒)
----第二日----
建議最好是6:00起來, 準備6:30再到大眾湯報到(利用第二次, Ya~)
趁大家還在睡夢中, 昨天泡水的享受再過癮一次
至於早餐呢?不用吃啦....先拿昨天滿的零嘴充飢一下, 因為我們的早餐券要等到11:00再使用~
那上午要做什麼?可以拍拍照, 懶在沙發椅上看電視, 或者再去游泳池一次,
我當然選懶在沙發上看影集, 喝個熱茶, 等午餐囉...
噹噹, 11:00到!要收拾行李, 到櫃檯check-out, 再吃自助餐~
老爺的中午自助餐很好吃, 西式, 台式, 日式...通通有, 還有新鮮水果+超讚冰淇淋, 絕對滿意又開心
我們是吃到大約13:00就差不多, 然後照幾張相片做紀念, 大概這樣
再來, 我們就是到老爺附近的跑馬古道走一走, 風景極佳, 值得一遊...
跑馬的路很平緩, 慢慢的上坡與下坡, 我們是走到上新花園再回頭(上新花園已經關閉)
大約16:00回到停車的地方, 即返回台北
當然啦, 高速公路上不去, 我們改走濱海, 返台北約需2小時的時間(若有空,建議可以吃東北角海鮮)
----後記----
雖然說現在週休二日, 出去玩很方便, 可是假日實在是人多啊, 旅遊品質就令人不敢恭維
所以利用平日(本次是利用2/27~2/28, 算是半假日)這樣就滿意多了
參考參考~
(1)由字元取得該ASCII Code
data : c.
field-symbols : <n> type x.
data : rn type i.
c = 'A'.
assign c to <n> casting.
move <n> to rn.
write rn.
A ---> 65
(2)由ASCII Code轉成字元
data : i type i value 66.
data : x type x.
field-symbols : <fc> type c.
move i to x.
assign x to <fc> casting type c.
move <fc> to c.
write c.
66 ---> B
來源:http://www.sap-img.com/abap/how-can-i-get-ascii-value-of-any-letter.htm