Copy the example code to the dot from documentation (also below) for SubScriptOptions:SelectMemory(String, ScriptMemory) and then run it raises Script Execution Failure.
How to get this method to work please? Observed in DataMiner 10.1
Script Failure (myParentScript): (Code: 0x80131500) Skyline.DataMiner.Net.Exceptions.DataMinerException: Run Subscript 'myParentScript' Failed: 0x80004005
at CManagedAutomation.RunWrapped(CManagedAutomation* , Int32 iCookie, IUnknown* pIAutomation, tagVARIANT* varParameters, tagVARIANT* pvarReturn, String scriptName)
at CManagedAutomation.Run(CManagedAutomation* , Int32 iCookie, Char* bstrScriptName, IUnknown* pIAutomation, tagVARIANT* varParameters, tagVARIANT* varEntryPoint, tagVARIANT* pvarReturn) (CSharp; 0x80131500h): (see comment for more details)
Script Failure (mySubScript): (Code: 0x80131500) Skyline.DataMiner.Net.Exceptions.DataMinerException: Get Memory Position 'subscriptMemory':1 Failed: 0x80004005
at CManagedAutomation.RunWrapped(CManagedAutomation* , Int32 iCookie, IUnknown* pIAutomation, tagVARIANT* varParameters, tagVARIANT* pvarReturn, String scriptName)
at CManagedAutomation.Run(CManagedAutomation* , Int32 iCookie, Char* bstrScriptName, IUnknown* pIAutomation, tagVARIANT* varParameters, tagVARIANT* varEntryPoint, tagVARIANT* pvarReturn) (CSharp; 0x80131500h): (see comment for more details)
Class SubScriptOptions | DataMiner Docs
Class SubScriptOptions
SelectMemory(String, ScriptMemory)
Selects a script memory from the main script to be used as the script memory in the subscript.
Examples
Main script:
<code class="hljs stata"><span class="hljs-keyword">var</span> <span class="hljs-keyword">memory</span> = engine.GetMemory(<span class="hljs-string">"parentMemory"</span>); <span class="hljs-comment">// The parent script has a script memory with name "parentMemory".</span> <span class="hljs-keyword">memory</span>.<span class="hljs-keyword">Set</span>(1, <span class="hljs-string">"MyValue"</span>); <span class="hljs-comment">// The first entry of this memory is set to the value "MyValue".</span></code>
var subscript = engine.PrepareSubScript("MySubscript");
<code class="hljs stata"> </code>
<span class="hljs-selector-tag">subscript</span><span class="hljs-selector-class">.SelectMemory</span>(<span class="hljs-string">"subscriptMemory"</span>, memory); <span class="hljs-comment">// The subscript has a script memory with name "subscriptMemory" and this memory will be linked to the parent memory.</span>
<span class="hljs-selector-tag">subscript</span><span class="hljs-selector-class">.StartScript</span>();
Sub-script:
<code class="hljs stata"><span class="hljs-keyword">var</span> <span class="hljs-keyword">memory</span> = engine.GetMemory(<span class="hljs-string">"subscriptMemory"</span>); engine.GenerateInformation(Convert.<span class="hljs-keyword">ToString</span>(<span class="hljs-keyword">memory</span>.<span class="hljs-built_in">Get</span>(1))); <span class="hljs-comment">// This will generate an information event with value: "MyValue".</span></code>
Hi,
We did some internal testing and could indeed see there's an issue with this memory files in subscripts. A task was created to get this resolved.
As soon as this is resolved, an update will also be posted here.
Kind regards,
Thibault
task created: https://collaboration.dataminer.services/task/183310