Hi Dojo!
I'm working on an Automation Script that modifies the Hyperlinks.xml file located in C:\Skyline DataMiner\. After making changes to this file programmatically, I need to sync it.
Context:
In the DataMiner Cube UI, there's a manual option to do this via:
- Tools > Synchronization
- Type: File
- File:
C:/Skyline DataMiner/Hyperlinks.xml

I need to trigger this same synchronization programmatically from an Automation Script.
What I've Tried:
I attempted to use <strong>SyncRequestMessage</strong>, but I'm encountering an "Invalid base path" error:
string filePath = @"C:\Skyline DataMiner\Hyperlinks.xml"; SyncRequestMessage syncRequest = new SyncRequestMessage(); syncRequest.BasePath = @"Skyline DataMiner"; syncRequest.DataMinerID = engine.GetUserConnection().ServerDetails.AgentID; // ... populate ExistingFiles with Hyperlinks.xml info engine.SendSLNetMessage(syncRequest);
I've tried multiple BasePath formats (with/without drive letter, with/without trailing slash, relative paths, etc.) but all result in "Invalid base path" error.
My Questions:
- What SLNet message does the UI's "Tools > Synchronization" use for file synchronization? Is it
SyncRequestMessageor something else? - What is the correct way to construct this message? Specifically:
- What should
BasePathbe set to? - What format does the file path need to be in?
- Are there other required properties?
- What should
- Is there sample code or documentation showing how to programmatically sync files from an Automation Script?
- Are there alternative approaches to achieve file synchronization across the cluster from a script?
Hi Harun,
Indeed. Miguel Obregon explained it in that post 🙂
See the reply on the best answer 😉
Fell free to use any of those
Thanks for the help! I found a more targeted approach for syncing a specific file instead of the full DMS:
csharpvar setDataMinerInfoMessage = new SetDataMinerInfoMessage
{
What = 41, // NT_SEND_DMS_FILE_CHANGE
bInfo1 = Int32.MaxValue,
bInfo2 = Int32.MaxValue,
DataMinerID = engine.GetUserConnection().ServerDetails.AgentID,
IInfo1 = Int32.MaxValue,
IInfo2 = 32, // file change notification
StrInfo1 = @"C:Skyline DataMinerHyperlinks.xml", // full file path
};
engine.SendSLNetMessage(setDataMinerInfoMessage);
Key difference: What = 41 syncs only the specified file, while What = 64 syncs the entire DMS.