|
*&---------------------------------------------------------------------*
*& Report ZBG000007
*&
*&---------------------------------------------------------------------*
*& Author/Date: S. H. Ting / December 15, 2014
*& Description: 從MES讀取每個工站總生產數量, 更新至SAP
*&
*&---------------------------------------------------------------------*
*& Memo: Program Function Mark
*& ZBG000002 從MES讀取工站主數據, 更新至SAP
*& ZBG000004 從MES讀取訂單工藝路線, 更新至SAP
*& ZBG000005 從MES讀取流程卡掃描數, 更新至SAP
*& ZBG000007 從MES讀取每個工站總生產數量, 更新至SAP *
*&---------------------------------------------------------------------*
REPORT zbg000007.
TYPES: BEGIN OF ty_moid, "生產批次
moid(20), "生產批次編號
END OF ty_moid.
TYPES: BEGIN OF mcmowipstate, "每個工站總生產數量
mandt LIKE sy-mandt,
moid(20), "生產批次編號
staorderid(8) TYPE n, "工站順序
stationid(10), "工站編號
statid(10), "工站編號
moqty TYPE zquan, "批次數量
tranin TYPE zquan, "上組別移交數(SAP)
outqty TYPE zquan, "良品數量
ngqty TYPE zquan, "不良品數
scrapqty TYPE zquan, "報廢數量
diffqty TYPE zquan, "未完成數(SAP)
estate(1), "生產批次當前狀態
starttime TYPE sy-datum,"開始時間
endtime TYPE sy-datum, "結束時間
userid(12), "設置人員
intime TYPE sy-datum, "設置時間
condat TYPE sy-datum, "確認時間
tmoid TYPE aufnr, "生產訂單編號
aufpl TYPE co_aufpl, "訂單作業途程號碼(SAP)
aplzl(8) TYPE n, "訂單的一般計數器(SAP)
poid(10), "銷售訂單編號
sequence(6), "順序號碼
sapstation(4), "作業號碼
lottype(10), "類型
END OF mcmowipstate.
DATA: con_name LIKE dbcon-con_name,
it_moid TYPE TABLE OF ty_moid INITIAL SIZE 10 WITH HEADER LINE,
it_mcmowipstate TYPE TABLE OF mcmowipstate INITIAL SIZE 10 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME.
PARAMETERS: p_bedate LIKE sy-datum,
p_endate LIKE sy-datum.
SELECTION-SCREEN END OF BLOCK bl.
START-OF-SELECTION.
IF p_bedate IS INITIAL.
p_bedate = '17530101'.
ENDIF.
IF p_endate IS INITIAL.
p_endate = '99991231'.
ENDIF.
con_name = 'MES'.
EXEC SQL.
CONNECT TO :CON_NAME
ENDEXEC.
IF sy-subrc = 0.
CLEAR: it_moid, it_mcmowipstate.
*&A 根據 Intime 欄位當作條件找出 Moid 欄位
EXEC SQL PERFORMING process_Moid.
select MOID
from m_McMoWipState_t
into :it_Moid-MOID
where CONVERT(varchar(8), intime, 112) BETWEEN _bedate AND _endate
ENDEXEC.
SORT it_moid BY moid.
DELETE ADJACENT DUPLICATES FROM it_moid COMPARING moid.
*&B 根據Moid 欄位當作條件查找符合條件的記錄
*& it_McMoWipState 每個工站總生產數量
LOOP AT it_moid.
EXEC SQL PERFORMING process_McMoWipState.
select MOID,
STAORDERID,
STATIONID,
MOQTY,
OUTQTY,
NGQTY,
SCRAPQTY,
ESTATE,
convert(char(8), STARTTIME, 112) STARTTIME,
convert(char(8), ENDTIME, 112) ENDTIME,
userid,
convert(char(8), intime, 112) intime
from m_McMoWipState_t
into :it_McMoWipState-MOID,
:it_McMoWipState-STAORDERID,
:it_McMoWipState-STATIONID,
:it_McMoWipState-MOQTY,
:it_McMoWipState-OUTQTY,
:it_McMoWipState-NGQTY,
:it_McMoWipState-SCRAPQTY,
:it_McMoWipState-ESTATE,
:it_McMoWipState-STARTTIME,
:it_McMoWipState-ENDTIME,
:it_McMoWipState-userid,
:it_McMoWipState-intime
where MOID = :it_MOID-MOID
ENDEXEC.
ENDLOOP.
CALL FUNCTION 'ZRFC_MCMOWIPSTATE_UPDATE'
DESTINATION 'QAS800'
TABLES
m_mcmowipstate_t = it_mcmowipstate
EXCEPTIONS
e_zmmmcmowipstatet = 1
OTHERS = 2.
* IF sy-subrc = 0.
* MESSAGE 'Update database sucess!' TYPE 'S'.
* ELSE.
* MESSAGE 'Update database failed!' TYPE 'E'.
* ENDIF.
CASE sy-subrc.
WHEN '0'.
MESSAGE 'ZBG000007 Update sucess!' TYPE 'S'.
WHEN '1'.
MESSAGE 'Update zmmmcmowipstatet failed!' TYPE 'E'.
WHEN OTHERS.
MESSAGE 'ZBG000007 Update failed!' TYPE 'E'.
ENDCASE.
ELSE.
MESSAGE 'Database connection failed!' TYPE 'E'.
ENDIF.
END-OF-SELECTION.
EXEC SQL.
DISCONNECT :CON_NAME
ENDEXEC.
*&---------------------------------------------------------------------*
*& Form process_Moid
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM process_moid.
APPEND it_moid.
CLEAR it_moid.
ENDFORM. "process_Moid
*&---------------------------------------------------------------------*
*& Form process_McMoWipState
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM process_mcmowipstate.
APPEND it_mcmowipstate.
CLEAR it_mcmowipstate.
ENDFORM. "process_McMoWipState
|
|