IDataBinCoder.decodeFromBytes() not working after migration from wM 9.5 to wM 9.12

Hi,

in my project we are using IDataBinCoder.decodeFromBytes(byte) to decode an IData document which is retrieved out of a pipeline retrieved from a process audit database.

After migrating the code from wM 9.5 to wM 9.12 this is no longer working.

According to KB 1773174 (webMethods Integration Server - IDataBinCoder is not a public class) this class should not be used anyway.
According to KB 1725412 (webMethods Composite Application Framework - How to encode/decode IData to bytearray in webMethods CAF portlet page) it should be possible to substitute IDataBinCoder with IDataXMLCoder.
Or do we need to do another transformation after that in this case?

Please share your thoughts.

Meanwhile I will try the IDataXMLCoder variant.

Regards,
Holger

Isn’t the decoder to use determined by the PRT, i.e. by the format used by the process engine to save the pipeline into the audit DB? Or did I not understand what you do?

I don’t think the implementation of the coders has changed. A quick look at the data should reveal what encoder has been used to produce it, and hence should also be used to decode it.

Hi FML,

the code which is invoking the coder is not running inside the PRT.

We just retrieve the pipeline from WMPROCESSSTEP resp. PRA_PROCESS_STEP table for a specific process instance and step and then pick just our main payload object from there. As the pipeline field is a BLOB in the database it is represented as a Byte-Array which needs to be transformed into a document representation for further processing.

As the method decodeFromBytes is only inherited from IDataCoder, but not overwritten, it should not matter which type of Coder class extending IDataCoder will be used. Unfortunately it cannot be invoked directly on IDataCoder as IDataCoder is an abstract class and the method is not marked as static.

Regards,
Holger

Hi,

I found the soution and got this working now.

Using IDataXMLCoder will not work in this case, but IDataBinCoder is working as expected now.

Issue was that the Processmodel were using the wrong log level where not all steps were logged to the database but only the start step.

We are using this specific implementation in our custom developed testing framework to retrieve the result of the test case as we cannot intercept the outgoing message directly at the point where it is sent to the partner due to its nature.

Regards,
Holger