`

<转>SY-SUBRC 的含义

阅读更多

 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 Interface:

*"  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.

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/barongbachi123/archive/2009/05/19/4201521.aspx

分享到:
评论
1 楼 harry_2013 2010-11-22  
 

相关推荐

    SY字段含义

    ### SAP ABAP SY字段含义详解 #### SY-DYNNR:当前动态编号 在SAP ABAP编程中,`SY-DYNNR`是系统变量之一,它存储了当前屏幕的动态编号。这个编号通常用于识别不同的屏幕或窗口,以便进行特定的操作或处理。例如,...

    ABAP基础试题

    - **SY-SUBRC**: 系统返回值。0表示成功执行,非0表示失败或异常。 - **SY-UNAME**: 当前登录用户的用户名。 - **SY-DATUM**: 系统当前日期。 - **SY-UZEIT**: 系统当前时间。 - **SY-TCODE**: 当前执行的事务代码或...

    SAP ABAP编程总结

    `SY-SUBRC`系统变量在操作成功时返回0,否则返回非0值。 8. **系统用户**:`SY-UNAME`提供了当前用户的用户名。 9. **屏幕相关字段**:`SY-DYNNR`表示屏幕序号,`SY-UCOMM`或`SYST-UCOMM`用于获取OK代码,`SY-...

    ABAP基础(总结得很好).pdf

    - `SY-SUBRC`:记录某些语句执行的结果,0表示成功。 - `SY-DATUM`:系统日期。 - `SY-UZEIT`:系统时间。 - `SY-REPID`:当前程序的程序名。 #### 七、ABAP程序的创建 - **开发环境**:ABAP工作台(SE80)和ABAP...

    2025年深圳杯(东三省)B题完整论文+代码结果+思路(全套资源+多家资源整合)

    本方案针对2025年深圳杯(东三省)B题,提供高质量成品文章、完整解题代码及所有结果表。内容涵盖Python和MATLAB双版本代码、PDF论文文档(附PDF转Word功能),并包含详细思路解析,助力参赛队伍高效完成比赛,冲刺高奖项。 【核心内容】 成品文章 包含完整解题思路、模型构建、数据分析与结果讨论。 格式规范,符合竞赛论文要求,可直接提交或稍作修改使用。 完整代码 提供Python和MATLAB两种语言实现,覆盖数据处理、模型训练、结果可视化全流程。 代码模块化设计,注释清晰,便于理解与二次开发。 结果表格 所有实验数据与结果均已整理成表,直观展示模型性能与对比分析。 PDF转Word支持 提供一键转换工具,方便用户根据需求调整论文格式。 【产品优势】 高效实用:成品论文与代码已通过严格测试,确保结果准确且可复现。 全面覆盖:从思路解析到最终成果,一站式解决参赛需求。 灵活便捷:支持多平台使用,网盘直发,后续更新免费获取。 【适用人群】 冲刺“妈妈杯”高奖项的参赛团队。 希望快速掌握解题思路与实现方法的学习者。 需要高质量参考材料的科研爱好者。 【交付清单】 成品论文(PDF+Word) Python/MATLAB代码包 数据集与结果表 PDF转Word工具

    C++实现编译原理语法分析实验

    根据给定文法设计语法分析程序,要求如下:(1)使用递归子程序法,对文法定义的所有语法成分进行分析;(2)输入文件为testfile.txt,输出文件为output.txt。输出内容包括:1)按词法分析顺序,逐行输出单词信息(预读单词不输出);2)在分析特定语法成分结束前,另起一行输出该成分名称,如“<常量说明>”。该代码在CG实验平台满分通过,仅供参考。

    MATLAB环境下极化码SC与SCL译码仿真研究

    极化码(Polar Code)是由土耳其科学家Erdal Arıkan在2009年提出的一种新型纠错编码技术。它通过利用信道的极化现象,将虚拟信道分为误码率接近0和接近1/2的两类。在编码设计中,数据被放置在误码率极低的信道上,从而实现高效的数据传输。极化码的主要优势在于其理论编码容量能够达到香农限,并且构造方法较为简单。 MATLAB是一种功能强大的数学计算和编程工具,广泛应用于科学研究和工程领域。在极化码的研究中,MATLAB可用于构建编码和解码算法,模拟数据在不同信道条件下的传输效果,验证理论性能,并优化相关参数。 SC(Successive Cancellation,逐位取消)译码是极化码的基本解码方法。它从最可靠的比特开始,依次解码每个虚拟信道,且每个比特的解码结果会影响后续比特的解码,因为它们之间存在依赖关系。虽然SC译码的实现较为简单,但其计算复杂度较高,随着码长的增加,解码时间会线性增长。 SCL(Successive Cancellation List,逐位取消列表)译码是SC译码的改进版本。它通过引入列表机制,同时处理多个路径,从而增强了错误校正能力,并在一定程度上降低了错误率。与SC译码相比,SCL译码虽然需要消耗更多的计算资源,但能够提供更好的性能。 一个完整的MATLAB仿真资源通常包含以下内容: 编码模块:用于实现极化码的生成,包括码字构造和极化矩阵操作等。 信道模型:用于模拟各种通信信道,例如AWGN(加性高斯白噪声)信道或衰落信道。 SC/SCL译码模块:包含SC译码和SCL译码的算法实现。 误码率(BER)计算:通过比较发送和接收的码字,计算误码率,以评估编码性能。 性能曲线绘制:绘制误码率与信噪比(SNR)之间的关系曲线,展示不同译码策略的性能差异。 使用说明:指导用户如何运行仿真,理解代码结构,以及如何调整参数以进行自定义实验。 代码注

    ClazzController.java

    ClazzController.java

    qwq3 model 1use for ollama

    qwq3 model 1use for ollama

    cmd-bat-批处理-脚本-MinimizeWindow.zip

    cmd-bat-批处理-脚本-MinimizeWindow.zip

    基于指针标注的中文医学文本实体关系抽取研究.pdf

    基于指针标注的中文医学文本实体关系抽取研究.pdf

    二十四节气之大暑节气.pptx

    二十四节气之大暑节气.pptx

    cmd-bat-批处理-脚本-DEFRAG-W7.zip

    cmd-bat-批处理-脚本-DEFRAG-W7.zip

    cmd-bat-批处理-脚本-数据结构二叉树binaryTree.zip

    cmd-bat-批处理-脚本-数据结构二叉树binaryTree.zip

    cmd-bat-批处理-脚本-safepath.zip

    cmd-bat-批处理-脚本-safepath.zip

    实证数据-2004-2023年企业社会信任数据-社科经管.rar

    该数据集为2004-2023年中国企业社会信任面板数据,涵盖全国31个省份的上市公司信息。数据基于中国企业家调查系统(CESS)的问卷调查结果,采用张维迎在《经济研究》中的研究方法构建:通过对1500多家企业调查“最守信用地区”的排序结果(前五位分别赋5至1分),以各省得票百分比为权重加权求和后取自然对数,形成三个核心指标: 社会信任1(trust1):各得分下加权占比 社会信任2(trust2):最值得信任地区的占比 社会信任3(trust3):加权占比数值的对数处理 数据包含证券代码、所属省份、年份、行业名称等字段,提供Excel和dta两种格式,适用于区域经济、企业信用、金融投资等领域的实证研究。原始数据来源及方法论详见参考文献:张维迎, 柯荣住. 信任及其解释: 来自中国的跨省调查分析[J]. 经济研究, 2002(10): 59-70+96。

    cmd-bat-批处理-脚本-get-memory-size.zip

    cmd-bat-批处理-脚本-get-memory-size.zip

    高安全领域可编程逻辑器件软件工程技术研究与应用.pdf

    高安全领域可编程逻辑器件软件工程技术研究与应用.pdf

    cmd-bat-批处理-脚本-网络通信-keyreader.zip

    cmd-bat-批处理-脚本-网络通信-keyreader.zip

    小程序 新版影视源码 前后端非框架版+破解域名授权.zip

    前不久发布的外面泛滥版本很大错误和少文件,今天分享一套可运营的版本不是外面泛滥的版本采集播放都OK完美运营 最新影视小程序安装说明: 1.安装环境: 建议服务器装Linux CentOS 7 系统宝塔面板。 环境用 1:Nginx 1.18.0 2:php7.0 — 安装fileinfo插件、redis、sg11扩展(然后重启php服务) 3:MySQL 5.6.50 本次操作需要用电脑或用挂机宝操作 反正必须电脑:源码文件以包含全部教程 弄完测试转圈圈就是合法域名或证书没弄好 自己检查一下 安装教程来保你上线 本人亲测分类需要刷新才可以出来 问题不大

Global site tag (gtag.js) - Google Analytics