Page 1 of 1

Cannot instantiate Optional Variable Properties.

Posted: 09 Dec 2020, 13:57
by alilazzal
Hello,

I have already been through this forum already and found 2/3 questions related to this but somehow solution is not working for me.

In my Information Model, I have several variable properties under an object type. However, only one property is mandatory and rest are all optional. How can I instantiate the optional properties (an example would be of great help).

Do I use optionalbrowsepath in my createobjectsettings like this ?

CreateObjectSettings settings = new CreateObjectSettings()

{
ParentNodeId = UnifiedAutomation.UaBase.ObjectIds.ObjectsFolder,
ReferenceTypeId = UnifiedAutomation.UaBase.ReferenceTypeIds.Organizes,
RequestedNodeId = new NodeId(DepartmentA, DefaultNamespaceIndex),
BrowseName = new QualifiedName(DepartmentA, DefaultNamespaceIndex),
TypeDefinitionId = new NodeId(MyA.MyAIm.ObjectTypes.BodyShopProEType, DefaultNamespaceIndex),
OptionalBrowsePaths = new List<string> { AbsoluteName.ToString(BrowseNames.CounterPerType, BrowseNames.CounterTotal)}


};

ObjectNode DepartmentANode = CreateObject(Server.DefaultRequestContext, settings);

Note: in my IM: the optional nodes are located in a Object called ProdData in Object Type BodyShopProEType

with this, I do not get optional properties in UA Expert.

Furthermore, as you have mentioned to use CreateInstanceSetting, an example of it's structure(syntax) would make things more clear ?

Looking forward to your suggestions...

Regards,

Ali

Re: Cannot instantiate Optional Variable Properties.

Posted: 11 Feb 2021, 16:07
by RKM
Hello,

this question is also of interest for me. Anyone got a solution to that?

Thanks in advance for the help!


Greetings,

RKM

Re: Cannot instantiate Optional Variable Properties.

Posted: 08 Apr 2021, 08:56
by Support Team
Hello Ali,

your solution is very close.

But one thing is still missing. The values you used in the AbsoluteName.ToString() method must be QualifiedNames.
It should look like this:

Code: Select all

OptionalBrowsePaths = new List<string> { AbsoluteName.ToString(new QualifiedName(BrowseNames.CounterPerType, DefaultNamespaceIndex))}
If you have more optional elements, expand the list.