Nachweis der Lieferanten für Streckenaufträge

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Nachweis der Lieferanten für Streckenaufträge

Beitrag von itmeli ( / / 0 / 3 ) »
Hallo,
mein Programm soll einen Nachweis der verschiedenen Lieferanten für Streckenaufträge erstellen. Ausgegeben werden soll die Sales Organization (, die immer gleich ist, da nur ein Land hierfür wichtig ist), das Land des Lieferanten und das Land des Kunden. Zusätzlich sollen jeweils Summenfelder gebildet werden, dass für jede Kombinationsmöglichkeit (Sales Org, Lief-Land, Ship-to Land) die Anzahl der gefunden Einträge ausgegeben wird.

Hab mit dem Quellcode bereits begonnen, funktioniert aber ncoh nicht richtig. Außerdem weiß ich nicht wo und wie die Summenbildungen eingefügt werden müssen.

Hier der Quellcode soweit:


tables: vbak, "sales header
vbap, "sales item info
vbep, "sales schedule lines
eban, "purchase requisition
lfa1, "vendor master
vbpa. "sales document partner


************************************************************************
* internal table *
************************************************************************

data: begin of intab occurs 100,
vkorg like vbak-vkorg, "sales organization
vbeln like vbap-vbeln, "SD document number
pstyv like vbap-pstyv, "sales document item category
posnr like vbap-posnr, "sales document item
ettyp like vbep-ettyp, "schedule line category
banfn like vbep-banfn, "purchase requisition number
bnfpo like vbep-bnfpo, "item nr of purchase requisition
lifnr like eban-flief, "account nr of vendor or creditor
landl like lfa1-land1, "land of vendor
landv like vbpa-land1, "ship-to land
end of intab.


************************************************************************
* selection screen *
************************************************************************

select-options: selvkorg for vbak-vkorg.
selection-screen uline.


select-options: selvbeln for vbak-vbeln.
selection-screen uline.


************************************************************************
* *
* start-of-selection *
* *
************************************************************************


start-of-selection.

select * from vbak
where vkorg = selvkorg.


select * from vbap
where vbeln = vbak-vbeln
and pstyv = 'TAS'.


select * from vbep
where vbeln = vbap-vbeln
and posnr = vbap-posnr
and ettyp = 'ZS'.


select single * from eban
where banfn = vbep-banfn
and bnfpo = vbep-bnfpo.


select single * from lfa1
where lifnr = eban-flief.



intab-vbeln = vbap-vbeln.
intab-pstyv = vbap-pstyv.
intab-posnr = vbap-posnr.
intab-ettyp = vbep-ettyp.
intab-banfn = vbep-banfn.
intab-bnfpo = vbep-bnfpo.
intab-lifnr = eban-flief.
intab-landl = lfa1-land1.
intab-landv = vbpa-land1.
append intab.

endselect.

endselect.

endselect.


write:/ intab-vkorg,
intab-landl,
intab-landv.


End-of-selection.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Strecke

Beitrag von Hans Gast ( / / 0 / 3 ) »
Hi,
ehrlich gesagt stehen mir bei dem Programmentwurf die Haare zu Berge. Das Programm wird Stunden laufen. Es werden alle Daten gelesen, obwohl man nur sehr wenige braucht. Select * sollte man nur in Sonderfällen verwenden.
Also als erstes alle Daten, und zwargenau die, die man braucht, in interne Tabellen legen und dann einen Loop über die vbap machen und dabei die restlichen Daten aus den internen Tabelle dazulesen. Die vbak z.b. braucht überhaupt nicht gelesen werden.
Wichtige Dinge fehlen, z.B. die Abprüfung der Absagegründe in der vbap sowie die anderen Positionstypen wie TASN, TAB, TABN. Das kannst Du so machen:
select vbeln posnr matnr arktx pstyv abgru erdat from vbap
into table ivbap
where erdat in erdat
and abgru = ' '
and pstyv in ('TAS ','TASN','TAB','TABN').
sort ivbap by vbeln posnr.

select vbeln posnr edatu bmeng banfn bnfpo from vbep
into table ivbep
for all entries in ivbap
where vbeln = ivbap-vbeln
and posnr = ivbap-posnr.
sort ivbak by vbeln.

.
.
.
loop at muevbap.
read table ivbak with key
vbeln = ivbap-vbeln binary search.
read table ivbep with key
vbeln = ivbap-vbeln
posnr = ivbap-posnr binary search.
.
.
.
Ist jetzt nur ein Beispiel wie man es machen könnte. Probier es einfach mal aus.
Für die Summen würde ich einfach Felder anlegen und darauf addieren.

Hans

Fehler

Beitrag von Hans Gast ( / / 0 / 3 ) »
Kleiner Fehler, muss natürlich heißen:
loop at ivbap.

Hans

Beitrag von itmeli ( / / 0 / 3 ) »
Hi,
vielen Dank für die Antwort!Kann schon sein, dass mein Programm etwas umständlich ist, hab noch nicht so wirklich viel Programmierfahrung.
Durch die Eingrenzung der Selektionsmaske, dürfte die Abfrage auf die Tabellen, selbst bei select * doch gar nicht so lange dauern, oder?
Allerdings brauche ich einige Felder, die Du aufgelistet hast, gar nicht.
Mein Chef möchte "lediglich" eine Auflistung aller "TAS"-Aufträge (pstyv = "TAS")haben, nur derer, dessen Sales Organization England ist und die schedule line category = "ZS" und die partner function = "WE" ist. Rauskommen soll folgende Liste:

Sales Org. | lief-Land | ship-to land | Summe

Beitrag von Hans Gast ( / / 0 / 3 ) »
Hi,
Die Belegnummer kann in der Selektion eingeschränkt werden. Das wiederum ist zwar schön, aber gar nicht sinnvoll, denn wie soll was verglichen werden? Sinnvoll wäre z.B. von Datum bis Datum.
Die von mir gelisteten Programmteile waren nur Beispiele, denn ich habe ein änliches Programm vor einiger Zeit geschrieben. Die Felder sind natürlich die, die ich damals brauchte.
Ich kann nur empfehlen, nach dieser Methode zu arbeiten, denn das Programm wäre mindestens 10mal so schnell.
Ich würde den Chef auch mal fragen, ob die anderen Streckenpositionstypen nicht verwendet werden.
Hans

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1977
Views
LoA-Nachweis - Download von Ergebnissen
von HLRT67 » 04.12.2007 11:14 • Verfasst in Human Resources
0
Antw.
1075
Views
Solution Manager - Business Blueprints? Nachweis für Auditie
von Jorge » 16.12.2007 18:56 • Verfasst in Basis
10
Antw.
18880
Views
Termintreue Lieferanten
von Claudia A. » 10.08.2005 17:07 • Verfasst in Material Management & Produktionsplanung
3
Antw.
895
Views
Geschäftspartner- Nr der Lieferanten-Nr zuordnen
von Domgr » 18.05.2021 13:45 • Verfasst in ABAP® für Anfänger
4
Antw.
988
Views
Datenaustausch mit externen Lieferanten
von Chaos81 » 15.08.2019 17:26 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag

Anonymous
Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 510
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2145
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8741