2.1  Skrypty jednorazowe

 

Skrypty jednorazowe uruchamiane są najczęściej w sposób interaktywny przez operatora lub okresowo przy pomocy terminarza. Skrypt jednorazowy działa z reguły krótki czas. Całość jego funkcji znajduje się wewnątrz metody Initialize (lub innych metodach wywoływanych przez metodę Initialize). W przypadku skryptu jednorazowego metoda Initialize musi zwracać wartość true.

 

Przykład pokazuje skrypt, którego zadaniem jest rejestrowanie w pliku tekstowym obecności operatora. Operator ma za zadanie okresowo uruchamiać skrypt (np. poprzez użycie odpowiednio skonfigurowanego obiektu Przycisk), a każdorazowe uruchomienie spowoduje zapis komunikatu w pliku rejestru.

C#

using System;
using
 System.Windows.Forms;
using
 Askom.AsixEvo.Scripting;
using
 System.IO;
 

public
 class Single : IScript
{
   
public bool Initialize(string[] aParameters, IApplication aApplication)
   {
      
StreamWriter writer = new StreamWriter(

         Path.Combine(aApplication.ApplicationWorkingDirectory, "logs\\rejestr.txt"), true,

         System.Text.ASCIIEncoding.GetEncoding(1250));
      String msg = String.Format("{0} Zgłoszenie obecności: operator = {1}, stanowisko = {2}",

         DateTime.Now, aApplication.CurrentUserName, aApplication.CurrentStationName);
      writer.WriteLine(msg);
      writer.Close();
 
      aApplication.ReportMessage(EvoMessageType.Info, 
"Zgłoszenie operatora zarejestrowane");
 
      
return true;
   }
 
   
public void FinalizeScript()
   {
 
   }

 

VB

Imports System
Imports
 System.Windows.Forms
Imports
 Askom.AsixEvo.Scripting
Imports
 System.IO
 

Public
 Class SingleVB
    
Implements IScript
 
    
Public Function Initialize(ByVal aParameters() As StringByVal aApplication As _

        IApplication) As Boolean Implements IScript.Initialize
 
        Dim writer As StreamWriter
        writer = New StreamWriter(Path.Combine(aApplication.ApplicationWorkingDirectory,

            "logs\\rejestr.txt"), True, System.Text.ASCIIEncoding.GetEncoding(1250))
 
        Dim msg As String
        msg = String.Format("{0} Zgłoszenie obecności: operator = {1}, stanowisko = {2}", _
            Date.Now, aApplication.CurrentUserName, aApplication.CurrentStationName)
        writer.WriteLine(msg)
        writer.Close()
 
        aApplication.ReportMessage(EvoMessageType.Info, "Zgłoszenie operatora zarejestrowane")
 
        Return True
 
    End Function
 
    Public Sub FinalizeScript() Implements IScript.FinalizeScript
 
    End Sub
 
End
 Class 

 

 

Całość kodu znajduje się w funkcji Initialize. Na początku tworzony jest obiekt klasy StreamWriter. W jego konstruktorze przekazywana jest nazwa pliku, wybierana opcja dopisywania do pliku oraz wybierany  sposób kodowania tekstów (domyślnie stosowane byłoby kodowanie UTF8). Nazwa pliku tworzona jest na podstawie nazwy katalogu roboczego aplikacji zwracanego przez właściwość ApplicationWorkingDirectory. Następnie tworzony i zapisywany jest tekst komunikatu, w którego treści umieszczana jest nazwa aktualnie zalogowanego użytkownika CurrentUserName oraz nazwa stanowiska CurrentStationName. Na końcu funkcja Initialize zwraca wartość true informującą o zakończeniu działania skryptu.

Wywołanie funkcji ReportMessage nie jest niezbędne. Dobrym zwyczajem jest jednak rejestrowanie w standardowym logu komunikatów informujących o pracy skryptu oraz ewentualnych błędach wykonania.