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
- Gehe in die Transaktion
SFP
- Öffne die Schnittstelle des Rechnungsformulars
- Gehe auf Formularschnittstelle -> Import
- Doppelklick auf Typbezeichnung von
INVOICE_S_PRT_INTERFACE
- Doppelklick auf Komponententyp
INVOICE_S_PRT_HEAD_DETAIL
- Doppelklick auf Komponententyp
VBDKR
- Suche nach Komponente
BSTNK
(Strg
+F
) - Hier sehen wir, dass die Komponenten
BSTNK
vom TypCHAR
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.
- Sofern nicht bereits geschehen durchlaufe alle Schritte laut Problemstellung.
- Klick auf Button
Append-Struktur...
und gebe einen Z-Namen ein (z.B.:ZSD_RECHNUNG_H
) und drückEnter
. Sollte bereits ein Append vorhanden sein, kann ggf. auch dieses genutzt werden. - Kurzbschreibung eingeben und neue Komponente anlegen
- Komponente:
ZZ_BSTNK
- Komponententyp:
BSTKD
- Komponente:
- Speichern drücken und Änderung in Transport aufnehmen
- Menü: Zusätze -> Erweiterungskategorie... und Popup bestätigen
- erweiterbar und zeichenartig auswählen und
Übernehmen
klicken. - Erneut Speichern und Prüfen klicken. Es sollte keine Warnung hochkommen!
- Aktivieren
- Wir gehen zurück in die Formularschnittstelle und dort ins
Coding Initialisierung
. - 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.
- Prüfen (ggf. Fehler korrigeren) und aktivieren.
- Wir gehen in den Kontext des Rechnungsformulars (Transaktion
SFP
und Rechnungsformular im Ändern-Modus öffnen) - Im Kontext Struktur
BIL_PRT_COM
markieren und Aktualisieren drücken.tipWenn 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
undITEM_DETAIL-DATA-VBDPR
und deaktiviert alle zusätzlichen neuen Felder.
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!
- Nach der Aktualisierung sollte die Nachricht BIL_PRT_COM wurde aktualisiert erscheinen.
- Speichern und ins Layout wechseln
- In der Designansicht des Formulars, gehen wir zur Referenznummer und Ändern die Bindung zu:
$record.BIL_PRT_COM.HEAD_DETAIL.VBDKR.ZZ_BSTNK
- Speichern, zurück in den Kontext und aktivieren
- 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.