REPORT ZPSFC001.
*----------------------------------------------------------------------*
* This reports inactivates the deletion indicator for production orders.
* Please run this report in testmode first to check if only orders are
* included which should not be archived.
* It will not remove the deletion flag from the order. This must be
* done manually by inactivating the deletion flag within the order.
* --> Testmode: 'X' -> no update performed
* --> PARTDLVD: 'X' -> partially delivered orders will not be updated
* --> PARTCONF: 'X' -> partially confirmed orders will not be updated
* --> ORDER : Range of orders to be selected
* --> MATNR : Range of materials for which orders exist
*----------------------------------------------------------------------*
* Caution: If you want to use this report for other order types than *
* production orders please modify lines where
* 'auftragstyp-fert' is used
*----------------------------------------------------------------------*
* I0010(stk_tru)-partially confirmed, I0074(stk_tli)-partially deliverd
INCLUDE LCOKOSTA. "get constants for status
INCLUDE LCOKOTYP. "get constants for order type
* parameter definition
TABLES: VJAUFK, AUFK.
PARAMETERS:
TESTMODE DEFAULT 'X',
PARTDLVD DEFAULT 'X', "check for partially delivered
PARTCONF DEFAULT 'X'. "check for partially confirmed
SELECT-OPTIONS:
ORDER FOR VJAUFK-AUFNR MATCHCODE OBJECT ORDE,
MATNR FOR VJAUFK-MATNR MATCHCODE OBJECT MAT1.
DATA: BEGIN OF FERT OCCURS 1.
INCLUDE STRUCTURE VJAUFK.
DATA: END OF FERT.
DATA: BEGIN OF COLL_TAB OCCURS 1,
AUFNR LIKE AUFK-AUFNR,
END OF COLL_TAB.
DATA: BEGIN OF STATUS OCCURS 1.
INCLUDE STRUCTURE JSTAT.
DATA: END OF STATUS.
DATA: LAST_LEAD_AUFNR LIKE AFKO-LEAD_AUFNR.
* To set status I0013 - stk_loe inactive
STATUS-STAT = STK_LOE.
STATUS-INACT = 'X'.
APPEND STATUS.
IF MATNR[] IS INITIAL AND
ORDER[] IS INITIAL.
message i889(CO) with
'Please enter at least one selection criteria.'.
exit.
ENDIF.
SELECT * FROM VJAUFK INTO TABLE FERT
WHERE AUFNR IN ORDER
AND MATNR IN MATNR
AND STAT = STK_LOE
AND INACT = SPACE
AND AUTYP = AUFTRAGSTYP-FERT.
IF SY-SUBRC <> 0.
WRITE 'NO PRODUCTION ORDERS FOUND'.
EXIT.
ENDIF.
* for collective orders we have to guarantee, that all orders for
* one collective order are member of the selection
* --> we need to add orders not included yet.
PERFORM CORRECT_COLLECTIVE_ORDER.
LOOP AT FERT.
* Commit - Logic:
* With first enter in loop do not commit (commit_flag)
* For each single order commit work
* Collective orders are committed at once
IF FERT-PRODNET EQ 'X'.
* collective order
IF LAST_LEAD_AUFNR NE FERT-LEAD_AUFNR.
* there is a new (collective) order --> commit amd refresh
IF TESTMODE IS INITIAL.
COMMIT WORK.
ENDIF.
CALL FUNCTION 'STATUS_BUFFER_REFRESH'.
LAST_LEAD_AUFNR = FERT-LEAD_AUFNR.
ENDIF.
ELSE.
IF TESTMODE IS INITIAL.
COMMIT WORK.
ENDIF.
CALL FUNCTION 'STATUS_BUFFER_REFRESH'.
ENDIF.
IF NOT PARTDLVD IS INITIAL.
* check if order is partially delivered if requested
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
OBJNR = FERT-OBJNR
STATUS = STK_TLI
EXCEPTIONS
STATUS_NOT_ACTIVE = 2.
IF SY-SUBRC = 2.
CONTINUE.
ENDIF.
ENDIF.
IF NOT PARTCONF IS INITIAL.
* check if order is partially confirmed if requested
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
OBJNR = FERT-OBJNR
STATUS = STK_TRU
EXCEPTIONS
STATUS_NOT_ACTIVE = 2.
IF SY-SUBRC = 2.
CONTINUE.
ENDIF.
ENDIF.
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
OBJNR = FERT-OBJNR
STATUS = STK_LOE
EXCEPTIONS
STATUS_NOT_ACTIVE = 2.
IF SY-SUBRC = 2.
WRITE: / 'ORDER ', FERT-AUFNR, ': DELETION INDICATOR NOT ACTIVE'.
CONTINUE.
ENDIF.
IF TESTMODE IS INITIAL.
CALL FUNCTION 'STATUS_CHANGE_INTERN'
EXPORTING
OBJNR = FERT-OBJNR
TABLES
STATUS = STATUS.
UPDATE AUFK SET AENAM = SY-UNAME
AEDAT = SY-DATUM
aezeit = sy-uzeit "as of release 4.0
WHERE AUFNR = FERT-AUFNR.
LAST_LEAD_AUFNR = FERT-LEAD_AUFNR.
ENDIF.
IF SY-SUBRC IS INITIAL.
WRITE: / 'ORDER ', FERT-AUFNR, ': DELETION INDICATOR REMOVED'.
ENDIF.
IF NOT TESTMODE IS INITIAL.
WRITE: ' - TESTMODE'.
ENDIF.
ENDLOOP.
COMMIT WORK.
SKIP 1.
WRITE: 'Program finished'.
*---------------------------------------------------------------------*
* FORM CORRECT_COLLECTIVE_ORDER *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM CORRECT_COLLECTIVE_ORDER.
DATA: HELP_DATE LIKE SY-DATUM,
HELP_COUNTER TYPE I.
SORT FERT BY LEAD_AUFNR AUFNR.
* add each leading order into coll_tab
LOOP AT FERT WHERE LEAD_AUFNR NE SPACE.
* CHECK fert-aufnr NE fert-lead_aufnr.
COLL_TAB-AUFNR = FERT-LEAD_AUFNR.
COLLECT COLL_TAB.
ENDLOOP.
IF NOT COLL_TAB[] IS INITIAL.
SELECT * FROM VJAUFK APPENDING TABLE FERT
FOR ALL ENTRIES IN COLL_TAB
WHERE LEAD_AUFNR EQ COLL_TAB-AUFNR
AND STAT = STK_LOE
AND AUTYP = AUFTRAGSTYP-FERT
AND LOEKZ = 'X'.
SORT FERT BY LEAD_AUFNR AUFNR.
DELETE ADJACENT DUPLICATES FROM FERT.
ENDIF.
ENDFORM.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
97 | CS03 (BOM조회에서) 아래와 같이 Item 넘버 안보임 [2] | 미래 | 2015.02.26 | 2839 |
96 | CO09 랑 MD04 차이점이 있나요?? [2] | 푸딩딩 | 2016.10.26 | 2830 |
95 | [re] 가지고 있는 모든 족보 | 사바나 | 2010.12.15 | 2767 |
94 | [re] SCM자료 [2] | 바보사랑 | 2009.07.11 | 2763 |
93 | Kanban 자료 올립니다. | jeinny | 2014.07.07 | 2762 |
92 | 생산관련 자료 [8] | 생산해보자 | 2007.10.23 | 2743 |
91 | MRP 구동 관련 [2] | PPMM | 2016.06.10 | 2740 |
90 | PP자료(튜토리얼2) [11] | 겁나 | 2008.05.09 | 2733 |
89 | 구품번 조회관련 질문입니다. [1] | pssk | 2015.10.21 | 2723 |
88 | PP 교육자료 2 [14] | 썬바바 | 2007.04.24 | 2717 |
87 | SNP Overview [1] | sapjoy | 2007.03.15 | 2714 |
86 | 문제..(영문) [1] | 조춘택 | 2007.09.13 | 2689 |
85 | PP 교육자료 5 [14] | 썬바바 | 2007.04.24 | 2687 |
84 | 계획오더에서 생산오더로 전환시 에러내역 확인(수정) [1] | 1가을하늘1 | 2015.11.17 | 2663 |
83 | PP 교육자료 4 [14] | 썬바바 | 2007.04.24 | 2608 |
82 | 생산실적 처리시(REM) 스크랩 수량 적용 방법? [1] | tot882 | 2016.11.15 | 2579 |
81 | Availability Check와 Discontinued Parts [2] | 천승원 | 2013.09.06 | 2566 |
80 | APO 자료 [10] | 안진명 | 2007.03.28 | 2556 |
79 | 안녕하세요 참고하세요 [3] | 안진명 | 2007.03.14 | 2552 |
78 | MRP2 VIEW 조달유형, 특별조달유형 좀 알려주세요..ㅠ [2] | sapabaper | 2020.04.23 | 2422 |