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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
178 | 타임 티켓(CO11N) 오류 [1] | sonshin | 2013.06.21 | 3895 |
177 | 공장관리 현장용어 정리 [12] | gasoline | 2008.03.27 | 3855 |
176 | MRP 관련 질문입니다. [5] | PP-MRP control | 2016.08.12 | 3844 |
175 | PP 족보 모음 [9] | sapjoy | 2007.09.06 | 3825 |
174 | PP자료 [20] | 둘리67 | 2008.03.21 | 3790 |
173 | 원가계산 오류 [2] | 페이머스킴 | 2014.05.15 | 3760 |
» | pp deletion indicator 삭제 프로그램(상태변경 프로그램) | sapjoy | 2014.05.26 | 3754 |
171 | PP자료 [2] | trueguy | 2008.03.08 | 3740 |
170 | BSCM 용어사전 [5] | gasoline | 2008.03.27 | 3735 |
169 | MRP OVERVIEW [14] | sapjoy | 2007.03.12 | 3724 |
168 | MRP USER-EXIT [6] | 노름마치 | 2007.12.07 | 3712 |
167 | MRP Type 종류 확인 요청드립니다 [2] | 이후입니다요 | 2013.11.25 | 3710 |
166 | SAP 개론입니다. [8] | 곰배 | 2009.10.14 | 3700 |
165 | 이동유형의 관계 [24] | 기분좋은상상 | 2008.08.04 | 3698 |
164 | REM 생산방식에서 불량을 재처리해서 양품으로 하는방법이 궁금합니다!! [2] | SAP 초짜 | 2014.09.16 | 3697 |
163 | 6_Production_Activity_control [11] | PP | 2007.01.22 | 3695 |
162 | PP교육자료 [22] | 썬바바 | 2007.04.24 | 3694 |
161 | 이동유형 정리 [9] | 밤의화신 | 2008.03.14 | 3672 |
160 | SAP APO Summary [6] | 밤의화신 | 2008.03.14 | 3670 |
159 | PP자료(튜토리얼) [23] | 겁나 | 2008.05.09 | 3669 |