Zum Hauptinhalt springen

Referenznummer wird abgeschnitten (Rechnung)

Für die Rechnung wird im SAP Standard nur die ersten 20 Zeichen der Bestellreferenz aus dem Vertriebsbeleg übernommen, obwohl bis zu 35 Zeichen im Vertriebsbeleg hinterlegt werden dürfen. Wir korriegieren das hier.

Problemstellung

  1. Gehe in die Transaktion SFP
  2. Öffne die Schnittstelle des Rechnungsformulars
  3. Gehe auf Formularschnittstelle -> Import
  4. Doppelklick auf Typbezeichnung von INVOICE_S_PRT_INTERFACE
  5. Doppelklick auf Komponententyp INVOICE_S_PRT_HEAD_DETAIL
  6. Doppelklick auf Komponententyp VBDKR
  7. Suche nach Komponente BSTNK (Strg + F)
  8. Hier sehen wir, dass die Komponenten BSTNK vom Typ CHAR mit der Länge 20 ist.

Lösung

Die einfachere Lösung wäre den Typ der Komponente BSTNK zu wechseln, von BSTNK nach BSTKD. Das allein reicht aber nicht. DIe bessere Lösung ist, die Struktur VBDKR zu appenden mit ZZ_BSTNK. Das ist das was wir hier machen.

  1. Sofern nicht bereits geschehen durchlaufe alle Schritte laut Problemstellung.
  2. Klick auf Button Append-Struktur... und gebe einen Z-Namen ein (z.B.: ZSD_RECHNUNG_H) und drück Enter. Sollte bereits ein Append vorhanden sein, kann ggf. auch dieses genutzt werden.
  3. Kurzbschreibung eingeben und neue Komponente anlegen
    • Komponente: ZZ_BSTNK
    • Komponententyp: BSTKD
  4. Speichern drücken und Änderung in Transport aufnehmen
  5. Menü: Zusätze -> Erweiterungskategorie... und Popup bestätigen
  6. erweiterbar und zeichenartig auswählen und Übernehmen klicken.
  7. Erneut Speichern und Prüfen klicken. Es sollte keine Warnung hochkommen!
  8. Aktivieren
  9. Wir gehen zurück in die Formularschnittstelle und dort ins Coding Initialisierung.
  10. Dort kopieren wir folgenden QUelltext, möglichst nah zu Beginn des Codings:
* Längere Referenznummer
BIL_PRT_COM-HEAD_DETAIL-VBDKR-ZZ_BSTNK = BIL_PRT_COM-HEAD_DETAIL-VBDKR-BSTNK.
IF BIL_PRT_COM-HEAD_DETAIL-VBDKR-VBELN_VAUF IS NOT INITIAL.
SELECT SINGLE BSTKD FROM vbkd
INTO BIL_PRT_COM-HEAD_DETAIL-VBDKR-ZZ_BSTNK
WHERE vbeln = BIL_PRT_COM-HEAD_DETAIL-VBDKR-VBELN_VAUF
AND posnr = ''
.
ENDIF.
  1. Prüfen (ggf. Fehler korrigeren) und aktivieren.
  2. Wir gehen in den Kontext des Rechnungsformulars (Transaktion SFP und Rechnungsformular im Ändern-Modus öffnen)
  3. Im Kontext Struktur BIL_PRT_COM markieren und Aktualisieren drücken.
    tip

    Wenn Strukturen, welche in Adobe Formularen genutzt werden, veränder werden, so bekommt das Formular diese Änderung nicht mit. Die Änderungen müssen daher manuell ausgelöst werden. Dies führt dazu, dass auch weitere Änderungen übernommen werden. Prüft daher vorher das Ende von HEAD_DETAIL-VBDKR und ITEM_DETAIL-DATA-VBDPR und deaktiviert alle zusätzlichen neuen Felder.

Achtung

Wenn ihr die Änderungen nicht beachtet, könnten neue Währungsfelder aufgenommen werden, die keine gültige Verknüpfung zum Währungsfeld haben. Diese neuen Felder einfach inaktivieren.
Und: Niemals Felder in Strukturen der Formulare löschen. Das gibt "schöne" Kurzdumps im Produktivsystem!

  1. Nach der Aktualisierung sollte die Nachricht BIL_PRT_COM wurde aktualisiert erscheinen.
  2. Speichern und ins Layout wechseln
  3. In der Designansicht des Formulars, gehen wir zur Referenznummer und Ändern die Bindung zu: $record.BIL_PRT_COM.HEAD_DETAIL.VBDKR.ZZ_BSTNK
  4. Speichern, zurück in den Kontext und aktivieren
  5. Die Änderung ist nun testbereit.
    tip

    Da wir ein neues Feld im Kontext aufgenommen haben, kann diese Einstellung nicht über die Vorschaufunktion des ALC-Designer getestet werden.