《轉》SY SUBRC 的含義

2021-08-30 21:06:54 字數 3366 閱讀 8873

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 畢竟是一種...

學習一下戴戒指的含義 轉

戒指自古以來具有強烈的象徵意義,因此它的戴法很有講究。按照我國的習慣,訂婚戒一般戴在左手的中指,結婚戒指戴在左手的無名指 若是未婚姑娘。應戴在右手的中指或無名指,否則,就會令許多追求者望而卻步了。按西方的傳統習慣來說,左手上顯示的是上帝賜給你的運氣,它是與心相關聯的,因此,講戒指戴在左手上是有意義的...