仓库使用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