aus unterscheidlichen Gründen würden wir gerne das Nummernintervall der Fakturabelege abängig von Verkaufsorganisation, dem Geschäftsbereich und dem Geschäftsjahr finden lassen.
Hierzu würde ich nun den User Exit userexit_number_range im Programm RV60AFZZ ändern und im Hintergrund eine Interne Tabelle anlegen, in der ich die dementsprechende Regel hinterlege.
Bei der VkOrg habe ich noch keine Probleme, die finde ich ja im Belegkopf. Für den Geschäftsbereich beziehe ich mich immer auf die erste Position der Faktura, das klappt also auch. Das GJahr soll allerding mMn im Feld VBRK_GJAHR gefüllt werden, laut SAP Note 42269 wird dies allerdings nicht mehr unterstützt. Könnt ihr mir hier helfen? Kann ich das GJahr irgendwie anders abgreifen?
Evtl. habe ich eine Lösung und würde euch da mal um eure Meinung bitten:
Die Tabelle würde ich aus folgenden Spalten aufabuen:
vkorg: Verkaufsorganisation
gsber: Geschäftsbereich
fkdat1: Erster Kalendertag des Geschäftsjahres
fkdat2: letzer Kalendertag des Geschäftsjahres
nr_range: Nummerkreisintervall
Folgender Code soll den Nummernkreis aus der internen Tabelle zsd_nr_faktura ermitteln:
SELECT SINGLE znr_range
FROM zsd_nr_faktura
INTO l_num_range
WHERE vkorg = xvbrk-vkorg
AND gsber = l_gsber *wird aus der Belegpos. ermittelt, deshalb l_gsber
AND fkdat1 >= vbrk-fkdat
AND fkdat2 <= vbrk-fkdat
us_range_intern = l_num_range.
Somit gehe ich nicht direkt über das Geschäftsjahr, sondern löse es über den Zeitraum des Geschäftsjahres. Haltet ihr das für möglich?
kann man zwar so machen, setzt aber voraus, dass derjenige, der die Tabelle pflegt, weiss, wann GJ-Anfang und Ende ist. Abgesehen davon, sind bei Deinem Coding m.E. die Vergleichsoperatoren (>=, bzw. <=) vertauscht.
Falls Du doch dabei bleiben möchtest, die Nummernkreise auf Geschäftsjahresebene zu hinterlegen, kannst Du im Userexit das Geschäftsjahr leicht mithilfe des Funktionsbausteins FI_PERIOD_DETERMINE anhand des Fakturadatums (vbrk-fkdat) und des Buchungskreises (vbrk-bukrs) ermitteln lassen.