hmm, was genau machst Du denn? Ein Beispielcoding wäre hilfreich. Grundsätzlich müsste es schon das richtige Include sein. Wenn Du in dem Include die Variable no_update = 'X' setzst, so wird der Auftrag nicht gespeichert, demnach also auch nicht freigegeben...c oco hat geschrieben: Aber egal was ich mache und wie ichs mache, der Auftrag wird immer freigegeben.
Bin ich hier vielleicht ganz falsch?
die wollen aber, dass der Auftrag weiterhin gespeichert werden soll. Nur die Freigabe soll verhindert werden. Ich gehe in die Erweiterung: Dann in den UserExit: Hier habe ich ein Iclude angelegt:Alexander D. hat geschrieben:
hmm, was genau machst Du denn? Ein Beispielcoding wäre hilfreich. Grundsätzlich müsste es schon das richtige Include sein. Wenn Du in dem Include die Variable no_update = 'X' setzst, so wird der Auftrag nicht gespeichert, demnach also auch nicht freigegeben...
Code: Alles auswählen.
*
Include: ZZCO1U01_ENH18
2) Nur bei freigabe
l_objnr+0(2) = 'OR'.
l_objnr+2 = header_imp-aufnr.
* Status neu: frei ?
call function 'STATUS_CHECK'
exporting
objnr = header_imp-objnr
status = l_stk_fre
exceptions
object_not_found = 01
status_not_active = 02.
if sy-subrc ne 0.
exit.
endif.
Code: Alles auswählen.
CLEAR: l_orgl.
DO.
IF no_update = 'X'.
EXIT.
ENDIF.
IF zcl_ca_userexit_services=>enhancement_check(
i_enhanc = 'E023'
i_subarea = 'ZPP_C_REL'
i_orgl = l_orgl ) IS INITIAL.
EXIT.
ENDIF.
* Get all components of production order
CLEAR: lt_resbd.
CALL FUNCTION 'CO_BC_RESBD_OF_ORDER_GET'
EXPORTING
aufnr_act = header_imp-aufnr
get_old = ' '
TABLES
resbd_get = lt_resbd.
*--- Start processing
LOOP AT lt_resbd INTO ls_resbd.
* CLEAR lf_c_blocked.
*----- Get MTART
CALL FUNCTION 'MARA_SINGLE_READ'
EXPORTING
matnr = ls_resbd-matnr
IMPORTING
wmara = ls_mara
EXCEPTIONS
lock_on_material = 1
lock_system_error = 2
wrong_call = 3
not_found = 4
OTHERS = 5.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
*set flag
IF ls_mara-mtart = zcl_pd_constants=>mtart_exchange.
*eröffnet?
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
objnr = header_imp-objnr
status = 'I0115'
EXCEPTIONS
object_not_found = 01
status_not_active = 02.
if sy-subrc = 0.
** header_imp-aufnr(1) <> '%'.
** clear l_stk_fre.
*** lf_c_blocked = 'X'.
*** l_stk_fre = lc_no_free.
*** MESSAGE i244(zpp_plv) WITH ls_resbd-matnr.
*** EXIT.
* CALL FUNCTION 'ECM_FREIGABE_SETZEN'
* EXPORTING
* freig_fertigung = lc_space.
ENDIF.
endif.
**----- Get Customizing
* ls_send_c = zcl_pp_order_services=>cust_comp_c_get( if_werks = header_imp-werks
* if_auart = header_imp-auart
* if_matnr = ls_resbd-matnr ).
*
**------- Set release flag
** IF NOT ls_send_c-zpp_rel IS INITIAL.
* zcl_pp_order_services=>cat_rel_flag_set( EXPORTING if_matnr = <lfs_bdsi>-matnr
* if_rel = lf_c_blocked
* CHANGING ch_cat = <lfs_bdsi>-j_4krcat ).
** ENDIF.
ENDLOOP.
* UNASSIGN: <lft_bdsi>, <lfs_bdsi>.
*- Always there
EXIT.
ENDDO.