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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
177 | PP자료(튜토리얼3) [16] | 겁나 | 2008.05.09 | 3375 |
176 | 이동유형의 관계 [24] | 기분좋은상상 | 2008.08.04 | 3692 |
175 | pp t-code [26] | 이덕만 | 2008.08.17 | 4248 |
174 | pp basic logic [28] | 이덕만 | 2008.08.17 | 4214 |
173 | PP자료소개 [9] | 스파이크 | 2009.02.05 | 3999 |
172 | PP참고자료 [13] | 스파이크 | 2009.02.05 | 3383 |
171 | SCM자료 [16] | 스파이크 | 2009.02.05 | 4961 |
170 | SAP_PP생산전략-thesap [5] | 생산해보자 | 2009.03.04 | 4625 |
169 | apo-pp/ds [4] | 로타르 | 2009.05.26 | 4046 |
168 | sap production planning and mrp [13] | 로타르 | 2009.05.26 | 4371 |
167 | SAP WMS module 소개 자료 [11] | 로타르 | 2009.05.26 | 7644 |
166 | 백로그 문서와 취소문서 찾기 [15] | 거북이 | 2009.06.16 | 5122 |
165 | PP개요 [19] | 둘리67 | 2009.06.17 | 4088 |
164 | SAP PP Overview 자료 [13] | 서창리 | 2009.06.29 | 5184 |
163 | PP Master Data [10] | 서창리 | 2009.06.29 | 4103 |
162 | [re] SCM자료 [2] | 바보사랑 | 2009.07.11 | 2763 |
161 | [re] 자재소요계획의 방법과 활용 | 바보사랑 | 2009.07.11 | 2891 |
160 | [re] MRP OVERVIEW | 바보사랑 | 2009.07.11 | 2225 |
159 | Maintenance_view 만들기 [8] | 심슨 | 2009.09.24 | 4908 |
158 | maintenance of BOM [8] | dragon | 2009.10.13 | 3408 |