FUNCTION zrfc_mm006.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(CALLNO) TYPE ZCALLNO
*" VALUE(SHEET_NO) LIKE ESSR-LBLNI OPTIONAL
*" VALUE(BLDAT) LIKE ESSR-BLDAT DEFAULT SY-DATUM
*" VALUE(BUDAT) LIKE ESSR-BUDAT DEFAULT SY-DATUM
*" VALUE(OPERATE) TYPE CHAR1
*" VALUE(EBELN) LIKE BAPIESSRC-PO_NUMBER OPTIONAL
*" VALUE(EBELP) LIKE BAPIESSRC-PO_ITEM OPTIONAL
*" EXPORTING
*" VALUE(E_SHEET_NO) LIKE ESSR-LBLNI
*" VALUE(FLAG) LIKE BAPIRET2-TYPE
*" VALUE(MESSAGE) LIKE BAPIRET2-MESSAGE
*"----------------------------------------------------------------------
*备注:删除服务确定表单,必须先撤销 . DATA: lv_row LIKE essr-lblni,
lv_message LIKE bapiret2-message.
DATA lv_datano TYPE zdatano.
DATA lv_mode TYPE char1 VALUE 'N'.
DATA ls_sheetheader TYPE bapiessrc. *******数据检查
IF operate = 'R' OR operate = 'D'.
IF sheet_no IS INITIAL.
flag = 'E'.
message = '请输入确定表单号'.
RETURN.
ENDIF.
ELSEIF operate = 'F'.
IF ebeln IS INITIAL OR ebelp IS INITIAL .
flag = 'E'.
message = '请输入采购订单和项目'.
RETURN.
ENDIF.
ENDIF. ******撤销服务确定表单
IF operate = 'R'. PERFORM bdc_dynpro USING 'SAPLMLSR' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SELP'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM11P-NEW_ROW'.
PERFORM bdc_field USING 'RM11P-NEW_ROW'
lv_row.
PERFORM bdc_dynpro USING 'SAPLMLSR' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM11R-LBLNI'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'RM11R-LBLNI'
sheet_no.
PERFORM bdc_dynpro USING 'SAPLMLSR' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=AKCH'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM11P-NEW_ROW'.
PERFORM bdc_field USING 'RM11P-NEW_ROW'
lv_row.
PERFORM bdc_dynpro USING 'SAPLMLSR' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ACCR'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM11P-NEW_ROW'.
PERFORM bdc_field USING 'RM11P-NEW_ROW'
lv_row.
PERFORM bdc_dynpro USING 'SAPLMLSR' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM11P-NEW_ROW'.
PERFORM bdc_field USING 'RM11P-NEW_ROW'
lv_row.
PERFORM bdc_dynpro USING 'SAPLSPO1' ''.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM bdc_dynpro USING 'SAPLMLSR' ''.
PERFORM bdc_field USING 'BDC_CURSOR'
'IMKPF-BUDAT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'IMKPF-BLDAT'
bldat.
PERFORM bdc_field USING 'IMKPF-BUDAT'
budat.
REFRESH messtab. CALL TRANSACTION 'ML81N' USING bdcdata
MODE lv_mode
UPDATE 'L'
MESSAGES INTO messtab. CLEAR gt_return.
CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
TABLES
imt_bdcmsgcoll = messtab
ext_return = gt_return. ******删除已撤销的服务确定表单
ELSEIF operate = 'D'.
CLEAR: gt_return.
CALL FUNCTION 'BAPI_ENTRYSHEET_DELETE'
EXPORTING
entrysheet = sheet_no
TABLES
return = gt_return. ******关闭服务采购订单
ELSEIF operate = 'F'.
ls_sheetheader-po_number = ebeln. "采购订单
ls_sheetheader-po_item = ebelp. "采购订单行项目
ls_sheetheader-doc_date = bldat. "凭证日期
ls_sheetheader-post_date = budat. "过账日期
ls_sheetheader-fin_entry = 'F'. "标识:关闭
CLEAR gt_return.
CALL FUNCTION 'BAPI_ENTRYSHEET_CREATE'
EXPORTING
entrysheetheader = ls_sheetheader
IMPORTING
entrysheet = e_sheet_no
TABLES
return = gt_return.
ENDIF. ******返回消息处理
CLEAR:gs_return, message, lv_message.
READ TABLE gt_return INTO gs_return WITH KEY type = 'E'.
IF sy-subrc NE .
flag = 'S'.
IF operate = 'R'.
CONCATENATE '服务确认表单:' sheet_no ' 撤销成功' INTO message.
ELSEIF operate = 'D'.
CONCATENATE '表单确认表单:' sheet_no ' 删除成功' INTO message.
ENDIF. ELSE.
LOOP AT gt_return INTO gs_return WHERE type CA 'AEX'.
MESSAGE ID gs_return-id
TYPE gs_return-type
NUMBER gs_return-number
WITH gs_return-message_v1 gs_return-message_v2
gs_return-message_v3 gs_return-message_v4
INTO lv_message.
CONCATENATE message lv_message INTO message SEPARATED BY '|'.
ENDLOOP.
SHIFT message LEFT DELETING LEADING '|'.
flag = 'E'. ENDIF. CLEAR:gt_log,gs_log.
lv_datano = lv_datano + .
gs_log-datano = lv_datano.
gs_log-name = 'ZRFC_MM006'.
gs_log-cdate = sy-datum.
GET TIME.
gs_log-ctime = sy-uzeit.
gs_log-callno = callno.
gs_log-flag = flag.
gs_log-log = message.
CONCATENATE sheet_no bldat budat operate ebeln ebelp e_sheet_no
INTO gs_log-content.
CONDENSE gs_log-content NO-GAPS.
gs_log-length = STRLEN( gs_log-content ).
APPEND gs_log TO gt_log. IF gt_log IS NOT INITIAL.
INSERT zrfc_mm01in_log FROM TABLE gt_log.
IF sy-subrc = .
COMMIT WORK.
ENDIF.
ENDIF. ENDFUNCTION.

最新文章

  1. jupyter nb + scite 混合搭建成我的最爱IDE
  2. 音频软件消除人声的一点体会(cood edit ,goldwav)
  3. js数字时钟
  4. hive踩过的小坑
  5. 20145208《Java程序设计》第2周学习总结
  6. jQuery基础修炼圣典—DOM篇(二)jQuery遍历
  7. 管道技巧-while read line
  8. 【POJ 1988】 Cube Stacking (带权并查集)
  9. dtrace sample
  10. webservice部署到服务器报错
  11. Socket层实现系列 — bind()的实现(二)
  12. The 7th tip of DB Query Analyzer
  13. MySQL 在线更改 Schema 工具
  14. Java项目中启动Tomcat报错invalid LOC header
  15. vue-cli(vue脚手架) 简单使用
  16. Python中函数和方法的区别
  17. var let const的区别
  18. 将python打包为.exe文件
  19. PAT 1064 朋友数
  20. MySQL--DROP TABLE与MySQL版本

热门文章

  1. BZOJ 3196
  2. ASP.NET 内置对象涉略
  3. 数矩形(N - 暴力求解、打表)
  4. [Swust OJ 842]--实验室和食堂(最短路,Dijkstra算法)
  5. python读写xml
  6. Python函数式编程:Lambda表达式
  7. Python 2.7 学习笔记 字典(map)的使用
  8. php启用gzip压缩
  9. java计算两个日期相差多少天
  10. 给centOs添加epel源