BAQ Update with an external .dll Signature change

I have some BAQs that call external .dlls for the update. In 10.2.700 the needed method signature was

public void Update(Ice.Tablesets.DynamicQueryTableset queryDS, System.Data.DataSet queryResultDataset, Ice.Tablesets.ContextTableset context)

Selecting create programing interface would generate the incorrect signature:

        public void BAQName(System.Data.DataSet queryResultDataset, Ice.Tablesets.ContextTableset context)

In 2021.2 Create programing interface now generates

        public void BAQName(QueryResultDataSetUbaqTableset queryResultDataset, Ice.Tablesets.ContextTableset context)

Anyone know what QueryResultDataSetUbaqTableset is or what the correct signature is? I haven’t been able to find it QueryResultDataSetUbaqTableset yet.

I don’t think the signature actually changed. It seems like it’s an issue with selecting the method in the widget. My existing methods work, but the UI doesn’t show any valid methods since it’s searching for a method with a different signature.

Carson, did you ever find a way around this? It still works fine for all of the updatable BAQs that existed prior to the switch to Kinetic, but I haven’t found a way to create new BAQs that call external .dlls.

Levi,
My current work around is to make an empty BAQ in 10.2.700 and add the update method with my .dll call. Then I export the BAQ and import it into 2021.2 to finish it. It’s not a good workaround.

The other work around I found is probably worse. I call the .dll from the code widget. To do that, I copied the generated code from the external .dll widget and modified it. To get it to compile when calling it from code the .dll needs to be in the assemblies directory. After saving the baq you can delete the .dll from the assembly directory and it will pick up the version from the normal externals directory. I expect the BAQ that calls the .dll in the code widget will break on any patch since it will recompile and not find the .dll in the assemblies directory.

Have you submitted a ticket to support? If not, we should coordinate that. Two tickets are better than one.