Moduł skryptowy
Moduł skryptowy integruje silniki Octave i Python, umożliwiając użytkownikom pisanie i uruchamianie obliczeń przy użyciu dowolnego języka w portalu wymagań i systemów. Moduł został zaprojektowany do wykonywania złożonych obliczeń, które nie są możliwe za pomocą standardowego ValiEngine.
Jeśli użytkownicy chcą manipulować innymi obiektami niż numeryczne Valis, muszą użyć interfejsu API Python portalu Requirements & Systems Portal. Przykładowe przypadki użycia obejmują:
-
Tworzenie wartości i zbiorcze dodawanie jej do wielu bloków
-
Zbiorcze edytowanie identyfikatorów wymagań
-
Uruchamianie symulacji przy użyciu Pythona
-
Konwersja jednostek mocy na kW.
-
Uruchamianie niestandardowego przepływu pracy na podstawie automatycznych wyzwalaczy
Przepływ modułu skryptowego
Aby skorzystać z modułu, użytkownik tworzy nowy skrypt, dodaje dane wejściowe/wyjściowe, zapisuje kod w formacie .m lub .py i uruchamia kod w celu uzyskania żądanych danych wyjściowych.
Przepływ pracy modułu skryptowego. Tworzenie nowego skryptu
Aby utworzyć nowy skrypt, kliknij opcję "+ Script" (1) w modułach skryptowych.

Pojawi się okno dialogowe umożliwiające wprowadzenie nazwy skryptu, wybór silnika (Octave lub Python) oraz dodatkowe opcje do wykorzystania/ponownego wykorzystania przez użytkownika z szablonów.
Opcja tworzenia nowego skryptuPo utworzeniu nowego skryptu użytkownicy mogą również tworzyć dodatkowe pliki tekstowe, JSON i YAML dla swoich skryptów. Aby dodać nowy plik, kliknij opcję "+Dodaj plik" (1), dodaj nazwę i wybierz typ pliku w oknie dialogowym. Spowoduje to dodanie pliku do skryptu.
Aby użyć któregokolwiek z dodatkowo utworzonych plików, użytkownicy muszą dołączyć następujące dwie linijki kodu u góry pliku main.py:
import site
site.addsitedir('script_code/')
Po tych dwóch linijkach można wywołać dowolne dodatkowe pliki za pomocą standardowej instrukcji import.
Zarządzanie sekretami:
Aby nie narażać na użycie niezbędnych danych uwierzytelniających podczas korzystania ze skryptów, które łączą się z naszym API lub innymi narzędziami, możliwe jest zdefiniowanie osobistych tajnych zmiennych, które można wywołać podczas uruchamiania skryptu i nie ryzykować ujawnienia ich innym użytkownikom podczas wdrażania poprzez przechowywanie ich w plikach skryptów.
Jak i gdzie je dodać
Sekrety można definiować w panelu Ustawienia w sekcji Sekrety użytkownika. Sekrety te mogą być ponownie wykorzystane w skrypcie do logowania się do portalu wymagań i systemów. Oto krótki film pokazujący, jak tworzyć sekrety użytkowników.
Jak sama nazwa wskazuje, sekrety te są unikalne dla każdego użytkownika i dostępne tylko dla tych, którzy je zdefiniowali.
Jak używać sekretów w skrypcie
Importując nazwę sekretu z modułu ".settings", użytkownicy mogą używać sekretów do uwierzytelniania w skryptach.
from .settings import USERNAME, PASSWORD #uwaga na wielkość liter, użyj tego samego słowa użytego w sekretach użytkownika.
LOGIN_DATA = {
'domain': 'API_URL',
'username': USERNAME,
'password': PASSWORD
}
W czasie wykonywania skrypty będą pobierać wartości tych zmiennych z sekretów zdefiniowanych w ustawieniach użytkownika, który uruchamia skrypt, i są one zależne od uprawnień tego użytkownika. Skrypty nie powinny zawierać żadnych funkcji wyjściowych tych zmiennych, aby nie narażać sekretów użytkownika.
Skrypty ogólnego użytku, które mają być uruchamiane za pomocą automatyzacji, można skonfigurować z uwierzytelnianiem przez użytkownika na poziomie administratora, który może usunąć uprawnienia do odczytu wszystkim innym użytkownikom, dzięki czemu skrypt pozostanie ukryty.
System kolejek
Dzięki systemowi kolejek użytkownicy mogą mieć pewność, że ich skrypty będą zawsze uruchamiane, zwłaszcza jeśli wstępnie zdefiniowane automatyzacje regularnie wyzwalają niestandardowe skrypty przepływu pracy. W tym celu należy przejść do sekcji "Runs". Można tam przejrzeć wszystkie uruchomienia wszystkich skryptów lub uruchomienia określonego skryptu.
Wszystkie przebiegi skryptów będą teraz zapisywane we wdrożeniu i można je przeglądać dla każdego skryptu lub dla wszystkich skryptów, wybierając opcję "Wszystkie skrypty" w górnej części drzewa modułu skryptów.
Uruchomiony skrypt można zatrzymać, klikając przycisk "Stop" w menu rozwijanym Akcje.
Akcja zatrzymania skryptu. Obsługa uprawnień
Skrypty mają własne uprawnienia, które można obsługiwać bezpośrednio z poziomu modułu skryptowego lub z poziomu modułu projektu w sekcji "Uprawnienia".
Uruchamianie skryptów z pulpitu nawigacyjnego
Użytkownicy mogą również tworzyć niestandardowe pulpity interakcji za pomocą przycisków "Uruchom skrypt". Są one podobne do wcześniej dostępnych przycisków Request używanych do wyzwalania wywołań REST, ale można je skonfigurować tak, aby uruchamiały pojedyncze lub wiele skryptów po naciśnięciu przycisku.
Korzystając z interfejsu API Python w wywoływanych skryptach, można skonfigurować niestandardowe pulpity interakcji, w których elementy takie jak standardowe pola tekstowe mogą być używane jako pola wejściowe i wyjściowe dla skryptu, który może następnie, bezpośrednio i pośrednio, wpływać na inne wyświetlane elementy.
W tym celu należy przejść do modułu Project i wybrać opcję "Dashboards". Następnie przejdź do niestandardowego pulpitu nawigacyjnego i kliknij ikonę Plus w prawym dolnym rogu. Następnie wybierz opcję "Uruchom skrypt" z listy rozwijanej "Akcje".
Tworzy to przycisk, za pomocą którego można uruchamiać skrypty aktualizujące określone bloki pulpitu nawigacyjnego.
Interesującym przypadkiem użycia jest sytuacja, w której zaliczone i nieudane testy są zliczane i wyświetlane w bloku tekstowym na tym samym pulpicie nawigacyjnym.
Skrypt i automatyzacja
Wstępnie ustawione automatyzacje mogą wyzwalać skrypty. Na przykład, złożone obliczenia mogą być uruchamiane automatycznie, jeśli ich zdefiniowane dane wejściowe zostaną zmienione. Dodatkowo, korzystając z interfejsu API Python portalu wymagań i systemów, można również zaprogramować złożone zachowanie na zamówienie w celu zbudowania niestandardowych przepływów pracy.
Automatyzacje nie tylko uruchamiają skrypty, ale także przekazują informacje o tym, które obiekty je uruchomiły, dzięki czemu skrypty mogą działać bezpośrednio na tych obiektach. Informacje o obiektach są udostępniane w zmiennej słownikowej "kwargs" pod kluczem "triggered_objects", jak w poniższym przykładzie:
object_data = kwargs['triggered_objects'][0]
Automatyzacje będą również uruchamiać skrypty, jeśli zostaną uruchomione przez użytkowników, którzy nie mają uprawnień do przeglądania tych skryptów, umożliwiając w ten sposób dostosowanie przepływu pracy i obliczenia przez użytkowników administracyjnych, przy jednoczesnym ograniczeniu dostępu do kodu bazowego, takiego jak zastrzeżone modele matematyczne i fizyczne.
Przykładowe skrypty przepływu pracy można znaleźć w folderze szablonów publicznego repozytorium valifn.
Niestandardowe obrazy Valifn
Użytkownicy on-prem mają dodatkową funkcję dostosowywania swojej instancji valifn do uruchamiania dowolnego pakietu Python, pod warunkiem, że ich sprzęt serwerowy jest w stanie to obsłużyć. Użytkownicy on-prem mają również możliwość zarządzania obrazem valifn, który ma być używany w czasie wykonywania skryptu.
Jak pokazano, opcja ta jest dostępna jako pole tekstowe w Ustawieniach ogólnych dla każdego skryptu.
Jak utworzyć obraz niestandardowy
Dalsze instrukcje dotyczące konfigurowania własnych obrazów valifn można znaleźć na stronach dokumentacji publicznego repozytorium:
Przykłady skryptów Python
Przydatne przykłady skryptów można znaleźć zarówno w przykładowym projekcie wdrożenia Valicopter 5000 (nowe wdrożenia), jak i w publicznym repozytorium Github ValiFn.
Przykłady te mogą być uruchamiane ręcznie lub za pomocą automatyzacji (wyłącznie w niektórych przypadkach) i mogą być używane w obecnej postaci lub modyfikowane przez użytkowników w celu wykonania dowolnego rodzaju niestandardowego zachowania.
Wiele z tych przykładów zostało stworzonych jako demonstracje możliwości modułu skryptowego i automatyzacji do tworzenia zautomatyzowanych przepływów pracy na zamówienie. Zachęcamy użytkowników do dostosowywania istniejących skryptów do swoich potrzeb i udostępniania wszelkich skryptów ogólnego przeznaczenia i ulepszeń w publicznym repozytorium ValiFn.
Ostrzeżenie o podejrzanych dzieciach (automatyzacja)
Racjonalne
Ten skrypt jest wyzwalany przez automatyzację, która musi być ustawiona na wyzwalanie przez zmianę istniejącego wymagania, ponieważ skrypt działa na właściwościach edytowanego wymagania. Jego obecnie zdefiniowanym działaniem jest umieszczenie dyskusji w każdym z jego elementów podrzędnych (jeśli takie posiada) z dostosowanym komunikatem dotyczącym statusu zmiany wymagania nadrzędnego.
Sugerowane dostosowanie
Innymi możliwymi działaniami może być utworzenie zadania lub dodanie edytowanego wymagania do przeglądu.
Bieżące działania
-
Sprawdza, czy wymaganie, które uruchomiło wstępnie ustawioną automatyzację, ma dzieci
-
Jeśli ma dzieci, publikuje dyskusję w każdym wymaganiu podrzędnym, wskazując, że rodzic został zaktualizowany.
-
Dyskusja zawiera tożsamość użytkownika, który edytował wymaganie, uruchamiając w ten sposób automatyzację.
Nowe zadanie (automatyzacja)
Racjonalne
Podczas tworzenia nowego bloku potencjalny klient wymagał, aby zadania były automatycznie tworzone i przypisywane do określonego użytkownika. W tym przykładzie wstępnie ustawiona automatyzacja wyzwalana przez utworzenie nowego Bloku utworzy nowe zadanie i przypisze do niego użytkownika. Idealnie było dodać obiekt wyzwalający jako dane wejściowe, ale to rozwiązanie nie zostało sfinalizowane.
Sugerowane dostosowanie
Użyj kwargs['triggered_objects'][0], aby wyodrębnić informacje o obiekcie, który uruchomił automatyzację i dodać je do pola wejściowego zadania.
Bieżące działania
-
Publikuje nowe zadanie przypisane do określonego użytkownika.
Statystyki wymagań
Racjonalne
Prosty przykład tego, jak można utworzyć bardziej spersonalizowany licznik z większą liczbą wartości statystycznych niż te dostarczane w domyślnych blokach dostępnych w Dashboardach i dokumentach analitycznych. Może być uruchamiany ręcznie lub ustawiony na uruchamianie z automatyzacji za każdym razem, gdy wymaganie jest tworzone, modyfikowane lub usuwane.
Sugerowane dostosowania
-
Pobranie wyodrębnionych informacji o wymaganiach i wyprowadzenie z nich bardziej złożonych statystyk poprzez porównanie ich z wcześniej zaktualizowanymi wartościami. Każda wartość może wskazywać, o ile wzrosła/zmniejszyła się wyrażona w procentach.
-
Porównanie statystyk wdrożenia poprzez indywidualne uruchomienie skryptu w każdym projekcie i dodanie specjalnej instancji, która pobiera statystyki z każdego projektu, wyświetlając je na pulpicie nawigacyjnym.
-
Ustaw niestandardowe ostrzeżenie dla administratorów projektu, jeśli statystyki pokazują nagły spadek liczby wymagań, sygnalizując możliwą drastyczną zmianę w projekcie.
Bieżące działania
-
Tworzy ogólne statystyki wymagań dla pojedynczego projektu we wdrożeniu.
-
Poprawia wstępnie utworzone Valis z wynikami.
Generowanie specyfikacji
Racjonalne
Przykładowy skrypt demonstrujący możliwości interfejsu API Python w zakresie tworzenia w pełni zautomatyzowanych raportów. Chociaż główny skrypt jest również dostępny na stronie dokumentacji integracji, ta konkretna wersja została dostosowana do uruchamiania z modułu skryptowego wdrożenia.
Może on być uruchamiany przez automatyzację lub ręcznie.
Sugerowane dostosowania
-
Utworzenie pełnego raportu poprzez dostosowanie bieżącego procesu pobierania wymagań w celu wyodrębnienia bloków i innych obiektów do wypełnienia w raporcie
-
Dodanie innych konfigurowalnych pól, które mogą być pobierane z niestandardowych bloków tekstowych pulpitu nawigacyjnego, z których można je również wyzwalać.
-
Zmiana końcowego pliku wyjściowego na PDF zamiast edytowalnego pliku Word.
Bieżące działania
-
Pobiera plik Word jako szablon z danego wdrożenia i zwraca jako dane wyjściowe wygenerowane pliki, tyle ile jest specyfikacji, umieszczone w Zarządzaniu plikami wdrożenia (więcej informacji można znaleźć w sekcji Eksport specyfikacji na podstawie szablonu Microsoft Word ).
Pulpit nawigacyjny testów
Rational
Liczniki Dashboard nie dogoniły jeszcze modułu Testing i nie ma jeszcze zautomatyzowanych liczników dla testów. Ten skrypt został opracowany jako dowód koncepcji niestandardowego licznika, który nie został jeszcze zaimplementowany. Początkowo miał być uruchamiany ręcznie za pomocą przycisku Run Script na pulpicie nawigacyjnym.
Sugerowane dostosowania
-
Rozszerzenie statystyk testów, które są publikowane z powrotem na pulpitach nawigacyjnych.
-
Jeśli test zakończy się sukcesem, należy opublikować jego wynik w połączonym zadaniu i zmienić jego stan na "Gotowe".
Bieżące działania
-
Zwraca ciąg znaków, umieszczony na predefiniowanych blokach tekstowych Dashboard, z obliczonymi statystykami przebiegu testu.
-
Może pobierać dane wejściowe z automatyzacji lub może być uruchamiany ręcznie.