Profile

Thomas Ghysbrecht

User info

First name Thomas
Last name Ghysbrecht

DevOps Program

Acquired rank
Enabler
Points progress
Number of DevOps Professional Points
6418 DevOps Points
Here are a few tips to level up your DevOps game and unlock an arsenal of perks and benefits.
DevOps attestation Request your attestation ID and expiry date

Achievements

Questions asked

Answers given

Hi Joey, Compilation errors issue: There is some logic in the Automation module that makes it possible to define script code without having to put this in a Run method of the Script class. (You can just...

View Question

The SRM (and other) helpers require a callback to DataMiner. This can be added like this: helper = new ResourceManagerHelper(); helper.RequestResponseEvent += (s, e) => e.responseMessage = engine.SendSLNetSingleResponseMessage(e.requestMessage);

View Question
14 Votes Selected

Update 2023-06-28: The User-Defined APIs feature has been released as scheduled in 10.3.6! You can find the documentation here: https://docs.dataminer.services/user-guide/Advanced_Modules/User%20Defined%20APIs/UD_APIs.html...

View Question

Hi Joey, In Cube, there is currently a simple UI available that gives you an overview of all  APIs & tokens. Note that this is currently in soft-launch and may change in the future. The 'Viewing...

View Question
10 Votes Selected

Hi Ive, If the reference to the DomInstance is stored in a list, it is unfortunately not possible at the moment with GQI because it does not support filtering & displaying DOM fields with multiple...

View Question
10 Votes

Hi Mieke, There is nothing built-in since DataMiner does not know the actual secret of the token (only a secure hash). You can however manually create another token on the production system and set the...

View Question
9 Votes Selected

Hi Edson, As suggested by the thread initiated by Ruben, the issue is indeed caused by the 'EnableJson' option on the deployment. This is enabled by default and cannot be overridden in the Cube UI. This...

View Question
9 Votes Selected

Hi Mieke, It is unfortunately not possible to configure the size of these text boxes. Scaling the size with the contents may make sense indeed, feel free to add a feature suggestion for this.

View Question
8 Votes Selected

Hi Leander, If I understand the situation correctly, you may have accidentally enabled 'multiple sections' for that Section Definition. Being able to click that '+' sign to add another Section is a feature...

View Question
8 Votes Selected

Hi Robin, I believe that this error indicates that there is not enough disk space free on the system. Elastisearch goes into a read-only mode to protect your data. You will have to free up some space...

View Question
8 Votes

Hi Daniela, It looks like the URL you are trying to use is incomplete. The path should always start with 'api/custom/'. This would thus make: "https://<host>/api/custom/DOL/maintenance". Can you...

View Question
7 Votes Selected

Hi Ben, With dispatch, do you mean that a mail is sent with the PDF? If that is the case, you could simply create an Automation script with an email action. There you can configure that a PDF of a dashboard...

View Question
7 Votes Selected

Hi Rajesh, Can you try removing this FieldDescriptor and adding it again? (Same name & type) It will have a different ID (which will hopefully not lead to too much extra work for you). The DomInstance...

View Question

Hi Benjamin, Did you see any error/stack trace when the Client Test Tool failed to delete the DOM Instances? I am not sure what the exact cause would be for this slow deletion, but I could come up with...

View Question
7 Votes Selected

Hi Pieter-Jan, I have had this issue as well and found that I could fix this by repairing my Visio installation.

View Question
7 Votes Selected

As Alexander mentioned, this does indeed seem to be an exception that is thrown inside the installation script. I tried this on my local development agent running a dev build of 10.4.10 and this worked...

View Question

Hi Leander, As you have noticed, there is indeed a limitation on the length of a DOM field when using Elasticsearch or OpenSearch. Due to the way the data is indexed for search, the limit is 32,766 UTF8...

View Question

Hey Christine, It is possible to also pass information to the API script using query parameters. (From DataMiner 10.4.1) You can find more info here: https://docs.dataminer.services/user-guide/Advanced_Modules/User-Defined_APIs/Defining_an_API/UD_APIs_Defining_a_new_API.html#user-input-data...

View Question

Hi Stacey, There is currently no way to disable the DOM instance history creation. A task for this is already in our backlog & should be scheduled in the relatively near future. You can however already...

View Question
6 Votes Selected

Hi Rajesh, By default, when no 'DomInstanceNameDefinition' is found on the ModuleSettings or the DomDefinition (ModuleSettingsOverrides), the ID of the DomInstance will be used for its name. This docs...

View Question
6 Votes

Hi Edith, you can check the Elasticsearch logging to hopefully see why Elasticsearch doesn't want to start. The files can be found here: 'C:\Program Files\Elasticsearch\logs'. There could be quite a lot...

View Question
6 Votes

Hi Sergio, You could possibly re-use the same SMS Eagle device to send messages, but not receive them, as DataMiner will read and process each message that arrives on that device. The messages from other...

View Question

As João Severino already said, you will have to create a C# code block to use the script parameters in an email. This is a very short example script that does this: var scriptParamValue = engine.GetScriptParam("ParamName").Value;...

View Question
6 Votes

Hi Mieke, This method will not wait until the script starts if called with the 'Synchronous' option set to false. The execution will be added to the queue and will return. If a point is reached where...

View Question
5 Votes Selected

Hi Rui, For DOM, it is safe to just cast the 'SectionDefinition' to a 'CustomSectionDefinition'. That way you will have access to the methods for adding extra FieldDescriptors.

View Question
5 Votes Selected

Hi Ibrahim, The SLAutomation log has most likely started overwriting the previous log lines due to the large amount of them. You can find the most recent log line by searching for the separator '**********'....

View Question
5 Votes Selected

Found the issue. Checked my network configuration and saw that my DNS was set to 127.0.X.X. Apparently something related to the Cloudflare WARP VPN service. After toggling this on & off again, it works...

View Question
5 Votes Selected

Hi Justien, Since this is an interactive script that needs to wait on user input, you will have to provide a button that allows the user to dismiss the message. You can easily add a button yourself at...

View Question
5 Votes Selected

Hi Mieke, If retrieving a huge amount of DomInstances would be required, paging is the way to go. Keep in mind that the example you provided will load all these DomInstances into memory. If these could...

View Question
5 Votes Selected

Hi Martijn, You can do this using an 'AutoIncrementFieldDescriptor'. By adding one of those FieldDescriptors to a SectionDefinition, the DOM manager will automatically increment an ID and add the value...

View Question

Hi Thomas, As you have indeed noticed, there is no automated way of assigning these default values to a DomInstance. The default values defined on a FieldDescriptor are currently only used by the form...

View Question
5 Votes Selected

Hi Gerwin, Attachments are already fully supported for DOM. You can find a short explanation in the documentation here: https://docs.dataminer.services/user-guide/Advanced_Modules/DOM/DomHelper_class.html#attachments....

View Question
5 Votes Selected

Hi Michiel, The ID of the module where a DomInstance was created in is not encoded into the Guid. This is a separate string that should be stored alongside the Guid where necessary.

View Question
5 Votes Selected

Hi Arun, As mentioned by Miguel, that placeholder is indeed not supported in the context of a 'Send email' action in an Automation script. There are however two that are supported: [user] - Will be...

View Question
4 Votes Selected

Hi Gerwin, This should be fine as long as the existing data is still valid according to the updated state configuration. Considering you have only added states, I would assume that there should be no...

View Question
4 Votes Selected

Hi Ana, It is possible to retrieve all currently running scripts using an SLNet message. It is the same message that is used to populate the table in João's reply. Do note, as João mentioned, that there...

View Question
4 Votes Selected

Hi Thomas, The DOM API should retain the exact order in which the Sections were added to the DOM instance. If the create/update interaction with this DOM data is solely done using the DOM helper, then...

View Question

Hi Mieke, There is no automated way to generate API docs from User-Defined APIs configured in DataMiner. There is a reply to another Dojo question that elaborates a bit more about that: https://community.dataminer.services/question/user-defined-api-overview-and-documentation-of-deployed-apis/answer/104948/...

View Question
4 Votes Selected

Hi Thomas, There are currently no plans of supporting that use case in the context of User-Defined APIs. This feature is intended to allow easy interaction on a caller basis via HTTP requests. I would...

View Question
4 Votes Selected

Hi Julio, Does the code you posted work for your use case? Because from what I can tell, it looks correct. You need to define separate filters for all the conditions that should be met and then merge...

View Question
4 Votes Selected

Hi Blake, Update: I chatted with Blake offline & found the issue after checking out the SLClientTestTool follow of the connection. It seems that the web form component is adjusting two read-only DateTime...

View Question

Hi Wannes, Increasing the timeout is described on the 'DataMiner UserDefinableApiEndpoint DxM' page of the documentation. There is a section here that describes that you'll need to alter the config of...

View Question

Hi Gerwin, This is unfortunately not possible right now. But there is already a task for this on our backlog.

View Question
4 Votes Selected

Hi Mieke, That exception is caused due to an assembly redirect in the file "C:\Skyline DataMiner Configs\Skyline DataMiner\Files\SLNet.exe.config". There, the System.IO.FileSystem 'newVersion' should...

View Question
4 Votes Selected

Hi Bernard, You can check the "Attach CSV data files" advanced option when configuring your report. (See DataMiner help) The CSV data (in a .zip) will then be copied over, alongside the PDF or MHT file.

View Question

Hi Bernard, as Miguel already said, the bindings from 1.3.6.1.4.1.8813.1.1.2.2.17 onward are the alarm properties (And are variable depending on your configuration). If these extra OIDs are not desired,...

View Question
4 Votes Selected

Hi Peter, When a user clicks a button in a LCA which executes an Automation Script, it will be executed in the security context of that user. Any SLNet message sent within this script will be executed...

View Question
3 Votes Selected

Hi Tim, depending on the log levels, it could be that a delete action is logged in the DOM manager log file (SLDomManager_<module id>.txt). If the log level is not set to debug, there is unfortunately...

View Question
3 Votes Selected

Hi Jochen, The filter you provided should actually work fine. I just tried it out on my local dev agent and it seems to be working as expected. Even with an OR clause, and when using a multiple value...

View Question

Hi Tim, The easiest way to serialize and deserialize a DOM instance is by using the 'domInstance.ToJson()' and 'DomInstance.FromJson()' methods.

View Question
3 Votes Selected

Hi Michiel, This is perfectly possible. Seems like the documentation was missing a section for this. I just created a pull request that will add an example to the 'Filtering CRUD events' section of the...

View Question
3 Votes Selected

Hi Jens, User A would always read either the full old version or the full new version that was updated by user B. It should not be possible to retrieve a partially updated/corrupt DOM instance. It depends...

View Question
3 Votes Selected

Hi Toon, Can you check the SLUserDefinableApiManager.txt log file? This may reveal what may have gone wrong when the API script response is being handled. The current internal test version had an issue...

View Question
3 Votes Selected

Hi Jens, It is possible to use the 'KeyExists' exposer to retrieve all DOM instances that have a value for a given FieldDescriptor. There are however some important notes: This will only work efficiently...

View Question

Hi José, It is unfortunately not possible right now to feed the DOM instance ID of the DOM instance inside a form to another component. I agree that it would be very valuable that this is available and...

View Question
3 Votes Selected

Hi Apurva, It seems that the filter string is not entirely correct. As you can see in the SLNet Client Test tool, the subject ID (displayed as 'DomInstance ID') is actually prefixed with 'DomInstanceId'....

View Question
3 Votes Selected

Hi Amer, Providing the memory files to the script action can be done by adding a string to the second string array with the syntax 'MEMORY:1:MyMemoryFile'. You can add multiple strings and increment the...

View Question
3 Votes Selected

Hi Rejesh, Could you maybe post some screenshots that show what you mean? I am not sure if I understood your question correctly. I would expect that, if you take the date of a reservation in a script,...

View Question
3 Votes Selected

Hi John The DOM components in Dashboards & Low-Code apps are only available after enabling a soft-launch flag. These will be fully released in the upcoming 10.3.6 version. To see the DOM types in...

View Question

Hi Gerwin, You should indeed create a script that will execute the transition by code. You can then link this script to a DOM action, which is then linked to a DOM button. There is currently no built-in...

View Question

Hi Martijn, This should definitely be possible. I made a short example of how you can retrieve the DOM history for one DomInstance in a script: https://github.com/Skyline-ThomasGH/DataMiner_ScriptExamples/blob/main/DOM_GetHistoryForInstanceExample.xml...

View Question

Hi Gerwin, On any FieldDescriptor, you can define a default value. (Last property in the table here) You could assign the value for that specific service there. This way, when you create a DomInstance...

View Question
3 Votes Selected

Hi Arunkrishna, That is a known issue that should have no impact on the main SMS functionality. The error is logged when the SLGSMGateway process tries to send an update to the SLNet process with the...

View Question

Hi Bing, The 'DataMiner Agent' option in the filter indeed applies to the DMA ID as you noticed. This seems to be the expected behavior. I captured the message that Cube sends to create a filter using...

View Question
3 Votes Selected

Hi Carlos, Thank you for your clear and comprehensive explanation of your issue. I would expect that the source IP should be the one of the agent that hosts the element. (Unless the SNMP Manager is explicitly...

View Question
3 Votes Selected

Hi Bruno, The JobManager logging shows that the JobManager could not be initialized because maintenance is in progress. You should be able to see more details about this maintenance (a.k.a. migration)...

View Question

Make sure that the engine object passed by the Run method in the automation script is used for the SLNet messages callback of the ResourceManagerHelper. The name of the user that executes the script will...

View Question

Hi Stacey, I'm afraid that there is currently no way to trigger a correlation rule when a Ticket is created. This will need a feature request.

View Question
3 Votes

Hi Julien, It should be possible to use the paging API of the DOM helper to limit the amount of data and allow extra data to be loaded when needed. You can find a small code snippet of this here (Read...

View Question
2 Votes Selected

Hi Ruben, It seems that it is unfortunately not possible to easily get all rows from an alarm template using that helper. If that functionality would be required, you could use the 'GetAlarmTemplateMessage'...

View Question
2 Votes Selected

Hi Reinout, Currently, the DOM editor would the easiest solution to export DOM instances. When importing the DOM instances again, the CRUD scripts should get triggered. Do keep in mind however that these...

View Question
2 Votes Selected

Hi Bernard, from what I can find on the concept of the Dashboard Gateway, I do not believe this to be capable of providing a way to interact with User-Defined APIs. At least, not in the same way as for...

View Question
2 Votes

Hi Tim, It is already possible to add URL and Email validation to string fields, but unfortunately, there is no generic/configurable validation possible right now. If this would be a key part of something...

View Question
2 Votes Selected

Hi Jens, My response to your other Dojo question contains some details already about this flow, but in general, all write operations to DOM instances are queued on each DMA. This does not include the...

View Question
2 Votes Selected

Hi Mieke, For your second question. It is unfortunately not possible to cancel an ongoing query. When a script is set to timeout at 1 minute, it will only stop after the query returns as the thread is...

View Question
2 Votes

Hi Mieke, For these fields to be accessed, you need to cast the object. You can find more info here: https://docs.dataminer.services/user-guide/Advanced_Modules/DOM/DOM_objects.html#itrackbase-properties

View Question
2 Votes Selected

Hi Jens, There is unfortunately no built-in method that will generate a string representation of a DOM instance. You will have to loop over the Sections & FieldValues and build it using a StringBuilder.

View Question
2 Votes

Hi Vikas, You can check what scripts are currently running using the SLNet Client Test Tool. There is a procedure in the DataMiner Docs that shows you how to see these scripts and how to abort one if...

View Question
2 Votes Selected

Hi Apurva, If I understand your question correctly, you currently have DOM data displayed in a low-code app, and you would like to interact with them in a DataMiner Automation script? If that is the case,...

View Question
2 Votes Selected

Hi Marieke, Since the DOM module settings are stored in STaaS, the same reasoning applies here. It is not necessary to include these in the backup.

View Question
2 Votes Selected

Hi Edson, According to the metrics, the User-Defined APIs feature should be able to handle that amount of requests (~1 every two seconds if my calculations are correct). If that trigger rate is correct,...

View Question
2 Votes Selected

Hi Mieke, Can you share how these filters are built in the code? One thing you could try is removing some parts of the filter or built it term by term until it stops matching the expected data. I tried...

View Question
2 Votes Selected

Hi Mark, This may not be the best approach, but from my testing, it seems that you can enable a sliding window with a specified time span. (E.g. 1 hour) The correlation actions will be executed the first...

View Question
2 Votes Selected

Hi Pawel, Could you check if you have the permissions for the User-Defined APIs feature? https://docs.dataminer.services/user-guide/Advanced_Functionality/Security/DataMiner_user_permissions.html#modules--user-defined-apis

View Question
2 Votes

Hi Tim, If you have exported the module using the DOM Editor, you will indeed need to import it again with that. I am not sure if it is possible to call that import code from an install script. I can...

View Question
2 Votes Selected

Hi Christhiam, From what I understood, I believe that the issue is caused by the destination web server being unable to handle all the requests it is receiving. This results in most requests taking a...

View Question
2 Votes Selected

Hi Thomas, Unfortunately, we do not have a clear overview of what type of blocks can use the ConfigOptions. We have tasks on the backlog for this and to resolve/clear up the inconsistencies between an...

View Question
2 Votes Selected

Hi Gerwin, I believe that deployments are by default of type 'JSON' right now. That means only one script parameter can be present and that the full HTTP body of the trigger request will be contained...

View Question
2 Votes Selected

Hi Alberto, That behavior does seem to be unexpected. We took a look at this with a few colleagues but currently do not have an idea on what is causing this. Could you share the following?: - Alarm template...

View Question
2 Votes Selected

Hi Stacey, You can create tickets using the Ticketing Gateway API. (That uses the TicketingGatewayHelper you mentioned). There is a topic in the DataMiner Help about this: https://help.dataminer.services/dataminer/#t=DataMinerUserGuide%2Fpart_4%2Fticketing%2FUsing_the_Ticketing_Gateway_API.htm&rhsearch=Ticketinggatewayhelper&rhsyns=%20

View Question
2 Votes Selected

Hi Daniel, With the information you provided, your implementation seems to be perfectly fine. If the amount of triggers and their payload size is reasonable, I would see no particular issue with keeping...

View Question
1 Vote

Hi Ana, If you are using a GenericEnumFielDescriptor of type 'int', make sure that the values you store on the DOM instance are of type 'int'. Here you can find an example: https://docs.dataminer.services/user-guide/Advanced_Modules/DOM/DOM_objects/DOM_FieldDescriptors/DOM_GenericEnumFieldDescriptor.html?q=GenericEnumFieldDescriptor#int-enum-1

View Question
1 Vote

Hi Tim, The most efficient would be to retrieve them in one single request (or the least amount possible). You could use the 'RetrieveBigOrFilter' tools method that is available in the SLNetTypes DLL....

View Question

Hi Apurva, From what I can tell, the code you shared should work in general. I do want to share some tips however: I see that the 'ApiTriggerInput' request data is being serialized to JSON so it...

View Question
1 Vote Selected

Update 2024-06-18: After receiving the script XML it was found that the script in question is using the graphical UI blocks instead of C# code. These blocks behave differently, so the explanations that...

View Question

Hi Gerwin, If I understood the question correctly, you have a validation DOM action script that needs to show an interactive UI when there is an issue. But, you would also like to trigger this action...

View Question
1 Vote Selected

Hi German, As mentioned by Tom, you could use the DOM history to know this. You could retrieve the last few history records for that specific DOM instance and try to find the status transition. Do note...

View Question
1 Vote

Hi Tim, What Jens suggested could be an easy approach to get the intended behavior. Do keep in mind that this could introduce an infinite loop. In general, I would not recommend an approach where a DOM...

View Question
1 Vote Selected

Hi Pawel, The answer of Tom will set you on your way using the DOM utils NuGet. This NuGet can be very handy, definitely when you are building a complete solution that relies on DOM. Do note however...

View Question

Hi Mieke, For a non-status system DOM definition, you should be able to hide the fields in a form by just setting the 'IsHidden' property on the FieldDescriptor to 'True'. When using a status system...

View Question
1 Vote
Load more answers