Hallo Nicols,
ich habe gerade den gleichen Fall. Ich löse das ganze wie folgt:
Code: Alles auswählen.
CONCATENATE 'WTG0' periode INTO select.
* Werttypes '04' -> Istkosten
SELECT SINGLE (select)
INTO wa_meldung-skost
FROM coss
WHERE objnr EQ wa_meldung-objnr
AND gjahr EQ gjahr
AND wrttp EQ '04' "Istkosten
AND beknz EQ 'S'. "Nur Kosten
* Werttypes '04' -> Istkosten
SELECT SINGLE (select)
INTO wa_meldung-pkost
FROM cosp
WHERE objnr EQ wa_meldung-objnr
AND gjahr EQ gjahr
AND wrttp EQ '04' "Istkosten
AND beknz EQ 'S'. "Nur Kosten
Das Problem bei den Tabellen ist, wenn Du mit einer Datumsselektion arbeiten möchtest. Hier ist es erforderlich die entsprechende Periode herauszufinden. Die Periode ermitteln nebst Geschäftsjahr lässt sich mit dem FuBa BAPI_COMPANYCODE_GET_PERIOD. Z.B. wenn Euer Geschäftsjahr zum 01.03. beginnt, ist der Wert für die Periode 01 immer im Feld WTG001. Ob nun WTGXXX oder WOGXXX oder W.... hängt von Deiner Auswertung ab bzw. ob Ihr mit unterschiedlichen Währungen etc. arbeitet.
Ich bestimme anhand von einem Datum auf jeden Fall den Periodenbeginn und das -ende und loop entsprechend der Anzahl der Perioden über den Select und lese immer das entsprechende Feld der Periode aus.
Eine Andere Lösung ist mir gerade nicht eingefallen. Es funktioniert ist aber bei mir nicht sehr performant. Da je nach Anzahl der Perioden und der Aufträge recht schnell eine hohe Anzahl an Datensätzen zustande kommt.
Achso Ist- und Plankosten. Werden über das Feld WRTTP 01-Plan und 04-Ist es gibt aber noch weitere Werte findest Du in der Domäne CO_WRTTP.
Ich hoffe es hilft weiter. Ich bin auch nicht der Crack bzgl COSS und COSP aber das sind auf jeden Fall meine Erkenntnisse.
Hoffe es ist jetzt nicht zu confus geworden.