Adressenaufbereitung und Funktionsbaustein ADDRESS INTO PRINTFORM

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Adressen werden bei den Formularen gewöhnlich nicht vom Entwickler aufbereitet und ausgegeben. Die Anforderungen der Länderspezifika bezüglich der Adressaufbereitung sind sehr komplex. Die Formular Entwicklungssysteme SAPscript, Smart Forms und Adobe Forms verwenden jeweils spezifische Adressobjekte. Diese Adressobjekte verwenden jedoch alle intern den SAP-Funktionsbaustein "ADDRESS_INTO_PRINTFORM".

Zentrale Adressverwaltung

  • Die Funktionen des Adresse-Knotens basieren auf der ZAV (= Zentrale Adress-Verwaltung) im SAP-System. Ab Basis-Release 6.1 wird dafür der Name BAS (= Business Address Services) verwendet.
  • Der Entwickler braucht dabei nicht die einzelnen Zeilen der Adresse ausgeben, sondern dem Adressknoten lediglich eine Adressnummer, bzw. eine Adressnummer und Personennummer übergeben.

Adressobjekt in Adobe Forms

Adressobjekt in Smart Forms

Adressobjekt in SAPscript

Funktionsbaustein ADDRESS_INTO_PRINTFORM

Muster

CALL FUNCTION 'ADDRESS_INTO_PRINTFORM'
" EXPORTING
"   ADRSWA_IN                            =
"   ADDRESS_1                            =
"   ADDRESS_2                            =
"   ADDRESS_3                            =
"   ADDRESS_TYPE                         = ' '
"   ADDRESS_NUMBER                       = ' '
"   ADDRESS_HANDLE                       = ' '
"   PERSON_NUMBER                        = ' '
"   PERSON_HANDLE                        = ' '
"   SENDER_COUNTRY                       = ' '
"   RECEIVER_LANGUAGE                    = ' '
"   NUMBER_OF_LINES                      = 10   "Mehr als 10 Zeilen werden nicht versorgt. Üblich sind oft 7 Zeilen
"   STREET_HAS_PRIORITY                  = ' '
"   LINE_PRIORITY                        = ' '
"   COUNTRY_NAME_IN_RECEIVER_LANGU       = ' '
"   LANGUAGE_FOR_COUNTRY_NAME            = ' '
"   NO_UPPER_CASE_FOR_CITY               = ' '
"   IV_NATION                            = ' '
"   IV_NATION_SPACE                      = ' '
"   IV_PERSON_ABOVE_ORGANIZATION         = ' '
"   IS_BUPA_TIME_DEPENDENCY              = ' '
"   IV_LANGU_CREA                        = ' '
" IMPORTING
"   ADRSWA_OUT                           =
"   ADDRESS_PRINTFORM                    =
"   ADDRESS_SHORT_FORM                   =
"   ADDRESS_SHORT_FORM_S                 =
"   ADDRESS_DATA_CARRIER                 =
"   ADDRESS_DATA_CARRIER_0               =
"   NUMBER_OF_USED_LINES                 =
"   NAME_IS_EMPTY                        =
"   ADDRESS_NOT_FOUND                    =
"   ADDRESS_PRINTFORM_TABLE              =
"   ADDRESS_SHORT_FORM_WO_NAME           =
"   EV_NATION                            =
          .

Importparameter

  • Der wichtigste Importparameter ist die Adressnummer "ADDRESS_NUMBER". Die Adressdaten sind mit dem Key ADDRNUMBER in der Tabelle ADRC gespeichert. Der Funktionsbaustein benötigt zudem noch den "ADDRESS_TYPE". Hier wird meist der Wert "1" eingetragen (Organisation, Firma). Diese beiden Parameter reichen dem Funktionsbaustein um die vollständige Adresse unter den Exportparametern auszugeben.
  • Im Parameter NUMBER_OF_LINES wird die maximale Anzahl von Adresszeilen bestimmt. Maximal sind 10 Zeilen möglich. Unter 5 sollte man nicht auswählen, da sonst z. B. das Land aus der Adresse gekürzt werden kann.

Adressaufbereitung1.JPG

Exportparameter

  • Die Adressdaten werden in verschiedene Exportparameter ausgegeben. Der wichtigste Exportparameter ist die Tabelle "ADDRESS_PRINTFORM_TABLE".

Adressaufbereitung2.JPG

  • Im Exportparameter ADDRESS_SHORT_FORM_S wird die Adresse in einer Zeile ausgegeben. Von den Namensfeldern wird lediglich NAME1 verwendet und nicht NAME2 etc.

User-Exit EXIT_SAPLSADR_001

Straße und Hausnummer

  • Bei dem Adressstammdaten kann man mehrere Straßenfelder pflegen, u. a. STREET. Es gibt jedoch auch ein eigenes Hausnummernfeld HOUSE_NUM1
  • Häufig wird im Straßenfeld auch die Hausnummer eingetragen. Man sollte die Hausnummer jedoch ausschließlich in das Feld HOUSE_NUM1 eintragen. Der Funktionsbaustein ADDRESS_INTO_PRINTFORM berücksichtigt, in welchem Land die Hausnummer nach der Straße ausgegeben wird (wie z. B. in Deutschland) oder wo die Hausnummer vor der Straße ausgegeben wird (z. B. Frankreich). Wenn die Hausnummer im Straßenfeld gespeichert wird, hätte der Funktionsbaustein keine Möglichkeit diese Logik zu berücksichtigen.

Web-Links

Literatur