CO01 BADI

Getting started ... Alles für einen gelungenen Start.
21 Beiträge • Seite 1 von 2 (current) Nächste
21 Beiträge Seite 1 von 2 (current) Nächste

CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo zusammen,

weiß jemand ein Badi mit welchem ich Zugriff auf die Positionen der Vorgangsliste in der CO01 erhalte (siehe Bild)?

Ich würde dort gerne ein paar Daten modifizieren. Ich bin dort mal mit der Klasse cl_exithandler rein, habe aber leider kein gutes/passendes Badi gefunden.

Vielen Dank im Voraus.

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


Re: CO01 BADI

Beitrag von wreichelt (Top Expert / 1048 / 30 / 192 ) »
Hallo,

vielleicht der IBAPI_ORDER_OPERATION_CHANGE

Gruß Wolfgang

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hmm okay, das wäre nun aber ein BAPI, oder? Wie würden man den so etwas einbinden um das SAP-Standardprogramm zu modifizieren? Habe bisher immer nur mit BADI´s gearbeitet.

Re: CO01 BADI

Beitrag von wreichelt (Top Expert / 1048 / 30 / 192 ) »
Hallo,

da kann ich nur das Beispiel liefern

https://mindsquare.de/knowhow/sap-bapi/

Gruß Wolfgang

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hmm okay, soweit hätte ich es verstanden, aber sollte das dann in dem SAP-Standardprogramm über einen Enhancement Point eingebunden werden?

Re: CO01 BADI

Beitrag von Murdock (Specialist / 126 / 60 / 10 ) »
Möchtest Du Daten während der Anzeige / beim Speichern ändern oder möchtest Du Daten an einem bestehenden Auftrag auf der DB ändern?
Bei bestehenden Auftrag würde ein BAPI helfen (aber dann wären wir nicht mehr in der CO01), ansonsten schau Dir mal die BADIs WORKORDER_UPDATE und WORKORDER_INFOSYSTEM an.

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Ich würde die Daten beim Anzeigen/Speichern ändern. Ich habe mir den BADI WORKORDER_UPDATE nun angeschaut. Ich hätte ihn auch schon implementiert, aber leider habe ich da keinen Zugriff auf die Positonen sondern nur auf die Auftragsnummer (Siehe Bild) oder habe ich was übersehen?

Vielen Dank im Voraus.

Re: CO01 BADI

Beitrag von Murdock (Specialist / 126 / 60 / 10 ) »
Probier es in IF_EX_WORKORDER_UPDATE~AT_SAVE doch eventuell mal wie unten dargestellt (so ist es in unserem System von der SAP hinterlegt), eventuell hilft das:

Code: Alles auswählen.

** Resevierungen zum Auftrag lesen
    CALL FUNCTION 'CO_BT_RESB_SET'
      EXPORTING
        aufnr_act       = is_header_dialog-aufnr
        index           = 1
      EXCEPTIONS
        entry_not_found = 1
        table_empty     = 2
        OTHERS          = 3.
    IF sy-subrc <> 0.
      RETURN.
    ENDIF.


    DO.
      CALL FUNCTION 'CO_BT_RESB_GET'
        EXPORTING
          aufnr_act     = is_header_dialog-aufnr
        IMPORTING
          resbd_exp     = ls_resbd
          resb_bt_index = lv_index
          vbkz_exp      = lv_vbkz
        EXCEPTIONS
          eof           = 1
          table_empty   = 2
          OTHERS        = 3.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
      CHECK lv_vbkz NE 'D'.

      IF  ls_resbd-postp EQ 'L'.
        ls_resbd-bwart = '111'.
        CALL FUNCTION 'CO_BT_RESB_PUT'
          EXPORTING
            resbd_new = ls_resbd
          EXCEPTIONS
            OTHERS    = 0.
      ENDIF.

    ENDDO.
  ENDIF.
Ansonsten hilft wahrscheinlich auch EXIT_SAPLCOMK_014 mit einem kleinen dirty assign auf (SAPLCOMK)resbd. 😉

Re: CO01 BADI

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moin.

Mit CO_BT_RESB_GET bekommt man die Komponenten, Du möchtest ja auf die Vorgänge zugreifen. Dann ist CO_BT_AFVG_GET_ALL Dein Freund. Über CO_BT_AFVG_GET und CO_BT_AFVG_PUT solltest Du auch Vorgänge ändern können.

Grüße,
Haubi

Folgende Benutzer bedankten sich beim Autor Haubi für den Beitrag:
qyurryus

Das ABAP Kochbuch ab sofort bei Amazon...

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

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, die Fuba´s haben mir jetzt alle Daten geliefert, bis auf den Arbeitsplatz : /.

Weiß jemand welcher Fuba mir auch den Arbeitsplatz von den Positionen liefert?

Vielen Dank im Voraus.

Re: CO01 BADI

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
L0w-RiDer hat geschrieben:
20.01.2022 17:29
Okay, die Fuba´s haben mir jetzt alle Daten geliefert, bis auf den Arbeitsplatz : /.

Weiß jemand welcher Fuba mir auch den Arbeitsplatz von den Positionen liefert?

Vielen Dank im Voraus.
Hi.

Du solltest den Arbeitsplatz in AFVGB-ARBPL finden. Wenn der nicht gefüllt ist müsstest Du ihn ggf. über AFVGD-ARBID aus der CRHD besorgen.

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

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

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, soweit würde jetzt alles passen.

Ich benutze den Fuba CO_BT_AFVG_GET um die Strukur mit dem Arbeitsplatz zu bekommen. Nun schreibe ich dort etwas rein und möchte es übernehmen mit dem Fuba CO_BT_AFVG_PUT. Nachdem ich so einen Fertigungsauftrag mit der CO01 anlege und dies nun so ausführe, wird die Änderung leider nicht in der CO03 ersichtlich bzw. es wird die Änderung von dem Arbeitsplatz bei dem Datensatz nicht übernommen.

Ich hätte alles in die Methode AT_SAVE gepackt, weil muss das noch auch in eine andere Methode? Habe mir mal das Ganze angeschaut, aber bei den anderen Methoden, habe ich ja gar keinen Zugriff mehr.

Weiß da jemand vielleicht Rat oder hat da einer eine Idee, was man da machen könnte?

Vielen Dank im Voraus.

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Dies wäre mein Code:

Code: Alles auswählen.


 method IF_EX_WORKORDER_UPDATE~AT_SAVE.

  DATA: ls_resbd  TYPE RESBD,
        lv_index  TYPE SY-TABIX,
        lv_vbkz   TYPE RESBB-VBKZ,
        lv_af_tab TYPE TABLE OF AFVGD,
        ls_af     LIKE LINE OF lv_af_tab,
        lv_aufnr  type CAUFV-AUFNR,
        lv_found  TYPE c LENGTH 1,
        lv_lines  type i,
        lv_arbpl  TYPE c LENGTH 8.


CALL FUNCTION 'CO_BT_RESB_SET'
      EXPORTING
        aufnr_act       = is_header_dialog-aufnr
        index           = 1
      EXCEPTIONS
        entry_not_found = 1
        table_empty     = 2
        OTHERS          = 3.
    IF sy-subrc <> 0.
      RETURN.
    ENDIF.

    CALL FUNCTION 'CO_BT_AFVG_GET_ALL'
     EXPORTING
       AUFNR_IMP       = is_header_dialog-aufnr
     TABLES
       AFVGD_TAB       = lv_af_tab
     EXCEPTIONS
       NOT_FOUND       = 1
       OTHERS          = 2
              .
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.

" Prüfen ob ein Steuerschlüssel QM01 enthalten ist.
  loop at lv_af_tab INTO ls_af.
    if ls_af-steus = 'QM01'.
       lv_found = 'X'.
    endif.
  ENDLOOP.

DESCRIBE TABLE lv_af_tab LINES lv_lines.

DATA: lv_rcr01 TYPE RCR01,
      lv_afvgd TYPE AFVGD,
      lv_tab TYPE i VALUE 5.

if lv_found = 'X'.

loop at lv_af_tab INTO ls_af.

lv_lines = lv_lines - 1.

CALL FUNCTION 'CO_BT_AFVG_GET'
  EXPORTING
    aufnr_act           = is_header_dialog-aufnr
 IMPORTING
   AFVGD_EXP           = lv_afvgd
   RCR01_EXP           = lv_rcr01
* EXCEPTIONS
*   EOF                 = 1
*   OTHERS              = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

if lv_lines = 2.
  lv_arbpl = lv_rcr01-arbpl.
endif.

AT LAST.

  lv_afvgd-arbpl = lv_arbpl.


CALL FUNCTION 'CO_BT_AFVG_UPDATE'
  EXPORTING
    afvgd_new                = lv_afvgd
*   FLG_NO_SCHED             = ' '
*   FLG_NO_UVO_UPD           = ' '
    tabix_old                = 5
*   FLG_SCHED_LIGHT          = ' '
*   INS_MODE                 = ' '
*   FLG_NO_DEALLOC           = ' '
*   FLG_NO_CALC              = ' '
*   FLG_NO_REC_PROCESS       = ' '
*   I_PROT_IMP               =
*   FLG_OCM                  = ' '
*   I_FORCE_UPDATE           = ' '
 IMPORTING
   TABIX_NEW                = lv_tab
   .


ENDAT.

ENDLOOP.

ENDIF.


  endmethod.


Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Offensichtlich funktioniert das wohl leider gar nicht so. Laut diesem Artikel hier:

http://solidforms.de/aendern-von-daten- ... -mit-qrfc/

Ich habe mich da gerade mal durchgehangelt und habe das so gemacht, hat aber leider so auch nicht funkioniert. Hat sowas schon mal jemand gemacht und könnte mir da unter die Arme greifen?

Re: CO01 BADI

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Ich habe nun mir den User-Exit wie beschrieben angelegt (Siehe Bild), bloß wenn ich dann einen Breakpoint gesetzt habe und es debuggen möchte, hält er leider bei der CO01 nicht an, wenn ich speichere. Offensichtlich hängt es laut dem Artikel wohl an dem Sperrproblem, weiß jemand, ob man das vielleicht auch mit einem Badi lösen könnte oder sieht da jemand (hat jemand eine Vermutung), warum mein User-Exit nicht angesprungen wird und funktioniert?

Vergleichbare Themen

0
Antw.
756
Views
Transaktion CO01
von Gottschall » 21.01.2014 20:43 • Verfasst in ABAP® für Anfänger
2
Antw.
1834
Views
BADI
von bohne » 17.07.2006 09:27 • Verfasst in Basis
3
Antw.
3507
Views
BADI
von Rabea1103 » 27.10.2010 11:26 • Verfasst in ABAP Objects®
0
Antw.
1715
Views
BADI ADDRESS_CHECK
von Robin » 08.09.2005 15:32 • Verfasst in Dialogprogrammierung
19
Antw.
1486
Views
badi MD06
von Bright4.5 » 12.08.2021 16:58 • Verfasst in ABAP® für Anfänger

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.

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2725
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4532