* 쿼리
SELECT A~OBJNR "W/O - EX. OR000010243897
, SUM( CASE WHEN A~STAT = 'I0002' THEN 1 ELSE 0 END ) AS REL "RELEASED
, SUM( CASE WHEN A~STAT = 'I0010' THEN 1 ELSE 0 END ) AS PCNF "INPROCESS
, SUM( CASE WHEN A~STAT = 'I0012' THEN 1 ELSE 0 END ) AS DLV "COMPLETED
, SUM( CASE WHEN A~STAT = 'I0045' THEN 1 ELSE 0 END ) AS TECO "TECO
, SUM( CASE WHEN A~STAT = 'I0076' THEN 1 ELSE 0 END ) AS DLFL "DELETED
INTO TABLE @DATA(LT_STAT)
FROM JEST AS A "개별 오브젝트 상태 TABLE
WHERE A~OBJNR IN @LR_OBJNR "오브젝트 번호
AND A~INACT = '' "지시자: 상태 비활성
AND A~STAT IN ( 'I0002','I0010', 'I0012', 'I0045', 'I0076' )
GROUP BY A~OBJNR.
* 상태코드 ALV에 디스플레이 - 상태값이 여러개인 경우 우선순위인 상태값이 존재
LOOP 안
DATA(LV_AUFNR) = 'OR' && <FS_DISP>-AUFNR.
READ TABLE LT_STAT ASSIGNING FIELD-SYMBOL(<FS_STAT>)
WITH KEY OBJNR = LV_AUFNR
BINARY SEARCH.
IF SY-SUBRC = 0.
IF <FS_STAT>-DLFL > 0 .
GS_STR-STATUS = 'DELETED'. "1순위
ELSEIF <FS_STAT>-DLV > 0 .
GS_STR-STATUS = 'COMPLETED'. "2순위
ELSEIF <FS_STAT>-TECO > 0 .
GS_STR-STATUS = 'TECO'. "3순위
ELSEIF <FS_STAT>-PCNF > 0 .
GS_STR-STATUS = 'INPROCESS'. "4순위
ELSE.
GS_STR-STATUS = 'RELEASED'. "5순위
ENDIF.
ELSE.
MESSAGE S082 WITH '상태 정보'.
ENDIF.
ENDLOOP.
SAP PP - WO 작업지시 상태 조회 SQL (0) | 2023.02.14 |
---|---|
SAP PP WO 락 풀기 (0) | 2023.02.14 |
SAP PP - COGI, CO1P와 백로그 (0) | 2022.12.05 |
SAP PP - 공정(라우팅)과 제어키/워크센터 (0) | 2022.12.01 |
SAP PP 제품 계층 구조 / IMG 세팅 (0) | 2022.11.28 |