SAP Jobsuche bei DV-Treff
SAP_Learner
vor 3 Jahre
Hallo liebe SAP Gemeinde,

ich bin gerade dabei ein SAP Query zu über einen Join BSEG und KNA1 zu erstellen.

Dabei sollen allerdings bereits ausgeglichene Posten nicht angezeigt werden.

Über Zusätze kann man doch der Abfrage einen ABAP Code mitgeben.

Weiß jemand vielleicht wie dieser hier aussehen müsste?

Vielen Dank für jede Untersützung.

VG

Förderer

157
  • 157
  • SAP Forum - Guru
wreichelt
vor 3 Jahre
Hallo,

wenn es um die Offenen Posten bei Kunden geht, dann ist die Tabelle BSID (offene Posten) dafür

gut geeignet (es sind nur die offenen Posten in der Tabelle).

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
Hallo 157 und Wolfgang,

vielen Dank für die hilfreichen Infos an Euch.

VG

Alex

SAP_Learner
vor 3 Jahre
Hallo Zusammen,

jetzt hätte ich noch eine Nachfrage. Wenn ich über die Tab BSID alle offenen Posten anzeigen lassen kann. Wie kann ich jetzt noch einmal den Stichtag bestimmen für den diese offenen Posten angezeigt werden sollen=?

Viele Dank.

VG

Alex

wreichelt
vor 3 Jahre
Hallo Alex,

dann müsste die Tabelle BSAD dazu gelesen werden un dort das Ausgleichsdatum abgefragt werden.

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
Hallo Wolfgang,

vielen Dank für deine großartige Hilfe. Jetzt hab ich noch eine Frage;(...

Um den richtigen Saldo des Kundenkontos zu erhalten müsste mir die Query Buchungen mit Haben-Kennzeichen negativ darstellen. Benötige ich hierfür jetzt ein kurzes Coding im Bereich Zusätze, dass den Betrag in Hauswährung immer dann negativ ausgibt, wenn die Position ein Haben-Kennzeichen mitführt...

Viele Grüße

Alex´(der leider ABAP Unwissende:)

wreichelt
vor 3 Jahre
Hallo Alex,

du hast es erkannt, Buchungen mit dem S/H-Kennzeichen ‚S‘ müssen mi -1 multipliziert werden.

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
hm..ok...hättest Du vielleicht noch eine Idee wie das Coding hier aussehen müsste.

Sorry für die vielen Fragen... ich tue mir mit dem ABAP Syntax noch etwas schwer...

wreichelt
vor 3 Jahre
Hallo Alex,

ohne System:

if BSAD-shkz = ´H´.

Betrag = BSAD-Betrag * -1.

Else.

Betrag = BSAD-Betrag.

Endif.

Die Tabellen-Namen sind natürlich nicht richtig

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
Hallo Wolfgang,

ich habe den Syntax wie folgt umgesetzt:

IF bsad-shkzg = `H`.

bsad-dmbtr = bsad-dmbtr * -1.

ELSE.

bsad-dmbtr = bsad-dmbtr.

ENDIF.

Bekomme aber leider bei der Query Abfrage diese Fehldermeldung:

Fehler im ABAP-Anwendungsprogramm.

Das laufende ABAP-Programm "SAPLALDB" mußte abgebrochen werden, da es auf

eine Anweisung gestoßen ist, die leider nicht ausgeführt werden kann.

Im Programm "!QCSZFHG_FI=====MAHNSTUFE_3=== " ist im Include

"/1BCDWB/IQT000000000072DAT " in Zeile 25

der folgende Syntaxfehler aufgetreten:

Field "bsad-shkzg" is unknown.

..es gibt dieses Feld bsad-shkzg aber in der Tabelle. Warum erkennt ABAP das nicht...

wreichelt
vor 3 Jahre
Hallo,

das liegt bestimmt an den Anführungszeichen:

if bsid-shkzg = 'H'.

bsid-dmbtr = bsid-dmbtr * -1.

endif.

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
Leider nein. Ich bekomme die selbe Fehlermeldung:(

Was ist passiert?

Fehler im ABAP-Anwendungsprogramm.

Das laufende ABAP-Programm "SAPLALDB" mußte abgebrochen werden, da es auf

eine Anweisung gestoßen ist, die leider nicht ausgeführt werden kann.

Im Programm "!QCSZFHG_FI=====MAHNSTUFE_3=== " ist im Include

"/1BCDWB/IQT000000000072DAT " in Zeile 25

der folgende Syntaxfehler aufgetreten:

Field "BSID-SHKZG" is unknown.

Code sieht jetzt so aus:

if bsid-shkzg = 'H'.

bsid-dmbtr = bsid-dmbtr * -1.

endif.

wreichelt
vor 3 Jahre
Hallo,

dann fehlt wohl:

Tables: bsid, bsad.

wenn du das Coding erstellst gibt es die Möglichkeit das Coding zu prüfen und dann werden die

Fehler direkt angezeigt.

Dafür gib es ein Symbol (so eine umgedrehte Waage) einfach mal mit der Maus drüber fahren.

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
Ja ich prüfe den Syntax immer mit der umgekehrten Waage. Keine Fehler.

Lediglich wenn ich die Query in der SQ01 abrufe, kommt der Fehler. Ich bin leider

Tables: bsad, bsid.

IF bsad-shkzg = 'H'.

bsad-dmbtr = bsad-dmbtr * -1.

ELSE.

bsad-dmbtr = bsad-dmbtr.

ENDIF.

Jetzt kommt allerings schon der Fehler, dass bsad bereits deklariert ist.

SAP_Learner
vor 3 Jahre
Danke Wolfgang. Es hat funktioniert. Ich hatte leider noch das Feld Zusätze nicht in die Query Abfrage integriert gehabt. Das war noch der Fehler. VG Alex
SAP_Learner
vor 3 Jahre
Hallo Zusammen,

ich hätte in diesem Zusammenhang doch noch eine Frage.

Jede Buchung wird mir jetzt zweimal in der Liste ausgegeben. Da ich aber die offenen Posten anzeigen lassen möchte kann ich jede Buchung nur einmal benötigen. Hat jemand eine Idee?

VG

Alex

wreichelt
vor 3 Jahre
Hallo Alex,

das wird schwierig, wir kennen ja den Join der Tabellen nicht.

Bitte stelle doch mehr Informationen zur Verfügung.

Gruß Wolfgang

SAP_Learner
vor 3 Jahre
sehr gerne - folgende Tabellen sind im Join:

1. TAB BSID left outer join mit Tab BSEG Primärschlüssel BELNR

2. TAB BSEG inner join auf Tab FAGL_SEGM Primärschlüssel SEGMENT

Die Abfrage soll dann mindestens drei Felder ausgeben.

Belegnummer Betrag in Hauswährung Segment

Seit ich das Segement hinzugenommen habe, werden mir die Belegnummer zweimal ausgegeben...

Gruß

Alex

SAP_Learner
vor 3 Jahre
TAB BSID ist die Tabelle die ganz links steht...