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

最新文章

  1. 【转】ubuntu 配置 java jdk1.8 环境,增加多版本 jdk 和切换方法
  2. C# ComBox 垂直滚动条
  3. js归并排序法
  4. 生产环境中CentOS7部署NET Core应用程序
  5. uva 11722 - Joining with Friend(概率)
  6. 【游戏】2048及各种变种大集合汇总【更新ing~新版Floppy2048 - 恒星聚变版 - 恶搞改数据】
  7. DNS详解
  8. 初探ASP.NET Web API
  9. Build your own linino system 编译你自己的linino系统
  10. 解决Maven web 项目 Cannot detect Web Project version. Please specify version of Web Project through ... 的错误
  11. Testlink1.9.17使用方法(第十章 关键词使用)
  12. [BZOJ4709][JSOI2011]柠檬 决策单调性优化dp
  13. window系统命令行设置proxy----Setting a proxy for Windows using the command-line
  14. history.pushState无刷新改变url
  15. MySQL 聚簇索引&amp;&amp;二级索引&amp;&amp;辅助索引
  16. [UE4]读取玩家列表
  17. MyCat不支持的SQL语句
  18. 20155307实验八 《网络对抗》 Web基础
  19. 【Linux】字符转换命令col
  20. 被C语言操作符优先级坑了

热门文章

  1. 升级sqlite3
  2. Windows 与Docker
  3. vmware15 nat模式下虚拟机能够ping通宿主机,宿主机无法平通虚拟机,nat网卡地址为192.168.0.1,网关为192.168.0.2.
  4. 【转】【善用佳软】文件复制软件评测:FastCopy、TeraCopy、ExtremeCopy、Supercopier
  5. mybatis判断是否为空或null
  6. open-local部署和使用
  7. Lombok Requires Annotation Processing
  8. 【转载】rename。给文件批量改名的python脚本
  9. 【Word】如何批量导出ppt中的备注
  10. Linux的top命令原理简单了解