BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

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

BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

ich benörtige bitte euer Hilfe bei dem Funktionsbaustein "CSAP_MAT_BOM_MAINTAIN". Ziel ist es eine Baugruppe von der verwendung 3 auf die verwendung 6 zu kopieren. Dazu lege ich erst den Stücklistenkopf an, was ohne probleme Funktioniert.
Danach möchte ich Position für Position mit der Richtigen Änderungsnummer anlegen.
Mein Problem ist das die erste Position sauber angelegt wird, aber weiter Positionen nicht angelegt werden.

Im Log der SLG1 erhalte ich die im Anhang befindliche Fehlermeldung. Das Problem scheint wohl der Aufruf "CSAP_MAT_BOM_CLOSE" zu sein. Hier wird beim hinzufügen des ersten Datensatz Sy-SUBRC = 1 geworfen. Somit ist die BOM nicht geschlossen und kann für Loop 2 natürlich nicht geöffnet werden.

Ich verstehe jedoch an dieser Stelle das verhalten nicht. Wäre super wenn mir jemand helfen könnte was ich falsch mache.

Hier mal mein ABAP - Code.

Code: Alles auswählen.

*- Datenbankprotokoll eröffnen
        CALL FUNCTION 'CALO_INIT_API'
          EXCEPTIONS
            log_object_not_found     = 1
            log_sub_object_not_found = 2
            other_error              = 3
            others                   = 4.

        CALL FUNCTION 'CSAP_MAT_BOM_OPEN'
          EXPORTING
            MATERIAL         = lv_matnr_merk
            PLANT            = ''
            BOM_USAGE        = '6'
            ALTERNATIVE      = '1'
            VALID_FROM       = lv_datum
            CHANGE_NO        = lv_aennr
*           REVISION_LEVEL   =
*           FL_NO_CHANGE_DOC = ' '
          IMPORTING
*           O_STKO           =
            FL_WARNING       = flg_warning
          TABLES
            T_STPO           = tstp3
            T_DEP_DATA       = tdep_data
            T_DEP_DESCR      = tdep_descr
            T_DEP_ORDER      = tdep_order
            T_DEP_SOURCE     = tdep_source
            T_DEP_DOC        = tdep_doc
          EXCEPTIONS
            ERROR            = 1
            OTHERS           = 2.
        IF SY-SUBRC <> 0.
* Implement suitable error handling here
        ENDIF.

*        CLEAR tstp3[].

        tstp3-ITEM_CATEG    = wa_t_stpo-ITEM_CATEG.
        tstp3-item_no       = wa_t_stpo-item_no.
        tstp3-component     = wa_t_stpo-component.
        tstp3-comp_qty      = wa_t_stpo-comp_qty.
        tstp3-comp_unit     = wa_t_stpo-comp_unit.
        tstp3-item_text1    = wa_t_stpo-item_text1.

        APPEND tstp3.

        CLEAR tstko.

        CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
          EXPORTING
            MATERIAL            = lv_matnr_merk
            PLANT               = ''
            BOM_USAGE           = '6'
            ALTERNATIVE         = '1'
            VALID_FROM          = lv_datum
            CHANGE_NO           = lv_aennr
*           REVISION_LEVEL      =
            I_STKO              = tstko
*           FL_NO_CHANGE_DOC    = ' '
*            FL_COMMIT_AND_WAIT  = 'X'
            FL_CAD              = 'X'
*           FL_BOM_CREATE       = ' '
            FL_NEW_ITEM         = 'X'
*           FL_COMPLETE         = ' '
*           FL_DEFAULT_VALUES   = 'X'
*           FL_IDENTIFY_BY_GUID = ' '
          IMPORTING
            FL_WARNING          = flg_warning
*           O_STKO              =
          TABLES
            T_STPO              = tstp3
            T_DEP_DATA          = tdep_data
            T_DEP_DESCR         = tdep_descr
            T_DEP_ORDER         = tdep_order
            T_DEP_SOURCE        = tdep_source
            T_DEP_DOC           = tdep_doc
*           T_DOC_LINK          =
*           T_DMU_TMX           =
*           T_LTX_LINE          =
*           T_STPU              =
          EXCEPTIONS
            ERROR               = 1
            OTHERS              = 2.
        IF SY-SUBRC <> 0.

        ENDIF.

        CALL FUNCTION 'CSAP_MAT_BOM_CLOSE'
          EXPORTING
            FL_COMMIT_AND_WAIT = 'X'
          IMPORTING
            FL_WARNING         = flg_warning
          EXCEPTIONS
            ERROR              = 1
            OTHERS             = 2.
        IF SY-SUBRC <> 0.

        ENDIF.

Grüße, Carlie

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


Re: BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
Ich habe damals eine Wartezeit einbauen müssen.
Probier mal bitte :

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*&      Form  maint_bom
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM maint_bom.

* für BOM_OPEN
  DATA: BEGIN OF tstpo2 OCCURS 0.
          INCLUDE STRUCTURE stpo_api02.
  DATA: END OF tstpo2.

  DATA ls_tstpo2 TYPE stpo_api02.

  DATA lv_matnr TYPE matnr.

  DATA lv_ptext(80).
  DATA lv_txt(6).
  DATA lv_cnt TYPE i.

  CHECK NOT <p>-component IS INITIAL.

* Böse Falle !
  DO 100 TIMES.
    WAIT UP TO 1 SECONDS.

    CALL FUNCTION 'CSAP_MAT_BOM_OPEN'
      EXPORTING
        material         = <p>-component
        plant            = p_werk
        bom_usage        = p_stlan
        valid_from       = gv_heute
*       change_no        = <p>-aennr
        fl_no_change_doc = 'X'
      TABLES
        t_stpo           = tstpo2
      EXCEPTIONS
        error            = 1
        OTHERS           = 2.

    IF sy-subrc = 0. " Test(ohne wait) erreicht 4-5 durchläufe !
      EXIT.
    ENDIF.

  ENDDO.

  IF sy-subrc = 0.
    i = lines( it_bom ).

    LOOP AT it_bom.
      lv_cnt = sy-tabix.
      CLEAR ls_tstpo2.


      MOVE-CORRESPONDING it_bom TO ls_tstpo2.
*      ls_tstpo2-item_categ = 'L'.         "Mußeingabe

      IF ls_tstpo2-bulk_mat = 'X' AND ls_tstpo2-item_categ = 'L'.
        ls_tstpo2-rel_cost = space.
        ls_tstpo2-rel_engin = space.
        ls_tstpo2-rel_pmaint = space.
        ls_tstpo2-rel_sales = space.
        ls_tstpo2-rel_prod = 'X'.
      ENDIF.

*        CLEAR ls_tstpo2-BULK_MAT.

      IF ls_tstpo2-item_categ = 'D'.
        ls_tstpo2-document = ls_tstpo2-component.
        CLEAR ls_tstpo2-component.
        CLEAR ls_tstpo2-bulk_mat.
        ls_tstpo2-doc_type = 'SEG'.
      ENDIF.

      CALL FUNCTION 'CSAP_BOM_ITEM_MAINTAIN'
        EXPORTING
          i_stpo = ls_tstpo2
        EXCEPTIONS
          error  = 1
          OTHERS = 2.

      IF sy-subrc <> 0.
        IF ls_tstpo2-component IS INITIAL.
          PERFORM write_log USING ls_tstpo2-document 'could not be saved'(009).
        ELSE.
          PERFORM write_log USING ls_tstpo2-component 'could not be saved'(009).
        ENDIF.

        rc = 1.
      ENDIF.


* Fortschrittsanzeige
      lv_ptext = 'bearbeite Material'.
      CONCATENATE lv_ptext ls_tstpo2-component INTO lv_ptext
      SEPARATED BY space.

      WRITE lv_cnt TO lv_txt.
      CONDENSE lv_txt NO-GAPS.
      CONCATENATE lv_ptext '-' lv_txt 'von' INTO lv_ptext
      SEPARATED BY space.

      WRITE i TO lv_txt.
      CONDENSE lv_txt NO-GAPS.
      CONCATENATE lv_ptext lv_txt INTO lv_ptext
      SEPARATED BY space.


      CALL FUNCTION 'PROGRESS_INDICATOR'
        EXPORTING
          i_text               = lv_ptext
          i_processed          = lv_cnt
          i_total              = i
          i_output_immediately = 'X'.

    ENDLOOP.

    CALL FUNCTION 'CSAP_MAT_BOM_CLOSE'
      EXCEPTIONS
        error  = 1
        OTHERS = 2.

  ELSE.
    PERFORM write_log USING <p>-component 'could not be Opened'.
  ENDIF.

ENDFORM.                    "maint_bom
gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

erst einmal danke für deine Hilfe. IDas komische in meinem fall war das ich den FUBA "BOM_OPEN" weglassen musste. jetzt laufe ich jedoch in ein neues problem. Ich lese z.b 10 Baugruppen ein. irgend wann wird die verarbeitung abgebrochen. Der Verbucher scheint beim verbuchen der einzelnen BOM Positionen nicht nachzukommen. Der Abbruch erfolgt auch immer an unterschiedlichen stellen.

Folgende Meldungen erhalte ich.

Verbuchungsfehler: Tabelle AEPF Funktion I Returncode 4
Fehlercode: CC-127

So richtig verstehe ich den fehler noch nicht. Es muss jedoch mit dem Änderungsdienst zusammenhängen.

Vielleicht kann nochmals jemand Hilfestellung geben.

Gruß

Re: BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo.

das Problem ist Lokalisiert. ich habe den folgenden FUBA in einem Loop aufgerufen. Was letztlich irgend wann zu der beschriebenen Fehlermeldung führt.

Code: Alles auswählen.

 CALL FUNCTION 'ECM_PROCESSOR_INIT'
      EXPORTING
*        topmatnr       = wa_matnr-matnr
        batchlauf      = 'X'
        batch_aeef     = h_aeef
      TABLES
        parameter      = l_t_param
      EXCEPTIONS
        exit_in_dynpro = 1.

    CHECK sy-subrc = 0.

    LOOP AT so_werks.
      MOVE so_werks-low TO lv_werk.
    ENDLOOP.
Habe den Code jetzt außerhalb des Loop platziert. Jetzt läuft das Programm sauber durch.

Dennoch gibt es eine weiter frage. An den BOM Positionen hängt scheint etwas mit der menge nicht zu stimmen. Schaue ich in der CS03 habe ich die menge "1,700". In der CS11 jedoch bekomme ich "0,002" angezeigt. Muss die Menge in einem bestimmten Format vorliegen.

Grüße

Re: BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Das problem ist gelöst.

Re: BOM Änderung "CSAP_MAT_BOM_MAINTAIN"

Beitrag von deejey (Specialist / 419 / 128 / 45 ) »
Glaube das mit den Mengen passiert immer dann wenn das referenzierte Mengeneinheitsfeld leer ist

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2034
Views
SE 11 Maintain Generator
von teerock » 28.06.2004 13:10 • Verfasst in ABAP® Core
4
Antw.
1141
Views
cl_md_bp_maintain=>maintain / Update BP
von littleJohn » 02.05.2023 10:31 • Verfasst in SAP HANA für Anfänger
4
Antw.
4573
Views
Material Maintain Dark
von queen » 09.06.2008 16:10 • Verfasst in ABAP® für Anfänger
2
Antw.
2146
Views
Anlage Business Partner mit cl_md_bp_maintain=>maintain ohne Vertriebsbereichssicht
von ewx » 22.04.2021 14:11 • Verfasst in ABAP® Core
1
Antw.
1549
Views
Anderung Steuersätze
von Legende » 10.04.2007 14:20 • Verfasst in Financials

Über diesen Beitrag


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

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 5 Tagen von jocoder 2 / 73

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.

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 5 Tagen von jocoder 2 / 73

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 132
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 166