Funktion im Katalog ohne Parameter verwenden möglich?

Hallo zusammen,

ich habe im neuen “Funktionen” TAB eine Funktion gebaut, die mir den Bezugszeitraum des Vormonats ausgibt. (für Intrastat nötig)

Mein Problem ist, dass ich im Katalog eigentlich keinen Parameter an die Funktion übergeben möchte, sondern nur den berechneten Ausgabewert benötige. Aktuell lässt sich die Funktion aber nur speichern bzw. verwenden, wenn ein Parameter vorhanden ist.

Da ich im Katalog keine Funktion als Parameter (z.b. HEUTE) übergeben kann, suche ich nach einer sauberen Lösung für folgenden Fall:

  • Funktion berechnet den Zeitraum des Vormonats

  • im Katalog soll nur das Ergebnis ausgegeben werden

  • es soll möglichst kein manueller oder technischer Platzhalter-Parameter nötig sein

Gibt es dafür in PlentyOne eine saubere Lösung oder einen empfohlenen Workaround?

Viele Grüße

Funktion, um den Vormonat im Format TT.MM.JJJJ - TT.MM.JJJJ auszugeben

LEFT(Berichtsdatum, 0) ++ „01.“ ++ LOOKUP(

GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 2),

\["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"\],

\["12", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11"\],

) ++ „.“ ++ IF(

GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 2) == "01",

NUMBER_TO_STRING(

    STRING_TO_NUMBER(

        GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

    ) - 1,

), GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

) ++ " - " ++ IF(

GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 2) == "03",

IF(

    (STRING_TO_NUMBER(

        GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

    ) % 400 == 0) || ((STRING_TO_NUMBER(

        GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

    ) % 4 == 0) && (STRING_TO_NUMBER(

        GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

    ) % 100 != 0)), "29", "28",

),

LOOKUP(

    GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 2),

    \["01", "02", "04", "05", "06", "07", "08", "09", "10", "11", "12"\],

    \["31", "31", "31", "30", "31", "30", "31", "31", "30", "31", "30"\],

),

) ++ „.“ ++ LOOKUP(

GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 2),

\["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"\],

\["12", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11"\],

) ++ „.“ ++ IF(

GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 2) == "01",

NUMBER_TO_STRING(

    STRING_TO_NUMBER(

        GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

    ) - 1,

), GET_PART(FORMAT_DATE(GET_CURRENT_DATE(), "yy.MM.dd"), ".", 1),

)

Workaround: Ich übergebe “x” als Parameter an die Funktion. Ergebnis wie gewünscht.