BAPI_HU_PI_READ liefert veraltete Daten Thema ist als GELÖST markiert

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

BAPI_HU_PI_READ liefert veraltete Daten

Beitrag von RaCDigger (ForumUser / 38 / 4 / 7 ) »
Hallo zusammen,

ich habe ein seltsames Phänomen bei der Verwendung des Funktionsbausteins BAPI_HU_PI_READ.

Zum Hintergrund:
Ich habe in der Migo einen Exit (IF_EX_MB_MIGO_BADI~POST_DOCUMENT) in dem soll beim Buchen die Verpackungsvorschriften zu dem zu buchenden Material lesen.
Das funktioniert auch, aber wenn man die Migo nicht verlässt und in dieser Zeit die Verpackungsvorschrift ändert wird beim erneuten Buchen desselben Materials die alte Verpackungsvorschrift vom Funktionsbaustein zurück geliefert.
Sprich der Fuba scheint irgendwie etwas aus dem Puffer zu holen, aber ich habe leider noch keine Möglichkeit gefunden ihm das abzugewöhnen.

Ich dachte schon das ich evtl. Variablen nicht gecleared habe, aber die Variablen sind in der Methode gekapselt (lokal) und sollten eigentlich ja je bei jedem neuen Aufruf der Methode leer sein (wobei ich auch das schon debugged habe).

Hier ein ausschnitt des Codes:

Code: Alles auswählen.

method if_ex_mb_migo_badi~post_document.

    "----> Lokale Daten deklaration

    types:  begin of ty_lgfsb,
              matnr type matnr,
              lgfsb type lgfsb,
            end of ty_lgfsb,

            tty_lgfsb type table of ty_lgfsb with key matnr.

    data: l_pobjid   type pl_pobjid,

          lt_hupos   type table of bapihupiposition,
          lt_return  type table of bapiret2,

          lt_leihgut type ztty_vph_leihgut,
          lt_lgfsb   type tty_lgfsb.

    "<----

    loop at it_mseg assigning field-symbol(<fs_mseg>).

      if <fs_mseg>-bwart = '101'.

        select single pkp~pobjid from kotp410 as ktp
          inner join kondp as kdp
            on kdp~knumh = ktp~knumh
          inner join packkp as pkp
            on pkp~packnr = kdp~packnr
          into l_pobjid
          where kappl = 'PO'
            and kschl = 'RCPT'
            and matnr = <fs_mseg>-matnr
            and werks = <fs_mseg>-werks
            and lifnr = <fs_mseg>-lifnr
            and datbi >= sy-datlo
            and datab <= sy-datlo.

        if sy-subrc = 0.
  
          clear: lt_hupos, lt_return.

          call function 'BAPI_HU_PI_READ'
            exporting
              pikey     = l_pobjid
            tables
              positions = lt_hupos
              return    = lt_return.
		...
		endif.
		...
	  endif.
		...
	endloop.
	...
endmethod.
Beim Aufruf des FuBa's sind die Tabellen leer und dieser liefert dann die falsche (alte) Verpackungsvorschrift zurück.

Der Fall kommt zwar selten vor, aber leider ist die gängige Praxis von den Anwendern bei Schichtbeginn wird die MIGO gestartet und bei Schichtende wird sich ausgelogt.
In der Zwischenzeit kann es dann leider vorkommen das sich eine Verpackungsvorschrift ändert.


Re: BAPI_HU_PI_READ liefert veraltete Daten

Beitrag von JHM (Top Expert / 1146 / 1 / 181 ) »
Das BAPI ruft weitere FuBas auf, die wiederum Daten in Funktionsgruppen globalen Variablen puffern.
Ruf mal vor dem BAPI CALL den FuBa VHUPODB_PACKOBJ_REFRESH_BUFFER ohne weitere Parameter auf. Das sollte dein Problem lösen.

Ansonsten den BAPI CALL in eigene LUW auslagern IN BACKGROUND TASK AS SEPARATE UNIT. Dann werden die Funktionsgruppen immer wieder initial geladen.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
RaCDigger

Gruß Hendrik

Re: BAPI_HU_PI_READ liefert veraltete Daten

Beitrag von RaCDigger (ForumUser / 38 / 4 / 7 ) »
Hallo Hendrik,

vielen Dank für den Fuba, den hatte ich nicht gefunden.
Funktioniert nun.

Gruß
Sven

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Report in ein Programm integrieren
vor 4 Stunden von kaim77 3 / 37
SAP Logon Theme ermitteln
vor 7 Stunden von black_adept 3 / 40

Vergleichbare Themen

SALV - get_selected_rows( ) liefert veraltete Einträge
von zeWa » 20.06.2014 13:17
read table liefert sy-subrc = 4
von c oco » 04.04.2011 17:09
Webservice liefert keine Daten mehr zurück
von donossi » 08.06.2012 16:07
Kurzdump Bapi BAPI_PO_CREATE1 - Dump Überg. Kont.daten
von ralf.wenzel » 13.12.2007 12:22
veraltete Varianten
von Mrs. Hilflos » 20.07.2004 12:44