Mô-đun Script
Mô-đun Scripting tích hợp các engine Octave và Python, cho phép người dùng viết và chạy các phép tính bằng một trong hai ngôn ngữ ngay trong Requirements & Systems Portal. Mô-đun này được thiết kế để thực hiện các phép tính phức tạp mà ValiEngine tiêu chuẩn không thể xử lý.
Nếu người dùng muốn thao tác với bất kỳ đối tượng nào khác ngoài các Vali dạng số, họ phải sử dụng Python API của Requirements & Systems Portal. Một số ví dụ sử dụng bao gồm:
-
Tạo một giá trị và thêm hàng loạt vào nhiều Block
-
Chỉnh sửa hàng loạt định danh yêu cầu
-
Chạy mô phỏng bằng Python
-
Chuyển đổi đơn vị của các giá trị công suất sang kW.
-
Chạy hành vi quy trình làm việc tùy chỉnh dựa trên các trình kích hoạt tự động
Luồng hoạt động của mô-đun Scripting
Để sử dụng mô-đun này, người dùng tạo một script mới, thêm đầu vào/đầu ra, viết mã trong tệp .m hoặc .py, rồi chạy mã để nhận đầu ra mong muốn.
Quy trình làm việc của mô-đun Scripting. Tạo Script Mới
Để tạo script mới, nhấp vào tùy chọn “+ Script” (1) trong các mô-đun scripting.

Một hộp thoại sẽ xuất hiện, cho phép bạn nhập tên script, chọn engine (Octave hoặc Python) và có thêm các tùy chọn để người dùng sử dụng/tái sử dụng từ các mẫu.
Tùy chọn Tạo Script MớiSau khi tạo script mới, người dùng cũng có thể tạo thêm các tệp Text, JSON và YAML cho script của mình. Để thêm tệp mới, nhấp vào tùy chọn “+Add file” (1), nhập tên và chọn loại tệp trong hộp thoại. Thao tác này sẽ thêm một tệp vào script.
Để sử dụng bất kỳ tệp bổ sung nào đã tạo, người dùng phải thêm hai dòng mã sau ở đầu tệp main.py:
import site
site.addsitedir('script_code/')
Sau hai dòng này, mọi tệp bổ sung đều có thể được gọi bằng câu lệnh import chuẩn.
Quản lý secrets:
Để tránh làm lộ thông tin xác thực cần thiết khi sử dụng các script kết nối tới API của chúng tôi hoặc API của các công cụ khác, có thể định nghĩa các biến secret cá nhân để gọi khi chạy script mà không có nguy cơ lộ cho những người dùng khác trên deployment do lưu chúng trong các tệp script.
Cách và nơi thêm chúng
Các secret có thể được định nghĩa trong bảng Settings dưới mục User Secrets. Các secret này có thể được tái sử dụng trong script để đăng nhập vào Requirements & Systems Portal. Đây là một video ngắn minh họa cách bạn có thể tạo user secrets.
Đúng như tên gọi, các secret này là duy nhất với từng người dùng và chỉ những ai đã định nghĩa chúng mới có thể truy cập.
Cách sử dụng Secrets trong script
Bằng cách import tên secret từ module “.settings”, người dùng có thể dùng secrets để xác thực trong script.
from .settings import USERNAME, PASSWORD #case sensitive, use the same word used in the user secrets.
LOGIN_DATA = {
'domain': 'API_URL',
'username': USERNAME,
'password': PASSWORD
}
Khi chạy, các script sẽ lấy giá trị cho các biến này từ các secret được định nghĩa trong cài đặt người dùng của người kích hoạt script, và chúng phụ thuộc vào quyền của người dùng đó. Script không nên chứa bất kỳ hàm xuất nào của các biến này để tránh làm lộ user secrets.
Các script dùng chung được thiết lập để được kích hoạt bởi automation có thể được cấu hình xác thực bởi một người dùng cấp Admin, người có thể gỡ quyền đọc của tất cả người dùng khác, nhờ đó giữ script ở trạng thái ẩn.
Hệ thống hàng đợi
Với hệ thống hàng đợi, người dùng có thể yên tâm rằng script của họ sẽ luôn chạy, đặc biệt nếu các automation được định nghĩa sẵn thường xuyên kích hoạt các script workflow tùy chỉnh. Để thực hiện việc này, vui lòng truy cập mục “Runs”. Bạn có thể xem tất cả các lần chạy của mọi script hoặc các lần chạy của một script cụ thể.
Tất cả các lần chạy script giờ đây sẽ được lưu trên deployment và có thể được xem theo từng script hoặc cho tất cả script bằng cách chọn tùy chọn “All scripting” ở đầu cây Script Module.
Bạn có thể dừng một script đang chạy bằng cách nhấp vào nút “Stop” trong menu thả xuống Actions.
Hành động dừng cho một script. Xử lý quyền hạn
Script có quyền riêng và có thể được quản lý trực tiếp trong Scripting Module hoặc từ Project Module dưới mục “Permissions”.
Chạy script từ dashboard
Người dùng cũng có thể tạo các dashboard tương tác tùy chỉnh bằng các nút “Run Script”. Chúng tương tự như các nút Request đã có trước đây dùng để kích hoạt các lệnh gọi REST, nhưng có thể được cấu hình để chạy một hoặc nhiều script chỉ bằng một lần nhấn nút.
Bằng cách sử dụng Python API trong các script được gọi, có thể thiết lập các dashboard tương tác tùy chỉnh, trong đó các phần tử như hộp văn bản tiêu chuẩn có thể được dùng làm trường đầu vào và đầu ra cho script, từ đó cũng có thể tác động trực tiếp hoặc gián tiếp đến các phần tử khác đang hiển thị.
Để thực hiện việc này, hãy vào Project Module và chọn “Dashboards”. Sau đó vào dashboard tùy chỉnh của bạn và nhấp vào biểu tượng dấu cộng ở góc dưới bên phải. Tiếp theo chọn tùy chọn “Run script” từ menu thả xuống “Actions”.
Thao tác này sẽ tạo một nút để bạn có thể chạy các script cập nhật các block cụ thể trên dashboard của mình.
Một trường hợp sử dụng thú vị là đếm số lượt chạy kiểm thử đạt và không đạt rồi hiển thị trong một block văn bản trên cùng dashboard đó.
Script & Automations
Các automation được thiết lập sẵn có thể kích hoạt script. Ví dụ, một phép tính phức tạp có thể được thiết lập để tự động chạy nếu các đầu vào đã xác định của nó bị thay đổi. Ngoài ra, bằng cách sử dụng Python API của Requirements & Systems Portal, cũng có thể lập trình hành vi phức tạp theo nhu cầu để xây dựng các workflow tùy chỉnh.
Không chỉ automation sẽ kích hoạt script, mà chúng còn truyền thông tin về các đối tượng nào đã kích hoạt chúng để script có thể tác động trực tiếp lên các đối tượng đó. Thông tin đối tượng được cung cấp trong biến từ điển “kwargs”, dưới khóa ‘triggered_objects’, như trong ví dụ sau:
object_data = kwargs['triggered_objects'][0]
Automation cũng sẽ chạy script nếu được kích hoạt bởi người dùng không có quyền xem các script đó, nhờ vậy cho phép tùy chỉnh workflow và tính toán bởi người dùng admin trong khi vẫn giới hạn quyền truy cập vào mã nguồn bên dưới, chẳng hạn như các mô hình toán học và vật lý độc quyền.
Các script workflow ví dụ có thể được tìm thấy trong thư mục templates của kho lưu trữ công khai valifn.
Ảnh valifn tùy chỉnh
Người dùng on-prem có thêm tính năng tùy chỉnh phiên bản valifn của họ để chạy bất kỳ gói Python nào họ muốn, miễn là phần cứng máy chủ của họ có thể đáp ứng. Người dùng on-prem cũng sẽ có khả năng quản lý ảnh valifn nào sẽ được dùng khi chạy script.
Như minh họa, tùy chọn này khả dụng dưới dạng một trường văn bản trong General Settings cho từng script riêng lẻ.
Cách tạo ảnh tùy chỉnh
Hướng dẫn thêm về cách thiết lập ảnh valifn riêng của bạn có thể được tìm thấy trong các trang tài liệu của kho lưu trữ công khai:
Ví dụ Script Python
Các ví dụ script có thể sử dụng được tìm thấy cả trong dự án ví dụ Valicopter 5000 của deployment (deployment mới) và trong kho lưu trữ công khai Github của ValiFn.
Các ví dụ này có thể được kích hoạt thủ công hoặc bằng automations (chỉ trong một số trường hợp), và có thể được dùng nguyên trạng hoặc được người dùng chỉnh sửa để thực hiện bất kỳ hành vi tùy chỉnh nào.
Nhiều ví dụ trong số này được tạo ra để minh họa các khả năng của mô-đun scripting và automations trong việc tạo các workflow tự động hóa tùy chỉnh. Người dùng được khuyến khích tùy chỉnh bất kỳ script hiện có nào theo nhu cầu của mình và chia sẻ các script đa dụng cũng như các cải tiến lên kho lưu trữ công khai của ValiFn.
Cảnh báo nghi vấn cho phần tử con (Automation)
Cơ sở
Script này được kích hoạt bởi một automation, automation này phải được cấu hình để kích hoạt khi có thay đổi đối với một requirement hiện có vì script tác động lên các thuộc tính của requirement đã chỉnh sửa. Hành động hiện được định nghĩa của nó là tạo một cuộc thảo luận trong từng phần tử con của requirement đó (nếu có) với một thông điệp tùy chỉnh liên quan đến trạng thái thay đổi của requirement cha.
Tùy chỉnh được đề xuất
Các hành động khả dĩ khác có thể là tạo một task hoặc thêm requirement đã chỉnh sửa vào một đợt review.
Các hành động hiện tại
-
Kiểm tra xem requirement đã kích hoạt automation được thiết lập sẵn có các phần tử con hay không
-
Nếu có phần tử con, script sẽ đăng một cuộc thảo luận trong từng requirement con để cho biết requirement cha đã được cập nhật.
-
Cuộc thảo luận bao gồm danh tính của người dùng đã chỉnh sửa requirement, tức người đã kích hoạt automation.
Task mới (Automation)
Cơ sở
Khi tạo Block mới, có một nhu cầu là các task sẽ được tự động tạo và gán cho một người dùng cụ thể. Trong ví dụ này, một automation được thiết lập sẵn và kích hoạt bởi việc tạo Block mới sẽ tạo một task mới và gán cho một người dùng. Ban đầu dự định thêm đối tượng kích hoạt làm đầu vào nhưng phần phát triển đó chưa được hoàn thiện.
Tùy chỉnh được đề xuất
Sử dụng kwargs['triggered_objects'][0] để trích xuất thông tin của đối tượng đã kích hoạt quá trình tự động hóa và thêm thông tin đó vào trường đầu vào của tác vụ.
Các hành động hiện tại
-
Đăng một tác vụ mới được gán cho một người dùng được chỉ định.
Thống kê yêu cầu
Cơ sở lý luận
Một ví dụ đơn giản về cách tạo một bộ đếm tùy chỉnh hơn với nhiều giá trị thống kê hơn so với các giá trị được cung cấp trong các khối mặc định có sẵn trong Dashboard và tài liệu Analysis. Có thể chạy thủ công hoặc thiết lập để chạy từ một quy trình tự động hóa mỗi khi một yêu cầu được tạo, chỉnh sửa hoặc xóa.
Các tùy chỉnh được đề xuất
-
Lấy thông tin đã trích xuất về các yêu cầu và suy ra các thống kê phức tạp hơn bằng cách so sánh với các giá trị đã được cập nhật trước đó. Mỗi giá trị có thể cho biết mức tăng/giảm được biểu thị theo phần trăm.
-
So sánh thống kê triển khai bằng cách chạy riêng lẻ script trong từng dự án và thêm một phiên bản đặc biệt lấy thống kê từ mọi dự án, hiển thị chúng trong một dashboard.
-
Đặt cảnh báo tùy chỉnh cho quản trị viên dự án nếu thống kê cho thấy số lượng yêu cầu giảm đột ngột, báo hiệu một thay đổi lớn có thể đã xảy ra với dự án.
Các hành động hiện tại
-
Xây dựng thống kê tổng thể về yêu cầu cho một dự án đơn lẻ trên môi trường triển khai.
-
Cập nhật các Vali được tạo sẵn bằng kết quả.
Tạo đặc tả
Cơ sở lý luận
Một script ví dụ minh họa sức mạnh của Python API trong việc tạo các báo cáo hoàn toàn tự động. Mặc dù script chính cũng có sẵn trên trang tài liệu tích hợp, phiên bản cụ thể này đã được điều chỉnh để chạy từ mô-đun scripting của môi trường triển khai.
Nó có thể được kích hoạt bằng một quy trình tự động hóa hoặc chạy thủ công.
Các tùy chỉnh được đề xuất
-
Tạo một báo cáo đầy đủ bằng cách điều chỉnh quy trình truy xuất yêu cầu hiện tại để trích xuất Blocks và các đối tượng khác cần được điền vào báo cáo
-
Thêm các trường tùy chỉnh khác, có thể được lấy từ các khối văn bản dashboard tùy chỉnh, từ đó nó cũng có thể được kích hoạt.
-
Thay đổi tệp đầu ra cuối cùng thành PDF thay vì tệp Word có thể chỉnh sửa.
Các hành động hiện tại
-
Lấy một tệp Word làm mẫu, từ một môi trường triển khai nhất định, và trả về dưới dạng đầu ra các tệp được tạo ra, số lượng tương ứng với số lượng đặc tả, được đặt trong phần Files Management của môi trường triển khai (xem Xuất đặc tả dựa trên Microsoft Word Template để biết thêm chi tiết).
Dashboard kiểm thử
Cơ sở lý luận
Các bộ đếm trên dashboard hiện vẫn chưa bắt kịp mô-đun Testing và chưa có bộ đếm tự động cho kiểm thử. Script này được phát triển như một minh chứng khái niệm cho một bộ đếm tùy chỉnh vẫn chưa được triển khai. Ban đầu, nó được thiết kế để chạy bằng cách kích hoạt thủ công từ nút Run Script trên Dashboard.
Các tùy chỉnh được đề xuất
-
Mở rộng thống kê kiểm thử được gửi trở lại Dashboard.
-
Nếu một lần chạy kiểm thử thành công, hãy gửi kết quả đến một tác vụ được liên kết và chuyển trạng thái của tác vụ đó sang “Done”.
Các hành động hiện tại
-
Trả về một chuỗi, được đặt trên các khối văn bản Dashboard được xác định trước, chứa thống kê lần chạy kiểm thử đã được tính toán.
-
Nó có thể nhận đầu vào từ một quy trình tự động hóa hoặc được kích hoạt thủ công.