Kategorien
SAP

SAP GfUD Faktura Teil 1

Nach dem wir ein SAP Basis System nun vollständig installiert und mit einigen Grunddaten befüllt haben, geht es an ein paar Fingerübungen. Das derzeitige Entwicklerteam besteht übrigens aus drei Personen, in Deutschland verteilt und arbeitet an einem Terminalserver der GfUD an der Realisierung des Projekts. Ziel ist es, einige Übungen, Tipps und Tricks rund um das „miniSAP“, dem SAP Netweaver Basissystem, zu erarbeiten. Wenn sich jemand dafür interessiert und mitmachen möchte, kann sich melden.

Projekt GfUD Faktura

Elementar ist das Verständnis des SAP Business Address Services (BAS), der zentralen Adressverwaltung.

In unserer ersten Transaktion werden die gewählten Adressen, also der Empfänger und der Absender eines Dokumentes ausgewählt und abgeglichen. Der Absender ergibt sich aus dem Userstamm. In den Transaktionen SU01 sowie SUCOMP ist der Benutzer sowie die Firma, für die der User fakturiert, hinterlegt.

Die Transaktionen BUP1, BUP2, BUP3 dienen uns zum anlegen, ändern und anzeigen der Geschäftspartner.

Während die Daten des Geschäftspartners vollständig vorliegen (Steuernummer, Bankdaten) müssen wir für die hinterlegte User bezogene Firma, eine weitere Tabelle anlegen. Auch muss im Hinblick auf eine gesetzkonforme Archivierung an die Speicherung der Daten gedacht werden. Das heisst: Adress- und steuerrelevante Daten können sich ändern. Ein angelegter Beleg soll aber, unabhängig von der Archivierung des SAP SmartForms, vom System reproduzierbar sein. Adressänderungen werden im BAS durch Änderungsbelege dokumentiert, weshalb wir die zusätzliche Speicherung in Frage stellen können.

Grundsätzlich ist der Umgang sehr einfach. Der Umgang mit Userdaten, externer Adressen und Geschäftspartnern ist durch zahlreiche Funktionsbausteine vorbereitet.

Von der Transaktion BUP3 (Anzeige Geschäftspartner) aus, wird die Partnernummer des Geschäftspartners über einen SET/GET Parameter transportiert. Den greifen wir auf

GET PARAMETER ID 'BPA' FIELD partner.

Um jetzt von der Partnernummer aus, Adressen aus zu lesen, müssen einige Tabellen befragt werden. Wenn die Daten vorhanden sind, liefer der Funktionsbaustein BUA_ADDRESS_GET_ALL einen Geschäftspartner Adresssatz als interne Tabelle.

SELECT addrnumber INTO adrnum FROM but020 WHERE partner = partner.
  ENDSELECT.

  SELECT * FROM adrp INTO it_person WHERE persnumber = ( SELECT persnumber FROM adcp WHERE addrnumber = adrnum ).
  ENDSELECT.

  CALL FUNCTION 'BUA_ADDRESS_GET_ALL'
   EXPORTING
     i_partner               = partner

   TABLES
*   T_ADDRNUMBER_GUID       =
     t_address               = it_adr

Die Userdaten und die hinterlegte Firmenadresse sind teilweise auch im BAS gespeichert und können über den Funktionsbaustein ADDR_GET abgerufen werden.

SELECT addrnumber FROM usr21 INTO selektion-addrnumber WHERE bname = username.
  ENDSELECT.

  SELECT name_text from v_usr_name INTO name where bname = username.
    ENDSELECT.


  CALL FUNCTION 'ADDR_GET'
    EXPORTING
      address_selection             = selektion

   IMPORTING
     ADDRESS_VALUE                 = adresse

 

Kommentar verfassen