服务确定(服务类收货ML81N)

FUNCTION zrfc_mm005.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(CALLNO) TYPE  ZCALLNO
*"     VALUE(PO_NUMBER) LIKE  BAPIESSRC-PO_NUMBER
*"     VALUE(PO_ITEM) LIKE  BAPIESSRC-PO_ITEM
*"     VALUE(SHORT_TEXT) LIKE  BAPIESSRC-SHORT_TEXT
*"     VALUE(POST_DATE) LIKE  BAPIESSRC-POST_DATE DEFAULT SY-DATUM
*"     VALUE(DOC_DATE) LIKE  BAPIESSRC-DOC_DATE DEFAULT SY-DATUM
*"  EXPORTING
*"     VALUE(ENTRYSHEET) LIKE  BAPIESSR-SHEET_NO
*"     VALUE(FLAG) LIKE  BAPIRET2-TYPE
*"     VALUE(MESSAGE) LIKE  BAPIRET2-MESSAGE
*"  TABLES
*"      ZENTRYSHEET01 STRUCTURE  ZENTRYSHEET01
*"----------------------------------------------------------------------
DATA: ls_heetheader    LIKE bapiessrc,
      lt_sheetservices LIKE TABLE OF bapiesllc,
      ls_sheetservices LIKE bapiesllc,
      ls_zentrysheet01 TYPE zentrysheet01,
      lv_pckg_no       LIKE bapiesllc-pckg_no  VALUE ‘0000000001‘,
      lv_line_no       LIKE bapiesllc-line_no  VALUE ‘0000000001‘,
      lv_entrysheet       LIKE    bapiessr-sheet_no,
      lv_message       LIKE bapiret2-message.
DATA  lv_datano        TYPE zdatano.
DATA: lt_zmms003       TYPE TABLE OF zmms003,
      ls_zmms003       TYPE zmms003.

DATA: lt_zmmt002       TYPE TABLE OF zmmt002,                             "记录会计凭证
      ls_zmmt002       TYPE zmmt002,
      lv_awkey         TYPE awkey,
      lv_mblnr         TYPE mseg-mblnr,                                   "物料凭证
      lv_mjahr         TYPE mseg-mjahr,                                   "年度
      lv_bukrs         TYPE bkpf-bukrs,                                   "公司代码
      lv_belnr         TYPE bkpf-belnr,                                   "会计凭证号
      lv_gjahrs        TYPE bkpf-gjahr,                                   "会计年度号
      lv_blart         TYPE bkpf-blart.                                   "会计凭证类型

*服务确定抬头数据
 ls_heetheader-pckg_no    = lv_pckg_no.                                   "软件包编号
 ls_heetheader-po_number  = po_number.                                    "PO编号
 ls_heetheader-po_item    = po_item.                                      "PO项目编号
 ls_heetheader-short_text = short_text.                                   "预算号)
 ls_heetheader-acceptance = g_flag.                                       "接受服务确认标识
 ls_heetheader-post_date  = post_date.                                    "凭证中的凭证日期
 ls_heetheader-doc_date   = doc_date.                                     "凭证中的过帐日期

*服务确定行项目数据
 ls_sheetservices-pckg_no    = lv_pckg_no.                                "软件包编号
 ls_sheetservices-line_no    = lv_line_no.                                "内部行编号
 ls_sheetservices-subpckg_no = lv_pckg_no + 1.                            "分包编号
 ls_sheetservices-outl_no    = g_flag.                                    "标识符:概要行
 APPEND ls_sheetservices TO lt_sheetservices.
 CLEAR: ls_sheetservices,lv_entrysheet.

  lv_pckg_no = lv_pckg_no + 1.
  LOOP AT zentrysheet01 INTO ls_zentrysheet01.
    lv_line_no = lv_line_no + 1.
    ls_sheetservices-pckg_no    = lv_pckg_no.
    ls_sheetservices-line_no    = lv_line_no.
    ls_sheetservices-ext_line   = ls_zentrysheet01-ext_line.               "服务确认行项目编号
    ls_sheetservices-quantity   = ls_zentrysheet01-quantity.               "数量
    ls_sheetservices-base_uom   = ls_zentrysheet01-base_uom.               "单位
    ls_sheetservices-gr_price   = ls_zentrysheet01-gr_price.               "总价
    ls_sheetservices-short_text = ls_zentrysheet01-short_text.             "短文本
    APPEND ls_sheetservices TO lt_sheetservices.

    ls_zmms003-bstnr            = po_number.
    ls_zmms003-ebelp            = po_item.
    ls_zmms003-xref2            = ls_zentrysheet01-xref2.                  "参考码2(预算)
    ls_zmms003-zuonr            = ls_zentrysheet01-zuonr.                  "分配号(ECM单号)
    APPEND ls_zmms003 TO lt_zmms003.
    CLEAR: ls_zentrysheet01,ls_zentrysheet01,ls_zmms003.
  ENDLOOP.

*---贷方分配编号借方预算号
EXPORT  zrfc_mm003 = lt_zmms003  TO  MEMORY ID ‘ZRFC_MM003‘.

CLEAR: gt_return ,gs_return  .
CALL FUNCTION ‘BAPI_ENTRYSHEET_CREATE‘
  EXPORTING
    entrysheetheader                  = ls_heetheader
  IMPORTING
    entrysheet                        = lv_entrysheet
  TABLES
    entrysheetservices                = lt_sheetservices
    return                            = gt_return.

  READ TABLE gt_return INTO gs_return WITH KEY type = ‘E‘.
  IF sy-subrc NE 0.
    flag = ‘S‘.
    entrysheet = lv_entrysheet.
    CONCATENATE ‘生成服务编号:‘ lv_entrysheet INTO message..
  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: lt_zmmt002, ls_zmmt002, lv_awkey,  lv_mblnr, lv_mjahr,
       lv_bukrs,   lv_belnr,   lv_gjahrs, lv_blart.

SELECT SINGLE mblnr mjahr INTO (lv_mblnr,lv_mjahr)   "物料凭证
  FROM mseg
  WHERE lfbja = sy-datum+0(4)
  AND   lfbnr = lv_entrysheet.

CONCATENATE  lv_mblnr  lv_mjahr INTO lv_awkey.
IF lv_awkey IS NOT INITIAL.
SELECT SINGLE bukrs belnr gjahr blart INTO (lv_bukrs,lv_belnr,lv_gjahrs,lv_blart) "会计凭证
  FROM bkpf WHERE awtyp = ‘MKPF‘
             AND  awkey = lv_awkey.
ENDIF.

SELECT  bukrs belnr gjahr buzei zuonr sgtxt xref1 xref2 xref3    "会计凭信息
  INTO CORRESPONDING FIELDS OF TABLE lt_zmmt002
  FROM bseg
  WHERE bukrs  = lv_bukrs
  AND   belnr  = lv_belnr
  AND   gjahr  = lv_gjahrs.

  ls_zmmt002-blart = lv_blart.  "会计凭证类型
  MODIFY lt_zmmt002 FROM  ls_zmmt002 TRANSPORTING blart WHERE blart IS INITIAL .

  INSERT zmmt002 FROM TABLE lt_zmmt002. "写入客制数据表
  IF sy-subrc = 0.
     COMMIT WORK AND WAIT.
  ELSE.
     ROLLBACK WORK.
  ENDIF.

*----记录日志
DATA: quantity(18),
      gr_price(27).
CLEAR:gt_log,gs_log,ls_zentrysheet01.

  LOOP AT zentrysheet01 INTO ls_zentrysheet01.
    lv_datano     = lv_datano + 1.
    gs_log-datano = lv_datano.
    gs_log-name   = ‘ZRFC_MM005‘.
    gs_log-cdate  = sy-datum.
    GET TIME.
    gs_log-ctime  = sy-uzeit.
    gs_log-callno = callno.
    gs_log-flag   = flag.
    gs_log-log    = message.
    quantity      = ls_zentrysheet01-quantity.
    gr_price      = ls_zentrysheet01-gr_price.
    CONCATENATE po_number  po_item   short_text   post_date   doc_date
                ls_zentrysheet01-ext_line   quantity     ls_zentrysheet01-base_uom
                gr_price   ls_zentrysheet01-short_text
                ls_zentrysheet01-xref2
                ls_zentrysheet01-zuonr
                entrysheet
    INTO gs_log-content.
    CONDENSE gs_log-content NO-GAPS.
    gs_log-length = STRLEN( gs_log-content ).
    APPEND gs_log TO gt_log.
    CLEAR: gs_log,quantity,gr_price,ls_zentrysheet01.
  ENDLOOP.

 IF gt_log IS NOT INITIAL.
   INSERT zrfc_mm01in_log FROM TABLE gt_log.
   IF sy-subrc = 0.
     COMMIT WORK.
   ENDIF.
 ENDIF.

ENDFUNCTION.
时间: 2024-11-05 17:34:27

服务确定(服务类收货ML81N)的相关文章

Nmap扫描教程之网络基础服务DHCP服务类

Nmap扫描教程之网络基础服务DHCP服务类 Nmap网络基础服务 网络基础服务是网络正常工作的基石,常见的网络基础服务包括DHCP服务和DNS服务.其中,DHCP服务用来为计算机动态分配IP地址:DNS服务用来对主机名进行解析.本章将介绍网络基础服务的扫描方法. NmapDHCP服务类 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种局域网的网络协议.它的主要作用就是,给内部网络或网络服务供应商自动分配IP地址.当一台客户机需要一个IP

微信支付开发(7) 收货地址共享接口V2

在这篇微信公众平台开发教程中,我们将介绍如何在网页中实现获取收货地址的功能. 收货地址共享接口 在2016年4月13日 进行过升级,2016年5月20日之后只能使用新接口,本教程为新版接口的教程! 本文分为以下二个部分: 生成JS-SDK权限验证签名 实现获取共享收货地址 一.微信JS-SDK 1. 获得Access Token access token的获得方法在前面有介绍,详情见 微信公众平台开发(26) ACCESS TOKEN 2. 获取jsapi_ticket 生成签名之前必须先了解一

淘宝爬取个人资料、微博绑定、收货地址、支付宝绑定设置、安全设置等信息

登录采用浏览器登录,或者直接记住cookie两种方式.usecookie=1使用cookie,broser支持三种浏览器. #coding=utf-8 import time,random,requests,json,re from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_c

收货地址表结构 以及创建修改流程

创建收货地址的过程中, 一共涉及到三张表 一张为PostalAddress  contact_mech    party_contact_mech 创建的流程  调用createPartyPostalAddress 这个服务,在这个服务里面的simple_method 的分别先后调用了两个service服务, 第一个为createPostalAddress   第二个服务为createPartyContactMech createPostalAddress服务中调用的simple_method的

发布Hessian服务作为服务内部基础服务

摘要:Hessian经常作为服务内部RPC工具来使用,速度快效率高.重构代码的核心思想就是把共用的代码段提出来,使代码结构优化:架构设计类似,把基本的共用的服务提出来,使架构优化.下面讲述一下我在具体应用中使用Spring3.2.4在Tomcat7.0.47下发布Hessian4.0.37服务的过程. 关键词:Spring, Hessian, JAVA, 架构设计, Hibernate, Tomcat Hessian经常作为服务内部RPC远程过程调用工具来使用,速度快效率高,我们的项目也不例外的

第4章2节《MonkeyRunner源码剖析》ADB协议及服务: ADB服务SERVICES.TXT翻译参考(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. ADB服务器端在接受到ADB客户端发送过来的命令后会进行相应的处理,如果是主机服务就在ADB服务器内部进行处理,如果是本地服务就会发送给Android目标机器端的adbd守护进程进行处理. 因为ADB相关的源代码不在我

[Openwrt 项目开发笔记]:Samba服务&amp;vsFTP服务(四)

在上一节中,我们讲述了如何在路由器上挂载U盘,以及如何通过改造U盘提升路由器的存储和数据处理能力.通过增加USB挂载,为我们后续进行智能家居构建提供了保障. 在本节中,我将简单介绍如何在路由器上建立网络文件共享服务. 一.为何要建立文件共享服务: 在智能家居网络中,一个很重要的需求就是安全.当一个智能家居方案部署之后,用户往往最先考虑的也是安全问题.那么怎样进行安全管理呢?一种常用的解决方法是实时的监控传感器以及家电的状态,一旦发生异常,通过邮件.短信甚至打电话的方式通知用户.当用户接收到异常之

Day 10 (06/01) nginx服务 ndf服务 计划任务crond服务

nginx服务 源码安装: yum install gcc-* glibc-* openssl openssl-devel pcre pcre-devel zlib zlib-devel -ylstar xvf nginx-1.10.3.tar.gz cd nginx-1.10.3ls./configure./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-pat

GWYAlertSelectView 选择收货地址和选择联系人

iOS 开发在app内(特别是在类似购物和旅游类)经常会用到选择,添加联系人和收货地址,而且经常都是在跳转界面,很是麻烦,今天我就自己封装了一个类似弹出视图的代码,方便了很多!demo地址: https://github.com/liguoliangiOS/GWYAlertSelectView.git 代码量多久 不在上传代码,仅提供图片,欢迎各位下载demo查看