Harmonogram (Scheduler)
7.1 Co robi harmonogram
Dział zatytułowany „7.1 Co robi harmonogram”Harmonogram (Scheduler) uruchamia proces według planu, bez niczyjego klikania. Nasz plan: codziennie odczytać zamówienia i zapisać krótkie podsumowanie. Żeby to zadziałało, Order Desk musi najpierw zapamiętywać swoje zamówienia.
7.2 Tabela Orders
Dział zatytułowany „7.2 Tabela Orders”Utwórz tabelę Orders z kolumnami Status (tekst), Discount (decimal), GrossAmount (decimal), PlacedAt (data i godzina), a potem zatwierdź zmiany i zastosuj je (wygeneruj tabelę). Tabela musi być wygenerowana, zanim procesy będą mogły ją odczytywać i zapisywać. Tabele omawiamy dokładniej w sekcji 2.
7.3 PlaceOrder zapisuje każde zamówienie
Dział zatytułowany „7.3 PlaceOrder zapisuje każde zamówienie”PlaceOrder ma zapisywać każde zamówienie, złożone czy odrzucone, więc dodaj SaveData za CatchError, tam gdzie obie ścieżki się spotykają. SaveData zapisuje wiersze do tabeli.
- Zadeklaruj
DiscountiGrossAmountpozaCatchErrori pozwól, byExecuteProcesswypełnił je od środka. - W polu rekordów zwróć nowy obiekt typu tabeli (użyj
new, nazwy modułu i typu; IntelliSense podpowie wymagane właściwości). Id możesz pominąć — generuje się samo. PlacedAt: wartość typuDateTime, np.DateTime.UtcNow.
Złóż dwa zamówienia, poprawne i puste: oba wiersze pojawią się w Orders.
7.4 Wczytanie dzisiejszych zamówień
Dział zatytułowany „7.4 Wczytanie dzisiejszych zamówień”Utwórz tabelę DailySummary (Day, OrdersPlaced, OrdersRejected, TotalGross) i proces DailyOrderSummary. Dodaj LoadData: wczytuje wiersze z tabeli lub zapytania do zmiennej. Wybierz Orders i użyj filtra, żeby PlacedAt był dzisiaj albo później (pomoże zmienna z dzisiejszą datą). Wynikiem jest lista TodayOrders.
7.5 Liczenie i sumowanie
Dział zatytułowany „7.5 Liczenie i sumowanie”Dodaj trzy zmienne: zamówienia złożone, zamówienia odrzucone i łączna kwota brutto, wszystkie z wartością początkową 0. Dodaj ForEach po wczytanych zamówieniach i If na Status:
- złożone: dodaj 1 do zamówień złożonych i dodaj kwotę brutto zamówienia do sumy (użyj zmiennej
OrderGrosswewnątrz gałęzi), - w przeciwnym razie: dodaj 1 do zamówień odrzuconych.
7.6 Zapis podsumowania
Dział zatytułowany „7.6 Zapis podsumowania”Za pętlą dodaj SaveData do DailySummary: dzisiejsza data, oba liczniki i suma. Uruchom proces raz ręcznie i sprawdź nowy wiersz.
7.7 Tworzenie zadania w harmonogramie
Dział zatytułowany „7.7 Tworzenie zadania w harmonogramie”W panelu administracyjnym otwórz menu harmonogramu i kliknij new automation:
- Nadaj nazwę (i opcjonalnie opis).
- Wybierz aplikację i proces
DailyOrderSummary. - Ustaw datę i godzinę startu oraz częstotliwość powtórzeń (codziennie).
- Potwierdź.
7.8 Nakładanie się i pominięte uruchomienia
Dział zatytułowany „7.8 Nakładanie się i pominięte uruchomienia”- Gdy kolejne uruchomienie startuje, a poprzednie wciąż trwa: zezwól na nie, pomiń je albo poczekaj na zakończenie poprzedniego.
- Gdy usługa nie działała w zaplanowanym czasie: uruchom w następnym terminie albo od razu po starcie.
7.9 Ponowienia, status i użytkownik systemowy
Dział zatytułowany „7.9 Ponowienia, status i użytkownik systemowy”Nieudane uruchomienie można ponowić, z przerwą pomiędzy próbami. Maksymalny czas działania pomaga wyłapać zawieszone uruchomienia. Zadanie pokazuje ostatni wynik, ewentualny błąd i termin następnego uruchomienia. Pamiętaj: zaplanowane uruchomienia działają jako użytkownik systemowy, który widzi wszystkie wiersze — także te, których zwykły użytkownik by nie zobaczył.