ariba 数据补发
*&---------------------------------------------------------------------*
*& Report Z_ARBA_PZB
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT z_arba_pzb.
TABLES:mara,ekpo,zbmm0005_po.
DATA:gt_mara LIKE TABLE OF mara WITH HEADER LINE.
*DATA:gt_mara_show LIKE TABLE OF mara WITH HEADER LINE.
DATA:gt_/arba/tvarv LIKE TABLE OF /arba/tvarv WITH HEADER LINE.
DATA:gt_/arba/tvarv_del LIKE TABLE OF /arba/tvarv WITH HEADER LINE.
DATA:gt_/arba/tvarv_res LIKE TABLE OF /arba/tvarv WITH HEADER LINE.
DATA: lc_cursor TYPE CURSOR. selection-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE TEXT-004.
selection-SCREEN: BEGIN OF LINE,
COMMENT 3(60) TEXT-005,
END OF LINE,
BEGIN OF LINE,
COMMENT 3(60) TEXT-007,
END OF LINE.
selection-SCREEN END OF BLOCK bl2. SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS s_matnr FOR zbmm0005_po-matnr NO INTERVALS . "物料
SELECTION-SCREEN END OF BLOCK 001. */ARBA/EXTERNAL_SID P I EQ CSOTExternalSystemP
*/ARBA/MATERIAL_MASTER_EXPORT MATNR S 1 I EQ 51CZ8560000001
*/ARBA/MATERIAL_MASTER_EXPORT MATNR S 2 I EQ 51CZ8560000002
*/ARBA/TEMP_DIRECTORY P I EQ /ARBA/MASTERDATA
*DC_WAITTIME P I EQ 1
*FLUSH_MM_DOC_CHANGES P I EQ *&---------------------------------------------------------------------*
DATA:lv_numb TYPE /arba/tvarv-numb. OPEN CURSOR WITH HOLD lc_cursor FOR SELECT * FROM mara WHERE matnr IN s_matnr
* and ERSDA BETWEEN '20201221' and '20201228'
ORDER BY PRIMARY KEY .
DO.
FETCH NEXT CURSOR lc_cursor INTO TABLE gt_mara PACKAGE SIZE 2000.
IF sy-subrc <> 0.
EXIT.
ENDIF.
*->删除配置表上次发送过的数据
FREE:gt_/arba/tvarv.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_/arba/tvarv
FROM /arba/tvarv. LOOP AT gt_/arba/tvarv.
IF gt_/arba/tvarv-name = '/ARBA/MATERIAL_MASTER_EXPORT'..
MOVE-CORRESPONDING gt_/arba/tvarv TO gt_/arba/tvarv_del.
APPEND gt_/arba/tvarv_del.CLEAR gt_/arba/tvarv_del."删除上次用过的物料相关数据 ELSE.
MOVE-CORRESPONDING gt_/arba/tvarv TO gt_/arba/tvarv_res.
APPEND gt_/arba/tvarv_res.CLEAR gt_/arba/tvarv_res."其他数据
ENDIF.
ENDLOOP. DELETE /arba/tvarv FROM TABLE gt_/arba/tvarv_del."删除上次用过的物料相关数据
EXEC SQL.
COMMIT
ENDEXEC. CLEAR:lv_numb.
LOOP AT gt_mara.
lv_numb = lv_numb + 1.
gt_/arba/tvarv_res-name = '/ARBA/MATERIAL_MASTER_EXPORT'..
gt_/arba/tvarv_res-fieldname = 'MATNR'.
gt_/arba/tvarv_res-TYPE = 'S'.
gt_/arba/tvarv_res-numb = lv_numb.
gt_/arba/tvarv_res-SIGN = 'I'.
gt_/arba/tvarv_res-opti = 'EQ'.
gt_/arba/tvarv_res-low = gt_mara-matnr.
APPEND gt_/arba/tvarv_res.CLEAR gt_/arba/tvarv_res."结果表 result
ENDLOOP.
MODIFY /arba/tvarv FROM TABLE gt_/arba/tvarv_res." 控制哪些物料需要进标准程序
EXEC SQL.
COMMIT
ENDEXEC.
*&---------------------------------------------------------------------*
*->调用job进行发送
PERFORM frm_create_job.
* SUBMIT z_arba_master_send
*
* AND RETURN
* WITH p_cus3 = 'X'
* WITH p_dc = 'X'
* WITH p_flo = 'X'
* WITH p_werks = 'X'
* WITH p_matmas = 'X'.
EXEC SQL.
COMMIT
ENDEXEC. ENDDO." FREE:gt_/arba/tvarv_res.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_/arba/tvarv
FROM /arba/tvarv WHERE name = '/ARBA/MATERIAL_MASTER_EXPORT' AND fieldname = 'MATNR' AND TYPE = 'S'. . DELETE /arba/tvarv FROM TABLE gt_/arba/tvarv.
COMMIT WORK AND WAIT. *&---------------------------------------------------------------------*
FORM frm_create_job.
DATA: l_jobnumber TYPE btcjobcnt.
DATA: l_jobname TYPE btcjob VALUE 'ZSEND'.
"--- 不转换后台会出现参数错误 ---
* CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
* EXPORTING
* INPUT = pv_date
* IMPORTING
* OUTPUT = rv_user_date. CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING
seconds = 1. " "检查权限
AUTHORITY-CHECK OBJECT 'S_BTCH_ADM' FOR USER sy-uname ID 'BTCADMIN' FIELD 'Y'. IF sy-subrc NE 0.
MESSAGE '没有权限' TYPE 'E'. .
ELSE.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = l_jobname
IMPORTING
jobcount = l_jobnumber
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4. IF sy-subrc = 0. SUBMIT z_arba_master_send USER sy-uname
VIA JOB l_jobname NUMBER l_jobnumber
AND RETURN
WITH p_cus3 = 'X'
WITH p_dc = 'X'
WITH p_flo = 'X'
WITH p_werks = 'X' * WITH rd_a2 = ' '
* WITH s_ma_cb = ' '
*不传的参数不能填,否则后台会秒执行成功日期要转换为用户内部格式
WITH p_matmas = 'X'.
IF sy-subrc = 0. DATA:lv_status TYPE tbtco-status. CALL FUNCTION 'ENQUE_SLEEP'
EXPORTING
seconds = 55. "
* DO .
* CLEAR:lv_status.
* CALL FUNCTION 'ENQUE_SLEEP'
* EXPORTING
* seconds = 20. "
* SELECT SINGLE status INTO lv_status FROM tbtco WHERE jobname = 'ZSEND' AND jobcount = l_jobnumber.
* IF sy-subrc = 0.
* IF lv_status = 'F'.
* EXIT.
* ENDIF.
* ENDIF.
* ENDDO. CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = l_jobnumber
jobname = l_jobname
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
ENDIF. ENDIF. ENDIF. ENDFORM. "FRM_CREATE_JOB
*&---------------------------------------------------------------------*
*LOOP AT gt_mara.
* lv_numb = lv_numb + 1.
* gt_/arba/tvarv_res-name = '/ARBA/MATERIAL_MASTER_EXPORT'..
* gt_/arba/tvarv_res-fieldname = 'MATNR'.
* gt_/arba/tvarv_res-type = 'S'.
* gt_/arba/tvarv_res-numb = lv_numb.
* gt_/arba/tvarv_res-sign = 'I'.
* gt_/arba/tvarv_res-opti = 'EQ'.
* gt_/arba/tvarv_res-low = gt_mara-matnr.
*
* APPEND gt_/arba/tvarv_res.CLEAR gt_/arba/tvarv_res.
*ENDLOOP.
ariba 数据补发的更多相关文章
- 《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- [开源地址] 放弃Flink,.NET5.0开发CSharpFlink,简要设计、部署及二次开发说明。
github地址:https://github.com/wxzz/CSharpFlinkgitee地址:https://gitee.com/wxzz/CSharpFlink 1 概述及背景 我们有一个 ...
- 都在讲Redis主从复制原理,我来讲实践总结
摘要:本文将演示主从复制如何配置.实现以及实现原理,Redis主从复制三大策略,全量复制.部分复制和立即复制. 本文分享自华为云社区<Redis主从复制实践总结>,原文作者:A梦多啦A . ...
- 《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 关于IOCP,某些地方就是不让人彻底舒服(WSASend重叠post数据)
开门见山,直接就事论事. 假如有这么一个基于IOCP模型的Server,这个Server提供的所有服务中有这么一种服务……文件下载,我们再假设Server端存有一个20G的文件,客户端这时发送一个请求 ...
- Redis深入学习笔记(四)主从数据复制流程
主从节点的数据复制是Redis高可用和高负载的重要基础,本篇介绍数据的主从复制流程. 数据复制策略: 全量复制:一般用于初次复制场景,Redis早期支持的复制功能只有全量复制,它会把主节点全部数据一次 ...
- GDOI2016酱油记(补发)
这篇酱油记是前年发在MCHacker一个叫code-hub的博客上的(已崩),现在来补发一下... GDOI2016扯淡(爆零记) 大家好,我是巨弱DCDCBigBig,在五一期间和一群神牛去考GDO ...
- 2019 中至数据java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.中至数据等公司offer,岗位是Java后端开发,因为发展原因最终选择去了中至数据,入职一年时间了,也成为了面 ...
- 2019 云和数据java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.云和数据等公司offer,岗位是Java后端开发,因为发展原因最终选择去了云和数据,入职一年时间了,也成为了面 ...
- 2019 华云数据java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.华云数据等公司offer,岗位是Java后端开发,最终选择去了华云数据. 面试了很多家公司,感觉大部分公司考察的点 ...
随机推荐
- oralce 语句指定的转换无效
公司的小师妹出现了个问题 让我帮忙看一下 在plsql 中查询语句没问题, 但是放到程序中会提示指定的转换无效 是因为存在无限小数 加上round(JJYHL,2) JJYHL就可以了
- Jest - Configuring Jest
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects ...
- Google 官方 AppCrawles学习小结
Google 官方 AppCrawles学习小结 AppCrawler可自动化测试应用程序,无需编写和维护任何代码. 可以自动发出(轻按.滑动)等操作执行app,当应用程序崩溃或达到指定的超时时间将终 ...
- SpringBoot Circular view path错误
在运行SpringBoot时报了这样一个错误 百度翻译是视图循环 搜索一下 原来是类上restcontroller写成了controller 对比一下两者 @Controller和@RestCont ...
- vs 工具 dumpbin & corflags
dumpbin 查看 dll 接口函数 > dumpbin /exports "/path/to/dll" dumpbin 查看 exe.dll 依赖的动态库 > du ...
- 用 yaml 写测试用例
采用 excel 的方式写测试用例,格式比较死板,比较容易出错,采用 yaml / yml 格式来写用例. 首先安装 pyyaml:pip install pyyaml 建立一个 login.yaml ...
- jdbc中druid连接池遇到的问题和jdbcTemplate
无效的源发行版11 这是jdk版本不一致,去项目结构里排查一下 严重: init datasource error com.mysql.jdbc.exceptions.jdbc4.MySQLNonTr ...
- 剑指 Offer 链表
06. 从尾到头打印链表 class Solution { public: //两个指针一起走 一次翻转一个方向 最后head.next =null ListNode* reverse1(ListNo ...
- Linux中 cat查询文件指定内容-并输入到指定文件内
常用: ① cat xxx.log | grep -C 20 "查询关键字" ② grep -E '1805|1905' CloudPayment.log > out.log ...
- (0403)位运算符+interface
1)interface 2)位运算符