Automatyczna aktualizacja statystyk KPI
Najpierw określamy identyfikatory, które mają być przetwarzane, w tym przypadku klientdepo1 i klientdepo2
$DBNAMES = @("klientdepo1", "klientdepo2")
Wyznacz liczbę dni od daty rozpoczęcia statystyk do dnia dzisiejszego. Można je znaleźć np. na stronie https://kolikdni.3tecky.cz/.
W tym przykładzie policzymy 330 dni, które zostaną wprowadzone jako ujemne, ponieważ są to dni w przeszłości.
$DAYSBACK = -330
Określenie formatu pliku wejściowego
$FORMAT = ".csv"
Ustawienie poziomu komunikatów, patrz. Opcje linii komend
$LOGLEVEL = 1
Możemy użyć polecenia cls do wyczyszczenia linii poleceń
cls
Następnie tworzymy pętlę, która iteruje od wartości określającej liczbę dni do początku statystyki do 0 określającego dzisiejszy dzień. Dla pierwszej iteracji w naszym przykładzie ustawiamy $DAYOFFSET = - 330
For ($DAYOFFSET=$DAYSBACK; $DAYOFFSET -le 0; $DAYOFFSET++)
W naszym przypadku dane klienta mają nazwę np. EXP_TASHA_2019_02_20.csv, więc format wejściowy to .csv i musimy pobrać datę planowania w odpowiednim formacie rrrr-MM-dd oraz początek nazwy, który ustawiamy statycznie. Następnie otrzymujemy pełny adres pliku i przechowujemy go w zmiennej $SAVESTAMP
$SOLVEDATE = ((get-date).AddDays($DAYOFFSET)).ToString("yyyy-MM-dd")
$SAVESTAMP = "C:\SFTPImport\EXP_TASHA_DAY_"
$SAVESTAMP = $SAVESTAMP+$SOLVEDATE+$FORMAT
W przypadku Tasha musisz również uzyskać datę planowania w formacie dd.MM.rrrr, np. 20.02.2019.
$PLANNINGDATE = ((get-date).AddDays($DAYOFFSET)).ToString("dd.MM.yyyy")
Ustawia lokalizację folderu nadrzędnego na folder zawierający Tasha_CL.exe
Set-Location -Path "C:\CL_folder"
Utwórz pętlę, która iteruje przez wszystkie DB zawarte w $DBNAMES.
ForEach ($DBNAME In $DBNAMES)
Aby wylistować informacje, można zastosować łańcuchowanie, zapisując zmienną do łańcucha.
"Database: $DBNAME - Scenario name: $SOLVEDATE - Planning date: $PLANNINGDATE"
"Import"
Rozpocznij import używając niezbędnych zmiennych, np. $DBNAME, $LOGLEVEL, $SOLVEDATE, $SAVESTAMP, $PLANNINGDATE.
TashaCL\TashaCl.exe -s SQLServer -c "SERVER = TS3\SQLEXPRESS; DATABASE = $DBNAME;Integrated Security=SSPI;"
--logginglevel $LOGLEVEL --Mode import --PluginName SolverTech.Tasha.Plugins.IO.Tasha
--inputscenarioname $SOLVEDATE --ImportFile $SAVESTAMP --PlanningDate $PLANNINGDATE
--PluginSettings "C:\CL_folder\TashaCL\Plugins\IMPORTERSETTINGS\$DBNAME.config"
Domyślnie import, geokodowanie i obliczanie odległości odbywa się w ramach poprzedniego polecenia.
Ale można je również uruchamiać pojedynczo za pomocą następujących poleceń:
TashaCL\TashaCl.exe -s SQLServer -c "SERVER = TS3\SQLEXPRESS; DATABASE = $DBNAME;Integrated Security=SSPI;"
--logginglevel $LOGLEVEL --Mode geocoding --PluginName SolverTech.Tasha.Plugins.Geocoding.Ruian
--inputscenarioname $SOLVEDATE
TashaCL\TashaCl.exe -s SQLServer -c "SERVER = TS3\SQLEXPRESS; DATABASE = $DBNAME;Integrated Security=SSPI;"
--logginglevel $LOGLEVEL --Mode distance --PluginName SolverTech.Tasha.Plugins.UpdateDistance.Here
--inputscenarioname $SOLVEDATE
Kontynuuj, uruchamiając rozwiązanie z użyciem niezbędnych zmiennych, np. $DBNAME, $LOGLEVEL, $SOLVEDATE.
TashaCL\TashaCl.exe -s SQLServer -c "SERVER = TS3\SQLEXPRESS; DATABASE = $DBNAME;Integrated Security=SSPI;"
--logginglevel $LOGLEVEL --Mode solve --inputscenarioname $SOLVEDATE -i30000 -tMediumHigh -z10 -ay --MaxProcessorCount 20 --RestartPhasesCount 5 --RestartPhasesPercentage 50
Następnie importujemy dane dotyczące śledzenia pojazdów przy użyciu niezbędnych zmiennych.
TashaCL\TashaCl.exe -s SQLServer -c "SERVER = TS3\SQLEXPRESS; DATABASE = $DBNAME;Integrated Security=SSPI;"
--logginglevel $LOGLEVEL --Mode command --PluginName SolverTech.Tasha.Plugins.Tracking.Webdispecink --CommandName UpdateTrackingDistances
--inputscenarioname $SOLVEDATE --TrackingCompany Company --TrackingLogin Name --TrackingPassword Heslo1111
Dokonaj wpisu do bazy danych KPI.
TashaCL\TashaCl.exe -s SQLServer -c "SERVER = TS3\SQLEXPRESS; DATABASE = $DBNAME;Integrated Security=SSPI;"
--logginglevel $LOGLEVEL --Mode command --PluginName SolverTech.Tasha.Plugins.Statistics.Kpi --PluginSettings "C:\CL_folder\TashaCL\Plugins\KPISETTINGS\$DBNAME.config" --CommandName UpdateKPIs