Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

merry2018
Contributor II

Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Hallo Zusammen, 

ich bräuchte mal wieder eure Hilfe und zwar habe ich ein Load Script in welchem ich verschiedene Tabellen rein lade und eine davon auch mit store abspeicher, um damit historische Daten zu bekommen. Dieses soll aber nicht jedesmal wenn das Script ausgeführt wird (täglich) gespeichert werden sondern nur immer am Sonntag, wie kann ich das umsetzen? Geht das mit einem if vor das Store oder am liebsten hätte ich sogar den ganzen abschnitt, also aufbau der Tabelle und den store Befehl nur einmal in der Woche ausgeführt.

Vielen Dank schon mal für eure Hilfe.

Grüße Merry 

 

Tags (2)
Labels (3)
1 Solution

Accepted Solutions
gf
Contributor III

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Hallo Merry,
wenn ich mich nicht täusche gibt es die Funktion WeekDay() für solche Fälle.
Probiers mal mit:
IF WeekDay(Date(Now())) = 6 Then....
6 weil die Tage bei 0 anfangen; sprich 0 = Montag, 1 = Dienstag usw.....
Näheres findest du hier:
https://help.qlik.com/en-US/qlikview/November2017/Subsystems/Client/Content/Scripting/DateAndTimeFun...

Und hier ein kleines Beispiel, die Sinnhaftigkeit bitte nicht berücksichtigen 😉

IF WeekDay(Date(Now())) = 0 THEN
LOAD * INLINE [
NUMBER, MONTAG
1, 3
2, 3

];
ELSE
LOAD * INLINE [
NUMBER, DIENSTAG
1, 3
2, 3

];
ENDIF

View solution in original post

11 Replies
gf
Contributor III

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Hallo Merry,
wenn ich mich nicht täusche gibt es die Funktion WeekDay() für solche Fälle.
Probiers mal mit:
IF WeekDay(Date(Now())) = 6 Then....
6 weil die Tage bei 0 anfangen; sprich 0 = Montag, 1 = Dienstag usw.....
Näheres findest du hier:
https://help.qlik.com/en-US/qlikview/November2017/Subsystems/Client/Content/Scripting/DateAndTimeFun...

Und hier ein kleines Beispiel, die Sinnhaftigkeit bitte nicht berücksichtigen 😉

IF WeekDay(Date(Now())) = 0 THEN
LOAD * INLINE [
NUMBER, MONTAG
1, 3
2, 3

];
ELSE
LOAD * INLINE [
NUMBER, DIENSTAG
1, 3
2, 3

];
ENDIF

View solution in original post

merry2018
Contributor II

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Ja diese Funktion ist mir schon bekannt, aber ich kann doch in einem If-Zweig nicht einen ganzen Load, Store und nochmal Load unterbringen oder?

Denn diesen Ausschnitt, des Load Scripts, will ich nur einmal in der Woche ausführen:

- Aufbau der Tabelle aus bestehenden Tabellen mit Mapping ....Load ... Resident... 
- Store Tabelle
- Delet temp Tabelle
- Load gespeicherte Tabelle

(Also das ist jetzt nicht der ausführliche Code aber diese Schritte wird es beinhalten)

Oder geht das alles in dem THEN zweig?

 

Danke und Gruß

Merry

gf
Contributor III

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Meines Erachtens sollte dies durchaus möglich sein.
merry2018
Contributor II

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

So habe es endlich geschafft auszuprobieren.
Ja es klappt, vielen Dank für die Hilfe.

Gruß
Merry
gf
Contributor III

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Bitte und gerne!
lg
merry2018
Contributor II

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Jetzt hätte ich doch noch eine Frage und zwar sollte ich das jetzt auch noch am letzten Tag im Monat machen, und nicht nur wöchentlich. 

Wie bekomme ich also den letzten Tag im Monat so ermittelt das ich ihn mit OR in der IF Bedingung hinzufügen kann?

gf
Contributor III

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Mit =MonthEnd(Now()) erhälst du für das aktuelle Monat immer das letztmögliche Datum.
Diese Funktion wurde nun für den Monat April 30.04.2019 liefern.
Ich wurde in der IF-Anweisung noch: ... OR Date(Now()) = MonthEnd(Now())
lg
merry2018
Contributor II

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Ich hätte es mir jetzt z.b. folgend vorgestellt:
if WeekDay(Date(Now()))=6 or (Date(Now()) = MonthEnd(Date(Now()))) then

aber leider klappt das auch nicht, bzw. habe ich es folgend getestet, was ja dann normal richtig sein sollte: (Date(Now()+13) = MonthEnd(Date(now())))
gf
Contributor III

Re: Scriptteil, welcher eine Tabelle speichert (store), nur einmal Wöchentlich ausführen

Probier es mal so:
Date(Now()+13,'DD.MM.YYYY') < MonthEnd(Now())