Fertigungsauftrag nicht freigeben

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Fertigungsauftrag nicht freigeben

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

ich soll wenn die Materialart XY ist, verhindern, dass der Fertigungsauftrag freigegeben wird.
Dazu habe ich in der Erweiterung PPCO0007 =>Exit beim Sichern Fertigungsauftrag
im Userexit EXIT_SAPLCOZV_001 einen Include eingebaut der vehindern soll dass der Status Free gesetzt wird.
Aber egal was ich mache und wie ichs mache, der Auftrag wird immer freigegeben.
Bin ich hier vielleicht ganz falsch?
Beim Debuggen komme ich bei der Aktion "Freigabe" aber in diesen Exit.

Wer weiß Rat?

Viele Grüße
coco

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Fertigungsauftrag nicht freigeben

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Kennt ihr einen Fuba der die Freigabe eines Fertigungsauftrags verhindert?

Re: Fertigungsauftrag nicht freigeben

Beitrag von wreichelt (Top Expert / 1031 / 29 / 188 ) »
Hallo,

prüfe mal die Erweiterung PPCO0001 (Anwendungsentwicklung PP-Aufträge) an. Hier ist der Exit EXIT_SAPLCOBT_001.

Gruß
Wolfgang

Re: Fertigungsauftrag nicht freigeben

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
guten Morgen,
c oco hat geschrieben: Aber egal was ich mache und wie ichs mache, der Auftrag wird immer freigegeben.
Bin ich hier vielleicht ganz falsch?
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...

schöne Grüße
Alexander
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Fertigungsauftrag nicht freigeben

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Mal ein Vorschlag:
BAdI WORKORDER_UPDATE, Methode AT_RELEASE
In IS_HEADER_DIALOG bekommst Du die Materialnummer geliefert, dazu kannst Du die Materialart nachlesen. Wenn diese Dir nicht in den Kram passt löst Du die Exception FREE_FAILED_ERROR aus und bist fertig. :-)

Grüße,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: Fertigungsauftrag nicht freigeben

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,
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...
die wollen aber, dass der Auftrag weiterhin gespeichert werden soll. Nur die Freigabe soll verhindert werden. Ich gehe in die Erweiterung:
QA6(1)100 SAP-Erweiterungen.jpg
Dann in den UserExit:
QA6(1)100 Function Builder EXIT_SAPLCOZV_001 anzeigen.jpg
Hier habe ich ein Iclude angelegt:
und darin habe ich dann rumexperimentiert:

Ich hole die Komponenten zum Auftrag mit CALL FUNCTION 'CO_BC_RESBD_OF_ORDER_GET'
dann hole ich mit CALL FUNCTION 'MARA_SINGLE_READ' die Auftragsart zu der Komponente:
dann prüfe ich, mit Check status den Status ab.

In einem anderen Include habe ich diesen code: da wird die Auftragsnummer konfiguriert:
Ich denke, ich muss mein Include vor diesen setzen. Ich kann da drin nix ändern, da der
Entwickler eine Editorsperre reingemacht hat.

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.
Gruß coco

Re: Fertigungsauftrag nicht freigeben

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

danke für eure Tipps.
Im Userexit habe ich jetzt die Abfrage so gelassen und das Flag für Kennzeichen "no_update" gesetzt,
falls Status Freigabe angeklickt wird!
Die Freigabe wird jetzt unterbunden, auch wenn im Standard protokoll noch immer die
Meldung: Auftrag konnte freigegeben steht. Ein Kollege hat gemeint, das Protokoll wird im SAP Standard gesetzt
und um das zu ändern müsste ich eine Modifikation vornehmen. Was ich nicht ganz begreife, weil ich
ja im UserExit Daten zum Standard versenden muss. Habe alles abgesucht und nix gefunden.
Aber technisch wird es jetzt wenigstens umgesetzt.

Nochmal vielen herzlichen Dank.

Grüße coco

Seite 1 von 1

Vergleichbare Themen

4
Antw.
8705
Views
3
Antw.
24268
Views
Fehler bei Transport - Reperatur freigeben?
von b0rsti » 16.07.2008 14:35 • Verfasst in SAP - Allgemeines
0
Antw.
1535
Views
Kontrakt deaktivieren bzw. nicht freigeben?
von Topologe » 21.02.2008 18:17 • Verfasst in Sales and Distribution
1
Antw.
1506
Views
Session-Kontexte manuell freigeben!?!
von donossi » 09.09.2011 09:10 • Verfasst in Basis
2
Antw.
1771
Views
IH Auftrag beim Speichern freigeben
von rune » 30.10.2007 17:01 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.