服务确定撤销/删除/关闭 (ml81n)

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‘ ‘0400‘.
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‘ ‘0340‘.
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‘ ‘0400‘.
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‘ ‘0400‘.
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‘ ‘0400‘.
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‘ ‘0300‘.
PERFORM bdc_field       USING ‘BDC_OKCODE‘
                              ‘=YES‘.
PERFORM bdc_dynpro      USING ‘SAPLMLSR‘ ‘0110‘.
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 0.
    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 + 1.
    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 = 0.
       COMMIT WORK.
     ENDIF.
   ENDIF.

ENDFUNCTION.
时间: 2024-08-06 08:56:57

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

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

linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下命令: ./startup.sh 2).关闭tomcat服务 进入tomcat主目录下的bin目录,然后执行如下命令: ./shutdown.sh 通过1)启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也就立即关闭了,通过以下命令可以作为linux服务一直运行 3).作为服务启

Oracle:ORA-24324: 未初始化服务句柄 ORA-01090: 正在关闭 - 不允许连接

1.sqlplus/nolog 2.SQL> conn / as sysdba已连接到空闲例程.3.SQL> shutdown abortORACLE 例程已经关闭.4.SQL> startupORACLE 例程已经启动. Total System Global Area  591396864 bytesFixed Size                  1250308 bytesVariable Size             226495484 bytesDatabase Bu

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

CAMS 在安装过程中会自己主动加入相关的服务.在安装的最后过程中会提示用户是否启动服务使服务生效,须要注意的是一个服务被加入后并不表示该服务在系统启动过程中会自己主动执行,仅表示能够使用service 命令来启动停止服务. 1. 加入服务 加入服务的步骤为: a. 将该服务的脚本文件拷入/etc/rc.d/init.d 目录下保证其状态为可运行 b. 使用chkconfig 命令将服务加入到服务列表中chkconfig --add camsd (注意有两个-) 将服务加入以后.该服务即能够使用

Linux 服务的添加删除,自动运行及状态

CAMS 在安装过程中会自动添加相关的服务,在安装的最后过程中会提示用户是否启动服务使服务生效,需要注意的是一个服务被添加后并不表示该服务在系统启动过程中会自动运行,仅表示可以使用service 命令来启动停止服务. 1. 添加服务 添加服务的步骤为: a. 将该服务的脚本文件拷入/etc/rc.d/init.d 文件夹下保证其状态为可执行 b. 使用chkconfig 命令将服务添加到服务列表中chkconfig --add camsd (注意有两个-) 将服务添加以后,该服务即可以使用ser

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

前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet 的插件库,非常有用 内容概览 leaflet结合geoserver利用WFS服务实现图层删除源代码demo下载 效果图如下: 本篇主要是在上一篇leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)基础上实现的,leaflet通过调用geoserver发布的地图服务WFS来

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

内容概览 1.openlayers6结合geoserver利用WFS服务实现图层删除功能2.源代码demo下载 效果图如下: 本篇主要是在上一篇openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)基础上实现的,openlayers6通过调用geoserver发布的地图服务WFS来达到图层删除记录的目的.与GeoServer的WFS进行基于Rest交互关键就在于请求参数,值得注意的是这些请求最好采用POST方法发送.查询可以采用json,但增加,删除,修改都只能

Linux服务管理(开启关闭防火墙)

1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用  : systemctl disable firewalld 开机启用  : systemctl enable firewalld 2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体. 启动一个服务:

windows服务搭建与删除简单介绍

安装windows服务: 1 VS的开发命令使用管理员权限打开, 2 installutl.exe /servicename="服务名称"  "服务地址" 卸载服务 installutl.exe  /u  /servicename="服务名称"  "服务地址" 无法正常卸载时执行步骤: 1 关闭所有的windows service控制面板 2 查找windows service的PID,SC queryex 服务名 3 杀掉进

node服务开启必须记得关闭

现在前端好多程序都是开启node服务来作为后端或者是作为中间件, 比如有一次,自己开启来一个fis3的node服务,但是确没有关闭,所以到来第二天,开启另外一个服务的node服务的时候,一直显示找不到资源,后来才发现是端口被fis3的node服务占来,所以开启服务必须记得关闭. 必要的时候,使用 ps aux | grep node