Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
merry2018
Creator III
Creator III

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 

 

Labels (3)
1 Solution

Accepted Solutions
gf
Creator III
Creator III

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
Creator III
Creator III

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
merry2018
Creator III
Creator III
Author

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
Creator III
Creator III

Meines Erachtens sollte dies durchaus möglich sein.
merry2018
Creator III
Creator III
Author

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

Gruß
Merry
gf
Creator III
Creator III

Bitte und gerne!
lg
merry2018
Creator III
Creator III
Author

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
Creator III
Creator III

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
Creator III
Creator III
Author

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
Creator III
Creator III

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