A hands-on learning project that demonstrates how to create interactive automation scripts in DataMiner using the Interactive Automation Script (IAS) Toolkit.
Open Guide.md for detailed step-by-step instructions.
This project teaches you how to build interactive automation scripts that can be embedded in Low-Code Apps as components. Through a practical example of a maintenance window management system, you'll learn how to:
- Create interactive dialogs with various UI components (labels, buttons, calendars, dropdowns, text boxes)
- Implement the Model-View-Presenter (MVP) pattern for automation scripts
- Handle user interactions and events
- Manage application state with in-memory storage
- Integrate scripts as components in DataMiner Low-Code Apps
A Maintenance Window Management application that allows users to:
- View maintenance windows for devices
- Add new maintenance windows
- Edit existing maintenance windows
- Delete maintenance windows with confirmation dialogs
The application demonstrates real-world patterns for building interactive automation scripts that provide a seamless user experience within Low-Code Apps.
- Visual Studio 2022 or Visual Studio 2026
- DataMiner Integration Studio (DIS) extension
- Access to a DataMiner system (DaaS or on-premise)
- Basic knowledge of C# and DataMiner automation scripts
-
Clone the repository
git clone https://github.com/SkylineCommunications/Skyline.DataMiner.Learning.MakingMaintenanceObservable.git cd Skyline.DataMiner.Learning.MakingMaintenanceObservable -
Select the appropriate branch
hands-on: Starting point for following the tutorialmain: Complete solution with all features implemented
-
Open the solution
- Open
Skyline.DataMiner.Learning.MakingMaintenanceObservable.slnin Visual Studio
- Open
-
Follow the guide
- See Guide.md for detailed step-by-step instructions
- The guide walks you through implementing all features from scratch
-
Manage Maintenance (Learning)/ - The main automation script project
DeviceMaintenanceApi/- In-memory data storage and modelsDialogs/- Interactive dialog implementationsMaintenanceOverview/- Main overview dialogMaintenance/- Add/edit maintenance window dialog
ManageMaintenanceController.cs- Main controller coordinating dialogs
-
MakingMaintenanceObservable Package/ - Catalog package configuration
PackageContent/- Package resources and referencesCatalogInformation/- Catalog metadata and images
This project uses the Skyline.DataMiner.Utils.InteractiveAutomationScriptToolkit NuGet package, which provides:
- Pre-built UI widgets (buttons, labels, text boxes, calendars, dropdowns)
- Dialog management and navigation
- Event handling for user interactions
- Consistent styling and layout
To make a script interactive and embeddable in Low-Code Apps:
- Add the
<Interactivity>Always</Interactivity>element to the script XML (DataMiner 10.5.9+) - Use the IAS Toolkit to build dialogs and handle user interactions
- Configure the script as an "Interactive Automation Script" component in Low-Code Apps
- Guide: Guide.md - Complete hands-on tutorial
- Catalog: Making Scripts Interactive and Observable
- IAS Toolkit:
- Documentation: DataMiner Docs - IAS Toolkit
- NuGet Package: Interactive Automation Script Toolkit
- GitHub: IAS Toolkit Repository
- Start with the hands-on branch - Clone and checkout the
hands-onbranch for a guided learning experience - Follow the Guide - Work through Guide.md step by step
- Build incrementally - Each section builds upon the previous one
- Test frequently - Publish to your DataMiner system and test in a Low-Code App
- Compare with main - Check the
mainbranch to see the complete implementation
The data in this learning project is stored in memory only. When the script restarts, all changes are lost and the original demo data is restored. This is intentional for learning purposes - in a production scenario, you would persist data using DataMiner Object Models (DOM) or to other storage.
This is a learning resource maintained by Skyline Communications. For issues or suggestions, please refer to the GitHub repository.
This project is provided as a learning resource for the DataMiner community and is licensed under the MIT License - see the LICENSE file for details.

