SAP Jobsuche bei DV-Treff
hilfesuchender
vor 3 Jahre
Wie kann man massenmäßig Vorgänge von Fertigungsaufträgen auf andere Arbeitsplätze umhängen? Zum Beispiel müssen mehrere Aufträge aufgrund eines Maschinenausfalls auf einen anderen Arbeitsplatz umgehängt werden.

Die CM25 ist dazu nicht wirklich geeignet...

Horst_1959
vor 3 Jahre
Eventuell braucht es ja noch jemand, obwohl das Thema schon alt ist.

Und bitte das ganze hier nur als Beispiel betrachten auch wenn es bei meinen Arbeitgeber genau so produktiv läuft.

Gruß

H

FUNCTION z_fauf_chg_arbpl.

*"----------------------------------------------------------------------

*"*"Lokale Schnittstelle:

*" IMPORTING

*" VALUE(I_AUFNR) TYPE AUFNR

*" VALUE(I_OLD_ARBPL) TYPE ARBPL

*" VALUE(I_NEW_ARBPL) TYPE ARBPL

*" EXPORTING

*" VALUE(E_RETURN) TYPE SYSUBRC

*"----------------------------------------------------------------------

CONSTANTS : true TYPE c LENGTH 1 VALUE 'X',

false TYPE c LENGTH 1 VALUE space.

DATA : l_objnr TYPE j_objnr,

l_srtfd TYPE indx_srtfd,

l_mandt TYPE symandt,

l_stop TYPE boolean.

DATA : l_error TYPE sysubrc,

lta_head TYPE STANDARD TABLE OF zfaufhead,

lta_upos TYPE STANDARD TABLE OF zfaufupos,

lta_tour TYPE STANDARD TABLE OF ztour,

lta_plan TYPE STANDARD TABLE OF zfaufplan,

lta_konf TYPE STANDARD TABLE OF conf_out,

lta_also TYPE STANDARD TABLE OF zfaufalso,

lta_text TYPE STANDARD TABLE OF zfauftext,

lta_komp TYPE STANDARD TABLE OF zfaufkomp,

lta_elek TYPE STANDARD TABLE OF zfaufelek,

lta_sper TYPE STANDARD TABLE OF zfaufsper.

FIELD-SYMBOLS : TYPE zfaufhead,

TYPE zfaufupos,

TYPE ztour,

TYPE zfaufplan,

TYPE conf_out,

TYPE zfaufalso,

TYPE zfauftext,

TYPE zfaufkomp,

TYPE zfaufelek,

TYPE zfaufsper.

DATA : ls_return TYPE bapiret2,

lta_operation TYPE cose_t_operation.

FIELD-SYMBOLS : TYPE LINE OF cose_t_operation.

DEFINE chk_status.

IF l_stop = false.

FIND &1 IN -status.

IF sy-subrc = 0.

l_stop = true.

ENDIF.

ENDIF.

END-OF-DEFINITION.

e_return = 9.

*----- Alle Daten da?

IF i_aufnr IS INITIAL OR i_old_arbpl IS INITIAL OR i_new_arbpl IS INITIAL.

RETURN.

ENDIF.

e_return = 8.

*----- Daten FAUF besorgen

CALL FUNCTION 'ZGET_FAUF_DATA'

EXPORTING

aufnr = i_aufnr

get_new = false

get_meister = false

get_paketinfo = false

get_matgruppe = false

get_upos = false

get_tour = false

get_also = false

get_konf = false

get_plan = true

get_komp = false

get_text = false

get_parent = false

get_children = false

IMPORTING

return = l_error

TABLES

head = lta_head

upos = lta_upos

tour = lta_tour

also = lta_also

konf = lta_konf

plan = lta_plan

komp = lta_komp

elek = lta_elek

text = lta_text

sper = lta_sper.

IF lta_head[] IS INITIAL.

RETURN.

ENDIF.

READ TABLE lta_head INDEX 1 ASSIGNING .

*----- nicht mehr verschieben wenn ....

e_return = 8.

l_stop = false.

chk_status 'LÖKZ'.

chk_status 'SPER'.

chk_status 'TABG'.

chk_status 'ABGS'.

chk_status 'LÖVM'.

IF l_stop = true.

RETURN.

ENDIF.

*----- Sperre auf Auftrag

e_return = 6.

IF NOT lta_sper IS INITIAL.

RETURN.

ENDIF.

*----- Neuen Arbeitsplatz auf Gültigkeit prüfen

e_return = 5.

SELECT SINGLE mandt

INTO l_mandt

FROM crhd

CLIENT SPECIFIED

WHERE mandt = sy-mandt

AND werks = -werks

AND arbpl = i_new_arbpl

AND begda <= sy-datum

AND endda >= sy-datum

AND lvorm = false.

IF sy-subrc <> 0.

RETURN.

ENDIF.

*----- Alle Vorgänge im Arbeitsplan auf neuen Platz

e_return = 4.

FREE lta_operation.

LOOP AT lta_plan ASSIGNING WHERE arbpl = i_old_arbpl.

APPEND INITIAL LINE TO lta_operation ASSIGNING .

-operation = -vornr.

-work_center = i_new_arbpl.

-work_center_x = true.

ENDLOOP.

IF lta_operation[] IS INITIAL.

RETURN.

ENDIF.

*----- Versuch des Verschiebens

e_return = 3.

CALL FUNCTION 'CO_SE_PRODORD_CHANGE'

EXPORTING

iv_order_number = i_aufnr

* IS_HEADER =

* IT_HDR_USER_STATUS =

* IT_SEQUENCE =

it_operation = lta_operation

* IT_OPR_USER_STATUS =

* IT_PRT =

* IV_COMMIT =

IMPORTING

es_return = ls_return.

IF ls_return-type CA 'EA'.

ROLLBACK WORK.

RETURN.

ENDIF.

*----- Festschreiben

e_return = 2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = true

IMPORTING

return = ls_return.

IF ls_return-type CA 'EA'.

ROLLBACK WORK.

RETURN.

ENDIF.

e_return = 0.

CALL FUNCTION 'Z_NEW_FAUFINDX'

EXPORTING

i_aufnr = i_aufnr.

ENDFUNCTION.