Skip to Main Content
Integration


This is an IBM Automation portal for Integration products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.


Status Not under consideration
Workspace App Connect
Created by Guest
Created on Sep 27, 2023

Calling OPC UA methods with Structure Data Type arguments (App Connect for Manufacturing)

Currently, it is not possible to call an OPC UA method, including structured data types arguments. This has been a requirement for a while, but has been moved further to the next future. OPC UA standards and specification include very often the use of OPC UA methods in a following manner: the client calls the method with a structured OPC UA data type argument. The server (or better to say the PLC behind the server) accepts the call and writes the received data into a Variable Data type in the OPC UA tree. This help confirming that the method call was successful, down to the PLC. By using the same structure as method argument data type and variable type within the tree structure (which is generated from the data type), modelling the OPC UA tree is consistent, re-usable and avoid errors by manually copying the structure element by element potentially many times - as many as the structure is used. This is why types and structures are created for.

The current ACMfg implementation of method calls allows only flat Base Data type arguments. If a structured data type is included as an argument, the OPC UA clients "sees" a BLOB that is then can be passed to an integration flow and parsed. The product lab recommendation is to used here DFDLs. Unfortunately, DFDL modeling has to be done manually, on each new or modified data type structure and requires error-prune counting of bits and bytes by downloading the XML type structure from the OPC UA server. Of course, this is a possibility, but requires a dramatically increased implementation effort, which make ACMfg less attractive to clients, because of the higher TCO and dependency on external implementors and skills. Moreover, DFDL usage in the App Connect community is very rare, the performance might be potentially affected and the DFDL roadmap - unclear.

The idea: provide an implementation for using structured data types arguments in the following way: 

1. provide an Integration Toolkit-supported generation of a message type for each structured data type argument by following the reference to the Data Type Structure in the Types part of the OPC UA tree (potentially recursively) and generating a message. This could be also an XML/XSD that then could be imported into the Integration Toolkit.

2. Use the message in the method node for parsing / unparsing the structured data type arguments as well as in the integration flow

Preliminary, the point 1 functionality could be provided short-term as an asset, before it is integrated into the product in one of the following releases.

I provide a test case in the zip file as an attachment with the nodeset output from SiOME (Siemens free downloadable tool for OPC UA modeling) as well as an implementation of the typical pattern described above with the Open Source based Python OPC UA server. It can be used with a client, like UAExpert to see the described functionality as well as to run the tests.

I am happy to support in case of questions. 

BTW, this is an important request for a client project implemented jointly by my company GEC and IBM.

Greetings

Plamen

Idea priority High
  • Admin
    Ben Thompson
    Reply
    |
    Oct 13, 2023

    Thank you for taking the time to raise this enhancement request and also for the time taken to explain the idea to our Product Management team. We understand that you have been able to successfully utilise DFDL in order to meet this use case so we will not be pursuing further.