Verpacken Material in einem Transport

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Verpacken Material in einem Transport

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Hallo, heute mal wieder ein Problem zum Thema Verpacken.

Ich möchte Lieferpositionen direkt im Transport verpacken. Im GUI ist das ohne Probleme möglich. Da im betreffen Werk kein WM aktiv ist, spreche ich nicht von bestandsgeführten HU's, sondern nur Versandelementen in den Belegen.

Ich habe es mit folgender Folge ausprobiert:

V51P_FILL_GT
HU_PACKING_AND_UNPACKING
HU_PACKING_UPDATE

Das Material wird auf die Ziel im Transport verpackt, aber auch wird der Packstatus der Lieferposition nicht richtig geupdated, so dass im Packdialog das Material sowohl das verpackt als auch als zu verpacken angezeigt.

Aufgrund meiner Erkenntnisse in einem anderem -Faden http://www.abapforum.com/forum/viewtopi ... =2&t=20964 habe ich dann noch versucht den DELIVERY_UPDATE hinterher zu schicken, aber das scheint nicht zu funktionieren.

Parallel habe ich den Fuba SD_SHIPMENT_PROCESS_EXT_CHANGE ausprobiert (ist inhaltlich dasselbe wie der BAPI BAPI_SHIPMENT_CHANGE), den ich anderer Stelle bereits zum Verpacken von Liefer-HUs verwendet habe. Der Fuba bricht mit HUGENERAL 056 ab. In diversen Foren habe ich gesehen, dass einige das Problem hatten, aber keine Lösung gefunden.
In meinem konkreten Fall liegt es daran, dass in der internen Tabelle ACTIVITES-SHIPPING_UNTS-CONTENT-DATA das Werk und der Lagerort nicht gepflegt ist. Der Versuch im FuBa V51P_FIND_MATERIAL die globale Tabelle GT_V51VP zu lesen schlägt fehl.

Code: Alles auswählen.

IF NOT IS_V51VP-MATNR IS INITIAL AND IF_FAST_ENTRY IS INITIAL.
    READ TABLE GT_V51VP INTO ES_MATERIAL_ITEM
                        WITH KEY MATNR = IS_V51VP-MATNR
                                 CHARG = IS_V51VP-CHARG
                                 WERKS = IS_V51VP-WERKS
                                 LGORT = IS_V51VP-LGORT
                                 bestq = is_v51vp-bestq
                                 sobkz = is_v51vp-sobkz      "SP_611029
                                 sonum = is_v51vp-sonum.
    IF SY-SUBRC IS INITIAL.
      EF_INDEX = SY-TABIX.
      EXIT.
    ENDIF.
ENDIF.

Ich habe aber auch keine Möglichkeit gefunden Werk und Lagerort weiterzugeben und im Mapping der Daten in der Form-Routine map_bapi_change_to_activities wird einfach kein Werk oder Lagerort übergeben - selbst wenn die Daten da wären.

Hat da noch irgendeiner eine Idee oder einen Tipp?

Ansonsten müsste ich die Lieferposition auf eine Dummy-HU packen, die ich dann mit dem Fuba SD_SHIPMENT_PROCESS_EXT_CHANGE auf den Transport verpackt werden. Das wäre etwas unschön...

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


Re: Verpacken Material in einem Transport

Beitrag von larsi (ForumUser / 47 / 2 / 11 ) »
Hallo Barney,

vorab: deine Begriffsverwendung irritiert mich etwas, denn:

- bestandsgeführte HUs sind für mich HUs, die auf einem HU-pflichtigen Lagerort liegen (T001L-XHUPF = 'X')
- nicht bestandsgeführte HUs sind für mich HUs, die Bestand aus nicht HU-pflichtigen Lagerorten enthalten (T001L-XHUPF = ' ')

Ich kann das ganze also auch ohne WM machen. Wenn ich WM im Einsatz habe, habe ich meist immer auch bestandsgeführte HUs. Aber das nur nebenbei - vielleicht bin ich ja da auch auf'm Holzweg...

Zum eigentlichen Thema: Hast Du Dir mal angeschaut, wie der Verpackungsdialog in der VT01N/VT02N aufgerufen wird? Ich denke auf jeden Fall muss der Baustein HU_PACKING_TRANSPORT aufgerufen werden (vermutlich sogar zwei mal: einmal zum Initialisieren und ein zweites Mal zum Abschließen des Verpackens). Ich würde daher mal die Bausteine SD_SHIPMENT_PROCESS oder auch nur SD_SHIPMENT_PROCESS_HU direkt probieren. Evtl. kannst Du bei denen besser dafür sorgen, dass Werk/Lagerort in der ACTIVITIES-Struktur gefüllt sind. Letztendlich werden die zwar auch über den SD_SHIPMENT_PROCESS_EXT_CHANGE gerufen, aber manchmal muss eben einfach eine Ebene tiefer einsteigen ;-)

Allerdings frage ich mich gerade noch, wozu Du überhaupt Werk/Lagerort benötigst: im Prinzip willst Du doch bloß eine Lieferscheinposition in eine Transport-HU verpacken. Dafür müsste es ja beim Aufruf des SD_SHIPMENT_PROCESS_EXT_CHANGE genügen, der zu erzeugenden HU-Pos. die Lieferungsnummer und -pos. mitzugeben, alles weitere kann/muss das System doch dann aus der Lieferungspos. übernehmen.

Existiert zu diesem Zeitpunkt eigentlich bereits die HU im Transport oder versuchst Du quasi diese im gleichen Schritt auch erst anzulegen?

Viele Grüße
Lars

Re: Verpacken Material in einem Transport

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Barney hat geschrieben: Aufgrund meiner Erkenntnisse in einem anderem -Faden http://www.abapforum.com/forum/viewtopi ... =2&t=20964 habe ich dann noch versucht den DELIVERY_UPDATE hinterher zu schicken, aber das scheint nicht zu funktionieren.
Ich habe Dir in dem anderen Thread geantwortet. Ich habe dort den Fuba ''WS_DELIVERY_UPDATE_2' benutzt und es hatte damit auch vor Jahren funktioniert.

Re: Verpacken Material in einem Transport

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Unit605 hat geschrieben:
Barney hat geschrieben: Aufgrund meiner Erkenntnisse in einem anderem -Faden http://www.abapforum.com/forum/viewtopi ... =2&t=20964 habe ich dann noch versucht den DELIVERY_UPDATE hinterher zu schicken, aber das scheint nicht zu funktionieren.
Ich habe Dir in dem anderen Thread geantwortet. Ich habe dort den Fuba ''WS_DELIVERY_UPDATE_2' benutzt und es hatte damit auch vor Jahren funktioniert.
Hi Unit605,

Danke für die Antwort, aber in Deinem Beispielprogramm hast Du eine Auslieferung verpackt. In diesem Umfeld funktioniert der WS_DELIVERY_UPDATE wunderbar. In meinem konkreten Fall möchte ich aber im Transport verpacken. Da bin ich mit dem WS_DELIVERY_UPDATE nicht weitergekommen...
:(

Re: Verpacken Material in einem Transport

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
Hallo Larsi,

erstmal Danke für Deine Antwort.
larsi hat geschrieben:Hallo Barney,

vorab: deine Begriffsverwendung irritiert mich etwas, denn:

- bestandsgeführte HUs sind für mich HUs, die auf einem HU-pflichtigen Lagerort liegen (T001L-XHUPF = 'X')
- nicht bestandsgeführte HUs sind für mich HUs, die Bestand aus nicht HU-pflichtigen Lagerorten enthalten (T001L-XHUPF = ' ')

Ich kann das ganze also auch ohne WM machen. Wenn ich WM im Einsatz habe, habe ich meist immer auch bestandsgeführte HUs. Aber das nur nebenbei - vielleicht bin ich ja da auch auf'm Holzweg...
Meine Begrifflichkeiten ist meinem aktuellen Umfeld geschuldet: Hier wird nur zwischen IM und WM unterschieden und im WM zwischen HU-pflichten Lagerorten und nicht-HU-pflichtigen Lagerorten.
larsi hat geschrieben: Ich würde daher mal die Bausteine SD_SHIPMENT_PROCESS oder auch nur SD_SHIPMENT_PROCESS_HU direkt probieren.
Danke, das werde ich mir mal anschauen.
larsi hat geschrieben: Allerdings frage ich mich gerade noch, wozu Du überhaupt Werk/Lagerort benötigst: im Prinzip willst Du doch bloß eine Lieferscheinposition in eine Transport-HU verpacken. Dafür müsste es ja beim Aufruf des SD_SHIPMENT_PROCESS_EXT_CHANGE genügen, der zu erzeugenden HU-Pos. die Lieferungsnummer und -pos. mitzugeben, alles weitere kann/muss das System doch dann aus der Lieferungspos. übernehmen.
Das musst Du mal die SAP fragen. Ich bin ähnlich naiv rangegangen wie Du. Wenn ich die Lieferposition brauche ich keine weiteren Informationen. Aber wenn SAP die Struktur füllt, dann wird nicht die Lieferposition gelesen, sondern die Informationen 1:1 aus der FuBa-Schnittstelle in die Struktur VERPO kopiert (passiert im FuBa MAP2I_BAPIDLVHDUNITM_TO_VERPO). Und da gibt es kein Werk/Lagerort. Und später findet er im Fuba V51P_FIND_MATERIAL im entsprechenden READ TABLE aus der globalen Tablle die Materialposition nicht, weil ihm im READ TABLE das Werk/Lagerort fehlt. Ich habe die Übergabe der internen Tabelle ACTIVITES-SHIPPING_UNTS-CONTENT-DATA über die verschiendenen Ebenen bis zum Fuba MAP2I_BAPIDLVHDUNITM_TO_VERPO zurück verfolgt und keine Möglichkeit gefunden, die fehlenden Daten anzureichern.
larsi hat geschrieben:
Existiert zu diesem Zeitpunkt eigentlich bereits die HU im Transport oder versuchst Du quasi diese im gleichen Schritt auch erst anzulegen?
Ja, ich habe die HU im Vorfeld über BAPI_HU_CREATE und BAPI_HU_CHANGE_HEADER angelegt und zugeordnet. Ich möchte also wirklich nur verpacken.

Re: Verpacken Material in einem Transport

Beitrag von Barney (Specialist / 104 / 20 / 9 ) »
So, ich hatte jetzt die Faxe dicke... Ich habe es nun mit dem Holzhammer gelöst und einen eigenen Funktionsbaustein geschrieben, der eine Kopie des SD_SHIPMENT_PROCESS_EXT_CHANGE ist mit allen Formroutinen. Hinter der Formroutine fill_hun_hdr_data_change habe dann eine eigene Formroutine hinzugefügt:

Code: Alles auswählen.

FORM enrich_ls_hun_wa  TABLES   t_hun_itm STRUCTURE bapishipmenthdunitem
                       CHANGING p_hum_wa TYPE v56e_shipping_unit.

  DATA lt_data    TYPE verpo OCCURS 0.
  DATA ls_data    TYPE verpo.

  lt_data    = p_hum_wa-content-data.

  LOOP AT lt_data INTO ls_data.

    READ TABLE t_hun_itm INTO DATA(ls_hun_itm)
                         WITH KEY hdl_unit_exid = ls_data-exidv.

    SELECT SINGLE werks, lgort FROM lips
                               INTO (@ls_data-werks, @ls_data-lgort )
                              WHERE vbeln EQ @ls_hun_itm-deliv_numb
                                AND posnr EQ @ls_hun_itm-deliv_item.

    MOVE ls_hun_itm-deliv_numb TO ls_data-vbeln.
    MOVE ls_hun_itm-deliv_item TO ls_data-posnr.
    MOVE ls_hun_itm-sales_unit TO ls_data-vrkme.

    MODIFY lt_data FROM ls_data INDEX sy-tabix.

  ENDLOOP.

  p_hum_wa-content-data = lt_data.

ENDFORM.
Und schwups - wird der Transport perfekt verpackt.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
771
Views
1
Antw.
1550
Views
fetch material group,material account 3010 and Plant(WERKS)
von dragospirnut1 » 05.07.2017 12:27 • Verfasst in ABAP Objects®
0
Antw.
2946
Views
1
Antw.
2311
Views
RFC_READ_TABLE in BAPI verpacken?
von Martin77 » 29.04.2009 08:17 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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 / 75

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 / 75

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