当前位置: 首页 > news >正文

ABAP CURSOR游标的应用1

【应用场景】BW模块定时增量抽取SAP的销售案场收款单的业务主数据
【关键语法】

FUNCTION ZBWFM_ZTSD0011 .
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
*"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*"  TABLES
*"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*"      E_T_DATA STRUCTURE  ZBWST_ZTSD0011 OPTIONAL
*"  EXCEPTIONS
*"      NO_MORE_DATA
*"      ERROR_PASSED_TO_MESS_HANDLER
*"----------------------------------------------------------------------RANGES:   r_zdelta         FOR  zbwst_ztsd0011-zdelta,          "增量字段-创建时间r_id                 FOR  zbwst_ztsd0011-id,                  "编码r_pzgs  FOR  zbwst_ztsd0011-pzgs. "公司代码DATA:  lt_ztsd0011 TYPE TABLE OF zbwst_ztsd0011.DATA: l_s_select TYPE srsc_s_select.STATICS: s_s_if              TYPE srsc_s_if_simple,s_cursor            TYPE cursor,s_counter_datapakid TYPE i.CLEAR l_s_select.IF i_initflag = sbiwa_c_flag_on.APPEND LINES OF i_t_select TO s_s_if-t_select.s_s_if-requnr    = i_requnr.s_s_if-dsource   = i_dsource.s_s_if-maxsize   = i_maxsize.APPEND LINES OF i_t_fields TO s_s_if-t_fields.ELSE.                 "IF s_counter_datapakid = 0.LOOP AT i_t_select INTO l_s_select.CASE l_s_select-fieldnm.WHEN 'ZDELTA'.MOVE-CORRESPONDING l_s_select TO r_zdelta.APPEND r_zdelta.CLEAR r_zdelta.WHEN 'ID'.MOVE-CORRESPONDING l_s_select TO r_id.APPEND r_id.CLEAR r_id.WHEN 'PZGS'.MOVE-CORRESPONDING l_s_select TO r_pzgs .APPEND r_pzgs.CLEAR r_pzgs .ENDCASE.ENDLOOP.OPEN CURSOR WITH HOLD s_cursor FORSELECT *FROM ztsd0011WHERE ( ( timestamp IN r_zdelta ) OR ( timestamp_upd IN r_zdelta  )   )AND id IN r_idAND  pzgs IN r_pzgs.ENDIF.FETCH NEXT CURSOR s_cursorAPPENDING CORRESPONDING FIELDSOF TABLE lt_ztsd0011PACKAGE SIZE s_s_if-maxsize.IF sy-subrc <> 0.CLOSE CURSOR s_cursor.RAISE no_more_data.ENDIF.LOOP AT lt_ztsd0011 INTO e_t_data.APPEND e_t_data.CLEAR e_t_data.ENDLOOP.s_counter_datapakid = s_counter_datapakid  + 1.ENDIF.
ENDFUNCTION.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Acrobat Pro DC 2023 for Mac/Win:全能型PDF编辑器深度解析
  • c++ 创建对象 和 使用对象
  • LlamaIndex 使用 RouterOutputAgentWorkflow
  • Github 2024-09-02 开源项目周报 Top13
  • mysql的整理
  • AIGC大模型智能擦除:Sanster/IOPaint,python(1)
  • Linux下的exec函数簇
  • 【MySQL】深圳大学数据库实验二
  • c++ +Opencv实现车牌自动识别
  • c++162 类的封装和访问
  • Linux 中的 wget 命令介绍以及使用
  • 行空板上YOLO和Mediapipe视频物体检测的测试
  • linux搭建深度学习平台
  • MAC配置chromedriver
  • IP学习-Sixday
  • [iOS]Core Data浅析一 -- 启用Core Data
  • [译]Python中的类属性与实例属性的区别
  • Angular Elements 及其运作原理
  • Babel配置的不完全指南
  • ECMAScript入门(七)--Module语法
  • ES6核心特性
  • JAVA多线程机制解析-volatilesynchronized
  • LeetCode29.两数相除 JavaScript
  • leetcode讲解--894. All Possible Full Binary Trees
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Vue 2.3、2.4 知识点小结
  • Vue UI框架库开发介绍
  • Vue2 SSR 的优化之旅
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 百度地图API标注+时间轴组件
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 给Prometheus造假数据的方法
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 那些被忽略的 JavaScript 数组方法细节
  • 区块链将重新定义世界
  • 如何选择开源的机器学习框架?
  • 什么软件可以剪辑音乐?
  • MyCAT水平分库
  • 阿里云ACE认证学习知识点梳理
  • 积累各种好的链接
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​批处理文件中的errorlevel用法
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #include到底该写在哪
  • (20)docke容器
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (7)svelte 教程: Props(属性)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (动态规划)5. 最长回文子串 java解决
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (接口自动化)Python3操作MySQL数据库
  • (每日一问)操作系统:常见的 Linux 指令详解