Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SAP Unterprogramm mit unterschiedlichen Übergabeparametern

Empfohlene Antworten

Veröffentlicht

Hi,

ich muss in ABAP ein Unterprogramm schreiben, dass einen character-string immer rechtsbündig ausrichtet (also in seinem Feld) und dann links mit Nullen auffüllt.

Nur mal bekommt das Unterprogramm ein Char-Array mit 3, mal eins mit 24 oder mehreren Stellen übergeben.

Von der Funktionsweise habe ich keine Probleme, nur wie mache ich SAP klar, dass das Unterprogramm Argumente mit unterschiedlichen Längen annehmen soll?

Was meinst du denn mit Unterprogramm? Ein Form oder einen Funktionsbaustein?

Was mir gerade noch einfällt:

Für dein Problem gibt es einen fertigen Funktionsbaustein:

conversion_exit_alpha_input

Der füllt Felder mit führenden Nullen auf.

Das Gegenstück dazu heißt

conversion_exit_alpha_output

und entfernt die führenden Nullen wieder.

  • Autor

Ich meine damit ein Form. Den fertigen baustein, den du gesagt hast, muss ich mir mal anschaun.

Der funktionsbaustein hilft mir nichts.

Sorry, aber ich habs oben vergessen. Was ich hier mit Nullen auffülle sind Ranges, also eigentllich Tabellen mit Kopf.

Hab schon mit mehreren Kollegen gesprochen, und die haben alle gemeint, dass dabei der Aufwand zu gross ist, es in eine extra Form zu stecken.

Das Problem ist, dass bei der Parameterübergagbe, die Kopfzeile der Tabelle verloren geht, und nach jedem Aufruf sich wieder so eine Tabelle aus dem Ergebniss zusammen zu bauen, ist wohl weit aufwändiger/umständlicher, als wenn ich im Prinzip den gleichen Quelltext nur mit anderem Variablennamen 7x im Quelltext stehen hab.

Die SAP-Funktionsbausteine kannst du auch mit den Ranges benutzen. Du übergibst dann einfach jeweils die Felder rangename-low und rangename-high an den Funktionsbaustein.

  • Autor

hm, die idee ist mir auch schon gekommen. Da is dann nur die Frage, als das als Referenz oder als Kopie des Wertes übergeben wird.

Falls es die Kopien sind, bringt mir das gar nichts.

Edit:

Halt ne, das geht ja auch nicht, weil ich dann keinen modify auf den range machen kann, oder?

Hängt davon ab, wie du den Funktionsbaustein aufrufst:

Du gibst dein Range-Feld (low bzw. high) als Input. Als Output kannst du dein Range-Feld oder ein typgleiches anderes Feld benutzen. Das hängt halt davon ab, was du willst.

Wieso solltest du deinen Range nicht mehr mit modify verändern können? Das funktioniert immer.

  • Autor

Aber wenn ich den Range zurückgebe, kommt beim hauptprogramm die Kopfzeile wieder nicht mit an. Naja, ich übergeb jetzt das low und high Feld einzeln, und ruf nach dem PERFORM noch nen Modify auf, so gehts jetzt auch.

Im Endeffekt will das mein Betreuer ja nur, dass ich keine Spaghettiprogrammierung anfang, auch wenn sich meiner Meinung nach dieser Aufwand für das Proggie gar nicht lohnt.

Tja, bei SAP kommt man leider oft genug nicht um Spaghettiprogrammierung herum... Standards sind halt dazu da, nicht beachtet zu werden ;)

Wenn du mal Zeit und Lust hast, musst du dir mal einige Originalprogramme angucken. Da schlägst du die Hände über dem Kopf zusammen...

  • Autor

Das hab ich auch schon gemerkt. Das ABAP ist dermassen unflexibel und starr, das gibts nicht. Ich hab vorher ein Jahr C++ Programmiert in der Arbeit.

Ich kann den Wechsel nur so bschreiben:

Stell dir vor, du hattest mal ein jahr lang einen Lamborghini Diablo, und hast danach nen Fiat Panda bekommen..... :(

Programmiert ihr schon mit ABAP Obejcts? Da kriegst du erst so richtig das ****en :rolleyes:

  • Autor

Öhm, da fragst du mich zu viel. Bin noch nicht so lang in dem Chaos hier.

Aber ich glaube mal nicht. Hab schonmal was davon gehört, aber meine Kollegen sagen auch nur, dass das nur noch schlimmer ist.

Was machst denn du mit Abap?

Ich programmiere halt :D

Im Moment bin ich gerade am Feintuning für mein Zeiterfassungs-Tool. Damit wollen unsere Kunden die Arbeitszeiten ihrer gewerblichen AN verwalten. Quasi eine Stempeluhr, aber mit Web-Oberfläche.

Hi,

hat sich dein obiges Problem eigentlich schon gelöst?

Wenn ja -> OK,

wenn nein -> du brauchst eigentlich nur eine Range-Tabelle mit ner richtigen Domäne dahinter, d.h. inkl. Typkonvertierung (NUMC). Dann füllt er dir das immer mit Nullen auf.

Und mal so allgemein:

ABAP ist doch richtig genial, z.B. bei der Verarbeitung von Arrays bzw. internen Tabellen. Da können sich diverse andere Sprachen aber locker noch was von abgucken.

Ich programmiere seit nunmehr fast zwei Jahren im SAP und bin äußerst happy damit. Da ist man wenigstens nicht nur stumpf Kodierer, sondern brauchst auch viel betriebswirtschaftlichen Hintergrund, damit man auch ohne Krücke (viele, viele Helferlein) was auf die Beine krigt.

  • Autor

Jup, das Problem ist gelöst.

Sorry, aber ich find SAP unflexibel, ausserdem kann man eben nur mit SAP verwenden, und was bringt mir SAP bei mir zuhause?

Tja, das mit dem Betriebswirtschaftlichen is so ne Sache. Stimmt, dass man das für SAP braucht, das dumme is nur, dass ich mich nicht nur nicht für Wirtschaft interessiere, sondern es sogar hasse.

Drum hab ich ja eigentlich eine Fachinformatikerausbildung gemacht. :confused:

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.