sy-subrc 的含義 收藏
在網上和書上就是找不到多少rfc的例項,現在將這個例項公開給大家,希望能給大家帶來啟發!
***************== function module (或rfc中) sy-subrc 的含義 ***************=
使用select語句選擇查詢:
sy-subrc = 0: 至少有一行資料,當endselect語句執行完,sy-dbcnt中儲存著記錄的個數。
sy-subrc = 4: 沒有資料。
sy-subrc = 8: 只有使用「select single for update」時才會有,
表示: where條件指定的記錄不止一行,結果是沒有記錄被選中。
使用insert語句,向表中插入一行,必須注意insert的順序與表中字段的順序一致:
sy-subrc = 0: 插入成功,sy-dbcnt包含了插入的行數,0或1。
sy-subrc = 4: 由於有相同的key存在,所以插入失敗。
使用loop語句來遍歷乙個內錶:
sy-subrc = 0: 迴圈至少被執行一次。
sy-subrc = 4: 迴圈沒有被執行,可能是沒有資料,也可能是沒有符合條件的記錄。
使用delete語句來刪除一條記錄:
sy-subrc = 0: 找到一行並刪除之,如果該錶有不唯一主鍵,也就是有多條重複的記錄,則只刪除第一條記錄。
sy-subrc = 4: 沒有找到符合條件的記錄,也沒有刪除。
使用update語句來更新一條記錄:
sy-subrc = 0: 找到記錄並更新,(如果有多條記錄呢?)
sy-subrc = 4: 沒有找到符合條件的記錄,也沒有更新。
+++++++++++++++++++++++ 例項rfc ++++++++++++++++++++++++++++++++++++++++++++++
*建立臨時表ztest1,欄位為:
* zuserid char 20
* zpasswd char 20
function zrfc_01.
*"*"local inte***ce:
*" importing
*" value(action) type /1sap1/cl_ach0001 傳入引數action,表示create、edit、delete記錄
*" value(whereuserid) type /gc1/dte_msg_txt 傳入引數whereuserid,按照userid來查詢關鍵字
*" exporting
*" value(return) type /ain/act_pub_paramname 傳出引數return,返回是否成功,空串表示成功,非空串表示未成功
*" value(errnum) type /ain/activity_counter 傳出引數errnum,返回錯誤**
*" tables
*" ztemptable structure ztest1 傳入、傳出表,以表為引數
tables:ztest1.
data:
wa_ztemptable like ztemptable,
transaction_id like arfctid,
v_vaild(1) type c.
v_vaild = 'x'.
* open a data transaction
call function 'transaction_begin'
importing
transaction_id = transaction_id.
case action .
*按照關鍵字zuserid查詢
when 'query'.
select * from ztest1 into table ztemptable where zuserid = whereuserid.
if sy-subrc = 0.
else.
v_vaild = ''.
errnum = sy-subrc.
endif.
*選擇所有的記錄
when 'selectall'.
select * from ztest1 into table ztemptable.
if sy-subrc = 0.
else.
v_vaild = ''.
errnum = sy-subrc.
endif.
*插入記錄
when 'create'.
loop at ztemptable into wa_ztemptable.
insert ztest1 from wa_ztemptable.
if sy-subrc = 0.
else.
v_vaild = ''.
errnum = sy-subrc.
endif.
endloop.
*修改記錄
when 'edit'.
loop at ztemptable into wa_ztemptable.
update ztest1 from wa_ztemptable.
if sy-subrc = 0.
else.
v_vaild = ''.
errnum = sy-subrc.
endif.
endloop.
*刪除記錄
when 'delete'.
loop at ztemptable into wa_ztemptable.
delete ztest1 from wa_ztemptable.
if sy-subrc = 0.
else.
v_vaild = ''.
errnum = sy-subrc.
endif.
endloop.
when others.
endcase.
*如果v_valid為x,則表示成功,否則表示失敗,並返回return錯誤**
if v_vaild = 'x'.
call function 'transaction_end'
exporting
transaction_id = transaction_id.
return = ''.
else.
call function 'transaction_abort'
exporting
transaction_id = transaction_id.
return = 'the current action is failure!'.
endif.
endfunction.
轉 meta name的含義
meta是什麼?meta其實是html語言head區的乙個輔助性標籤。在幾乎所 有的網頁裡,我們都可以看到類似下面這段html 有人要說,這段 好象可有可無,沒有多大實際作用嘛!其實 不是沒用,而是你沒有用好meta標籤。為什麼這樣說呢?這是因為meta標籤有許多引數,使用不同的引數就可以使主頁實現...
轉 C 中extern 「C」含義深層探索
1.引言 c 語言的建立初衷是 a better c 但是這並不意味著c 中類似c語言的全域性變數和函式所採用的編譯和連線方式與c語言完全相同。作為一種欲與c相容的語言,c 保留了一部分過程式語言的特點 被世人稱為 不徹底地物件導向 因而它可以定義不屬於任何類的全域性變數和函式。但是,c 畢竟是一種...
學習一下戴戒指的含義 轉
戒指自古以來具有強烈的象徵意義,因此它的戴法很有講究。按照我國的習慣,訂婚戒一般戴在左手的中指,結婚戒指戴在左手的無名指 若是未婚姑娘。應戴在右手的中指或無名指,否則,就會令許多追求者望而卻步了。按西方的傳統習慣來說,左手上顯示的是上帝賜給你的運氣,它是與心相關聯的,因此,講戒指戴在左手上是有意義的...