Zugriff auf Außenhandelsdaten

In der Lieferung haben Sie kaum Möglichkeiten, auf die Außenhandelsdaten zuzugreifen. Wir zeigen Ihnen jedoch eine Möglichkeit des Zugriffs. Das Lesen der Daten ist mittels Funktionsbaustein einfach, das Verändern erfordert jedoch ein trickreicheres Vorgehen…

In diesem Fall stellen wir Ihnen Coding vor, mit dem Sie aus der Routine  USEREXIT_MOVE_FIELD_TO_LIPS die Außenhandelsdaten einer Position ändern können. Falls diese Position keine Außenhandelsdaten haben sollte, so kann dies jedoch erzwungen werden.

Der Grund hierfür könnte sein, dass die Ware nicht an den Warenempfänger verschickt wird, sondern ein Handelsbüro im Inland, dass die Waren weiter ins Ausland versendet. Da der Warenempfänger im Inland ist, werden keine Außenhandelsdaten angelegt.

Das folgende Coding gilt für das Release 4.6C.

ACHTUNG: Bitte beachten Sie, dass wir keine Garantie für das hundertprozentige Funktionieren geben können und nicht für Fehler haften! Bitte testen Sie deswegen Ihre Prozesse ausreichend, um sicherzustellen, dass diese Routine in Ihrem System verwendet werden kann!!

*———————————————————————-* * Aufruf aus USEREXIT_MOVE_FIELD_TO_LIPS
*———————————————————————-*
* Ändern der Statistischen Warennummer der Außenhandelsdaten
*———————————————————————-*

*– Variablendeklaration
DATA zxt_xlips     LIKE xlips  OCCURS 0 WITH HEADER LINE.
DATA zxl_eipo      LIKE eipo.
DATA zxl_xeipo     LIKE eipovb.
DATA zxt_xeipo     LIKE eipovb OCCURS 0 WITH HEADER LINE.
DATA zxv_exist     TYPE c.
DATA zxl_eipo_old  LIKE eipo.
DATA zxl_eipo_dl   LIKE eipo.
DATA zxl_item_exist.

*– Feldsymbole
FIELD-SYMBOLS <eipo>  STRUCTURE eipo   DEFAULT zxl_eipo.
FIELD-SYMBOLS <xeipo> STRUCTURE eipovb DEFAULT zxl_xeipo.
FIELD-SYMBOLS <teipo> TYPE ANY TABLE.

*– Aufruf beim Anlegen oder Ändern einer Position
IF ( t180-trtyp = ‚H‘ OR t180-trtyp = ‚V‘ ) AND NOT lips IS INITIAL.

  UNASSIGN <teipo>.

*– Lesend der Exportdaten
  CALL FUNCTION ‚EXPIMP_ITEM_DATA_READ‘
       EXPORTING
            exnum              = likp-exnum
            expos              = lips-posnr
       IMPORTING
            e_line_item_exists = zxl_item_exist.

  IF zxl_item_exist = space.
*– Keine Exportdaten vorhanden: Füllen
    PERFORM lips_fuellen_export(sapfv50p).
  ELSE.
*– Exportdaten sind vorhanden: Bereitstellen
    PERFORM eipo_bereitstellen(saplv50e).
  ENDIF.

*– Dirty Assign auf Aussenhandelspositionsdaten in FUGR V50E
  ASSIGN (‚(SAPLV50E)XEIPO[]‘) TO <teipo>.

*– Exportdaten bearbeiten
  IF <teipo> IS ASSIGNED.
    LOOP AT <teipo> ASSIGNING <xeipo>.
      CHECK <xeipo>-expos = lips-posnr.
*– setzen der Stat. Warennummer 
      <xeipo>-stawn = ‚Tricktresor‘.
      <xeipo>-herkl = ‚FR‘.
      <xeipo>-herkr = ’02‘.
      <xeipo>-exprf = ‚10000‘.
      <xeipo>-exart = ’11‘. 
      EXIT.
    ENDLOOP.
  ENDIF.

*– Falls noch keine EXNUM im Lieferkopf steht, dies nun nachholen:
  READ TABLE xlikp WITH KEY vbeln = likp-vbeln.
  IF sy-subrc = 0 AND xlikp-exnum IS INITIAL.
    xlikp-exnum = likp-exnum.
    MODIFY xlikp INDEX sy-tabix.
  ENDIF.
ENDIF.

Enno Wulff
follow me