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.

服务确定撤销/删除/关闭 (ml81n)的更多相关文章

  1. linux下tomcat服务的启动、关闭与错误跟踪

    linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下 ...

  2. 利用 bat 批量处理命令实现手动控制mysql /Oracle 服务的开启和关闭

    利用 bat 批量处理命令实现手动控制mysql /Oracle 服务的开启和关闭 因为最近在学习数据库的知识,主要学习的是oracle 数据库,然而好巧啊,java也是在学习,我们老师现在要我们做一 ...

  3. CentOS下SVN服务的启动与关闭

    CentOS下SVN服务的启动与关闭 操作系统:CentOS 6.5  SVN版本:1.8.11 启动SVN服务:  svnserve -d -r /home/svn /home/svn 为版本库的根 ...

  4. centos 6 与 centos 7 服务开机启动、关闭设置的方法

    简单说明下 centos 6 与 centos 7 服务开机启动.关闭设置的方法: centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add ...

  5. Linux 服务的加入删除,自己主动执行及状态

    CAMS 在安装过程中会自己主动加入相关的服务.在安装的最后过程中会提示用户是否启动服务使服务生效,须要注意的是一个服务被加入后并不表示该服务在系统启动过程中会自己主动执行,仅表示能够使用servic ...

  6. C# ASP.NET 控制windows服务的 开启和关闭 以及重启

    用ASP.NET控制Windows服务的开启与关闭效果如图 代码 首页页面需要添加引用 页面的pageload中 实例化windows服务 protected void Page_Load(objec ...

  7. mysql 使用zip包进行安装以及服务启动后立即关闭问题

             本实例使用的mysql版本为 mysql-8.0.15-winx64 1.下载zip包 官网地址:https://dev.mysql.com/downloads/mysql/ 2.安 ...

  8. leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  9. 应用场景:vue表格撤销删除与保存按钮的显隐

    应用场景:vue表格撤销删除与保存按钮的显隐

随机推荐

  1. UIBezierPath详解

    使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中.此类是Core Graphics框架关于path的一个封装.使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线 ...

  2. [Swust OJ 842]--实验室和食堂(最短路,Dijkstra算法)

    题目链接:http://acm.swust.edu.cn/problem/842/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  3. 【集训笔记】二分图及其应用【HDOJ1068【HDOJ1150【HDOJ1151

    匈牙利算法样例程序 格式说明 输入格式: 第1行3个整数,V1,V2的节点数目n1,n2,G的边数m 第2-m+1行,每行两个整数t1,t2,代表V1中编号为t1的点和V2中编号为t2的点之间有边相连 ...

  4. Ural 1086 - Cryptography

    While preparing this problem set the jury has run into the following problem: it was necessary to se ...

  5. Chapter 1.简单工厂模式

    该篇文章通过一个写计算器控制台程序,来导入文章主题. 首先,要注意代码规范,变量命名有意义,不能随意用A,B,C;    功能要封装好,不要写在一个主函数里,另外要考虑后期需求的更改,如果出现多个函数 ...

  6. Android 传感器开发

    如今的智能手机都配备了各种各样的传感器,本文将介绍Android SDK提供的传感器开发接口,并通过简单实例展示怎样使用这些接口. Andriod SDK传感器相关类 android SDK提供的与传 ...

  7. Adobe Acrobat Ⅺ Pro安装激活

    1.注意一定要断网安装,如果你有防火墙拦截亦可(注意:系统自带那防火墙不行). 2.将AcrobatPro_11_Web_WWMUI.exe解压到一个目录下,找到目录下的setup.exe安装,安装时 ...

  8. SQL 局域网远程备份

     局域网远程备份,还真有点问题 我用的是2003,发现sql和windows兼容不太好 . 如果我在windows下面映射远程目录,sql发现不了,找不到路径,备份不了,在sql下映射远程目录,win ...

  9. c# 课堂总结7--函数

    函数:数据类型-变量类型-运算符号表达式-语句(顺序,分支,循环)-数字 程序里的函数:能完成一个相对独立功能的代码块.数学里的函数:高度抽象.函数四要素:函数名,输入(参数),输出(返回值类型),加 ...

  10. HDOJ 1325 并查集

    跟小希的迷宫基本一样,只是此题是有向图,要注意:1无环 2 只有一个入度为0的结点(根结点), 不存在入度大于1的结点.输入结束条件是两个负数,而不是-1,不然会TLE. #include<st ...