MES接口系列 - 采购订单PDA收货接口

仓库使用PDA扫描来料外包装上的二维码收货过账,二维码QR CODE是从SRM系统中打印,通常由供应商打印粘贴,部分由仓库代打,PDA程序由C#开发。

SAP接口输入参数:

接口返回参数:EX_MBLNR

接口表参数: ZST_PO_DATA_V1

SAP接口代码:
FUNCTION z_if_pp_wo_sync_v1.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IM_AUFNR) TYPE  AUFNR OPTIONAL
*"     VALUE(IM_GSTRP) TYPE  SY-DATUM OPTIONAL
*"     VALUE(IM_ONLY_REL) TYPE  XFLAG DEFAULT 'X'
*"     VALUE(IM_MAX_ROWS) TYPE  SY-TABIX DEFAULT 0
*"  TABLES
*"      TB_WERKS_CON STRUCTURE  RANGE_WERKS OPTIONAL
*"      TB_WO_DATA STRUCTURE  ZST_WO_DATA_V1
*"      TB_ROUTING STRUCTURE  ZST_WO_ROUTING OPTIONAL
*"----------------------------------------------------------------------



  DATA: l_aufnr LIKE afko-aufnr.
  DATA: l_rpl_aufnr LIKE afko-aufnr."报工新工单
  DATA: l_rpl_gamng LIKE afko-gamng."报工新工单总工单数"
  DATA: tmpname LIKE thead-tdname.
  RANGES: s_aufnr FOR afko-aufnr OCCURS 0.
  DATA: BEGIN OF lt_wo_data OCCURS 0.
  DATA:   rsnum   LIKE resb-rsnum.
          INCLUDE STRUCTURE zst_wo_data_v1.
          DATA:   ms_flag TYPE flag. "For monthly settlement M.C 2022.11.15
  DATA:   mtart TYPE mara-mtart.
  DATA:   pflag TYPE c.
  DATA: END OF lt_wo_data.
  DATA: ls_marc TYPE marc.
*  DATA: wo_date_start LIKE sy-datum.
*  DATA: wo_date_end LIKE sy-datum.
  DATA: l_name   TYPE thead-tdname,
        l_maktx  TYPE c LENGTH 20,
        lt_texts TYPE TABLE OF tline.
  FIELD-SYMBOLS: <fs> TYPE tline.
  DATA: BEGIN OF lt_resb OCCURS 0 ,
          posnr TYPE resb-posnr,
          matnr TYPE resb-matnr,
          rgekz TYPE resb-rgekz,
          lgort TYPE resb-lgort,
          charg TYPE resb-charg,
          bdmng TYPE resb-bdmng,
          enmng TYPE resb-enmng,
          matkl TYPE resb-matkl,
          werks TYPE resb-werks,
          alpgr TYPE resb-alpgr, "Group
          alprf TYPE resb-alprf, "Prioirty
          alpst TYPE resb-alpst, "Strategy
          alpos TYPE resb-alpos, "Indicator
          ewahr TYPE resb-ewahr, "probability
          revlv TYPE resb-revlv, "Revision Level M.C 2020.08.26
          meins TYPE resb-meins, "ADD BY mars 20220505
          erfmg TYPE resb-erfmg,
          erfme TYPE resb-erfme,
          xloek TYPE resb-xloek, ""删除标识
          stlnr TYPE resb-stlnr,
          stlkn TYPE resb-stlkn,
          stpoz TYPE resb-stpoz,
          ausch TYPE resb-ausch,
        END OF lt_resb.
  "排除损耗率添加的字段
  DATA: ls_afko TYPE afko .
  DATA: lt_stb    TYPE stpox OCCURS 0 WITH HEADER LINE,
        lt_matcat TYPE cscmat OCCURS 0 WITH HEADER LINE,
        l_capid   TYPE tc04-capid.
  DATA ls_t006 TYPE t006.
  "

*  DATA: BEGIN OF lt_mara OCCURS 0 ,
*    matnr TYPE mara-matnr,
*    meins TYPE mara-meins,
*    END OF lt_mara.
  DATA: it_matkl TYPE TABLE OF  ztmatkl WITH HEADER LINE.
  DATA: lt_knmt TYPE TABLE OF knmt WITH HEADER LINE.
  DATA: ls_tvarvc TYPE tvarvc.
  RANGES: s_date FOR aufk-erdat  .


  IF  NOT im_aufnr IS  INITIAL.
    CLEAR l_aufnr.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = im_aufnr
      IMPORTING
        output = l_aufnr.

    s_aufnr-sign = 'I'.
    s_aufnr-option = 'EQ'.
    s_aufnr-low = l_aufnr.
    APPEND s_aufnr.

    REFRESH s_date[].


  ELSE.
    s_date-sign = 'I'.
    s_date-low = im_gstrp.
    s_date-option = 'EQ'.
    APPEND s_date.

    s_date-sign = 'I'.
    s_date-option = 'EQ'.
    s_date-low = im_gstrp - 1.
    APPEND s_date.

  ENDIF.

  IF im_max_rows > 0.
    SELECT
       a~aufnr
       a~plnbez AS matnr    "MAKT~MAKTX AS WMAKTX
       b~pwerk AS werks
       a~gamng AS gamng
       a~gmein AS gmein
       b~dauat AS auart
       a~gstrp
       a~gltrp
       a~rsnum
       c~ktext
       c~ref_aufnr AS rpl_aufnr
       a~revlv
       c~ms_flag "M.C 2022.11.15
      INTO CORRESPONDING FIELDS OF TABLE lt_wo_data UP TO im_max_rows ROWS
      FROM afko AS a
      INNER JOIN afpo AS b ON b~aufnr = a~aufnr
      INNER JOIN aufk AS c ON a~aufnr  = c~aufnr
      WHERE c~werks IN tb_werks_con
      AND ( ( c~erdat IN s_date )  "M.C 2022.06.02 - Change to creation date
      OR  ( c~aedat IN s_date ) )  "M.C 2022.06.02 Change to change date

      AND a~aufnr IN s_aufnr
      .

  ELSE.
    SELECT
       a~aufnr
       a~plnbez AS matnr    "MAKT~MAKTX AS WMAKTX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值