交货单过账报错

  DATA:LT_LIPS TYPE TABLE OF LIPS.
  DATA:LS_LIPS TYPE  LIPS.
  DATA:LT_VBPOK_TAB TYPE TABLE OF VBPOK.
  DATA:LS_VBPOK_TAB TYPE VBPOK.
  DATA:LT_ITEM_DATA_SPL TYPE TABLE OF /SPE/BAPIOBDLVITEMCHG.
  DATA:LS_ITEM_DATA_SPL TYPE /SPE/BAPIOBDLVITEMCHG.
  DATA:LS_HEADER_DATA TYPE BAPIOBDLVHDRCHG.
  DATA:LV_DELIVERY TYPE BAPIOBDLVHDRCHG-DELIV_NUMB.
  DATA:LS_TECHN_CONTROL TYPE BAPIDLVCONTROL.
  DATA:LS_HEADER_CONTROL TYPE BAPIOBDLVHDRCTRLCHG.
  DATA:LS_VBKOK TYPE VBKOK.
  DATA:LT_PROT TYPE TABLE OF PROTT.
  DATA:LV_ERROR(1).
  DATA:LV_MESSAGE     TYPE STRING.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE LT_LIPS
    FROM LIPS
    WHERE VBELN EQ PV_VBELN.

  CLEAR:LS_LIPS.

  LOOP AT LT_LIPS   ASSIGNING FIELD-SYMBOL(<FS_LIPS>).
    CLEAR:LS_VBPOK_TAB.
    LS_VBPOK_TAB-VBELN_VL = <FS_LIPS>-VBELN. "交货.
    LS_VBPOK_TAB-POSNR_VL = <FS_LIPS>-POSNR."原行项目
    LS_VBPOK_TAB-VBELN    = <FS_LIPS>-VBELN. "交货.
    LS_VBPOK_TAB-POSNN    = <FS_LIPS>-POSNR."交货项目
    LS_VBPOK_TAB-MATNR    = <FS_LIPS>-MATNR."物料编号
    LS_VBPOK_TAB-CHARG    = <FS_LIPS>-CHARG."批号
    LS_VBPOK_TAB-LFIMG    = <FS_LIPS>-LFIMG.
    LS_VBPOK_TAB-MEINS    = <FS_LIPS>-MEINS.
    LS_VBPOK_TAB-WERKS    = <FS_LIPS>-WERKS ."库存地点
    LS_VBPOK_TAB-LGORT    = 9000 .           "库存地点
    LS_VBPOK_TAB-KZLGO    = ‘X‘.             "库存地点可修改
    LS_VBPOK_TAB-PIKMG    = <FS_LIPS>-LFIMG."捡配数量
    LS_VBPOK_TAB-LGMNG    = <FS_LIPS>-LFIMG."交货量
    APPEND LS_VBPOK_TAB TO LT_VBPOK_TAB.

    CLEAR:LS_ITEM_DATA_SPL.
    LS_ITEM_DATA_SPL-DELIV_NUMB = <FS_LIPS>-VBELN."交货
    LS_ITEM_DATA_SPL-DELIV_ITEM = <FS_LIPS>-POSNR."原行项目
    LS_ITEM_DATA_SPL-STGE_LOC   = 9000.       "库存地点
    APPEND LS_ITEM_DATA_SPL TO LT_ITEM_DATA_SPL.

  ENDLOOP.

  LS_HEADER_DATA-DELIV_NUMB     = PV_VBELN."交货
  LS_TECHN_CONTROL-UPD_IND      = ‘U‘.
  LS_HEADER_CONTROL-DELIV_NUMB  = PV_VBELN."交货
  LV_DELIVERY                   = PV_VBELN."交货

  LS_VBKOK-VBELN_VL             = PV_VBELN.
  LS_VBKOK-WABUC                = ‘X‘.
  LS_VBKOK-WADAT_IST            = SY-DATUM.

  CALL FUNCTION ‘WS_DELIVERY_UPDATE‘
    EXPORTING
      VBKOK_WA                  = LS_VBKOK
      DELIVERY                  = LV_DELIVERY
      UPDATE_PICKING            = ‘X‘
    IMPORTING
      EF_ERROR_IN_GOODS_ISSUE_0 = LV_ERROR
    TABLES
      PROT                      = LT_PROT
      VBPOK_TAB                 = LT_VBPOK_TAB
    EXCEPTIONS
      ERROR_MESSAGE             = 1
      OTHERS                    = 2.

  IF LV_ERROR = ‘‘.
    READ TABLE LT_PROT TRANSPORTING NO FIELDS  WITH  KEY MSGTY = ‘E‘.
    IF SY-SUBRC = 0.
      LV_ERROR = ‘X‘.
    ENDIF.
  ENDIF.

  IF LV_ERROR IS NOT INITIAL.
    "创建失败
    CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK‘.

    LOOP AT LT_PROT INTO DATA(LS_PROT) WHERE MSGTY = ‘E‘.

      CLEAR:LV_MESSAGE.

      MESSAGE ID LS_PROT-MSGID
            TYPE LS_PROT-MSGTY
          NUMBER LS_PROT-MSGNO
            WITH LS_PROT-MSGV1 LS_PROT-MSGV2 LS_PROT-MSGV3 LS_PROT-MSGV4
            INTO LV_MESSAGE.

      CONCATENATE O_RETURN-MESSAGE LV_MESSAGE INTO O_RETURN-MESSAGE SEPARATED BY ‘/‘.

    ENDLOOP.
    O_RETURN-TYPE = ‘E‘.
  ELSE.
    "创建成功
    CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT‘
      EXPORTING
        WAIT = ‘X‘.
    SELECT SINGLE MBLNR INTO O_RETURN-ZDJH FROM MSEG WHERE VBELN_IM = LV_DELIVERY.
    O_RETURN-TYPE = ‘S‘.
  ENDIF.

原文地址:https://www.cnblogs.com/rainysblog/p/10923332.html

时间: 2024-10-22 08:44:12

交货单过账报错的相关文章

过账销售订单装箱单报错:用库存单位数量表示的实际剩余数量不能为零

过账销售订单装箱单报错: 错误信息:用库存单位数量表示的实际剩余数量不能为零Error Message:Physical remaining quantity in the inventory unit 数量 must be other than zero. 可能的错误原因:RemainSalesQty不正确 修改方法:salesLine.RemainSalesPhysical = salesLine.SalesQty;salesLine.doUpdate();

20170228 交货单过账增强 MV50AFZ1

MV50AFZ1   这个程序里面找个FORM 用户出口, FORM USEREXIT_SAVE_DOCUMENT_PREPARE.   用户出口如下: 例:需求: 开发要求:制作交货单的人员,需要同一张单的交货仓位保持一致,设计成在保存前将所有行都改为和第一行项的仓位一致. 在发货过时会检查如发现不一致,不于过账. *---------------------------------------------------------------------* * FORM USEREXIT_SA

SAP 事务代码 ME31K 报错 - 不含来自带工厂分配的供应商的物料的采购没有被定义 -

近日收到业务团队的报错说,试图创建合同,报错如下: 不含来自带工厂分配的供应商的物料的采购没有被定义 这个中文翻译实在太难受了.进入英文版SAP系统,报错信息如下: Procurement w/o material from vendor with plant assignment not defined 详细报错信息: Procurement w/o material from vendor with plant assignment not defined Message no. 06806

oracle安装故障:完美解决xhost +报错: unable to open display “”

oracle安装 先切换到root用户,执行xhost + 然后再切换到oracle用户,执行export DISPLAY=:0.0 出现乱码执行export LANG=US_en 在这里给大家介绍下两种情况的常见问题: 一种是本地运行的命令,另一种则是远程ssh命令安装. DISPLAY科普 DISPLAY变量是用来设置将图形显示到何处.比如CENTOS,你用图形界面登录进去,DISPLAY自动设置为DISPLAY=:0.0表示显式到本地监视器,那么通过终端工具(例如:xshell)进去,运行

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

安装linux 系统报错:No DEFAULT or UI configuration directive found 解决方法

在报错信息后面的boot命令行输入: /isolinux/vmlinuz initrd=/isolinux/initrd.img 如果不行 重新输入 /isolinux/vmlinuz initrd=/isolinux/initrd.img xdriver=vesa nomodeset boot:/isolinux/vmlinuz initrd=/isolinux/initrd.img boot: /isolinux/vmlinuz initrd=/isolinux/initrd.img xdr

解决 U盘安装Windows Server 2012 R2 报错

报错原因: 使用UltraISO刻录镜像时会更改U盘的文件格式为FAT32, 而Server 2012 R2的安装文件install.wim为5G多,故安装失败. 解决方法: 1.按照正常的方法刻录镜像到U盘: 2.更改U盘文件系统: 进入命令行模式,输入 convert f: /fs:NTFS (F盘为我的U盘所在盘符) 3.把install.wim重新拷贝到U盘对应目录

filebeat+kafka+SparkStreaming程序报错及解决办法

17/07/01 03:07:21 WARN RandomBlockReplicationPolicy: Expecting 1 replicas with only 0 peer/s. 17/07/01 03:07:21 WARN BlockManager: Block input-0-1498849640800 replicated to only 0 peer(s) instead of 1 peers 17/07/01 03:07:26 ERROR Executor: Exception

Maven中,pom.xml文件报错

一:错误消息,如下图: aus 原因是本地仓库在org.codehaus.plexus:plexus-uils:pom:3.0.20下面没有jar文件,只有一个plexus-utils-3.0.20.pom.lastUpdated,如下图: 解决:将该文件夹删掉,然后右击项目:Maven->Update Project就可以了 若pom.xml里面还有类型的报错,就像这样解决就OK了