I'm trying to set up a Multi-protocol Gateway to map between a web-service and an IMS transaction.
I've got the input mapping working now using a WTX map, the transaction is run, results returned, but I can't get the output mapping to run outside of WTX Design Studio (I have an input file with the raw byte content as captured using the DataPower packet capture facility and trimmed to just the data portion of the packet).
I started with a copybook->XML WTX transform, but I've seen that DataPower doesn't like NULL characters in the input if the destination is XML, and that this would result in this error. So I've introduced an extra copybook->copybook transform that replaces the nulls with space(input card type = output card type, field mappings substitute <NULL> with <SP>).
I've also tried with replacing with space in addition to the <NULL> character replacement.
Any thoughts on how to fix this, or how to get more information out of DataPower as to what it thinks the invalid input was, would be much appreciated.
Initial null-removing binary transform settings:
Use XSLT specified in this action on a non-XML message
WTX Map file = NullToBlankMap.dpa
WTX Map Mode = DPA
Tried with Advanced tab Output Type = default and binary with no difference to the behaviour
DataPower Firmware Rev:XI184.108.40.206.3 Build:208047
IBM Websphere Transformation Extender Design Studio Version: 220.127.116.11 Build id: 8
DataPower log messages:
07:08:09 mpgw error 43510214 error 18.104.22.168 0x00c30022 mpgw (WVTA_IMS): dpa runtime error
07:08:09 xmlparse debug 43510214 response 22.214.171.124 0x80e003ab mpgw (WVTA_IMS): Finished parsing: http://126.96.36.199:8103/EUTypeApprovalNumberRetrieveService
07:08:09 xmlparse debug 43510214 response 188.8.131.52 0x80e003a6 mpgw (WVTA_IMS): Parsing document: 'http://184.108.40.206:8103/EUTypeApprovalNumberRetrieveService'
07:08:09 multistep error 43510214 response 220.127.116.11 0x80c00009 mpgw (WVTA_IMS): response WVTA_Policy_rule_1 #1 xformbin: 'Transforming (possibly binary) INPUT with local:///wvta/NullToBlankMap.dpa results stored in tmpvara' failed: 8: One or more inputs was invalid
07:08:09 multistep debug 43510214 response 18.104.22.168 0x80c0004e mpgw (WVTA_IMS): Stylesheet URL to
Pinned topic WTX mapping not working "..failed: 8: One or more inputs was invalid"
Answered question This question has been answered.
Unanswered question This question has not been answered yet.
Updated on 2013-01-25T14:11:13Z at 2013-01-25T14:11:13Z by SystemAdmin
SystemAdmin 110000D4XK6772 Posts
Re: WTX mapping not working "..failed: 8: One or more inputs was invalid"2013-01-25T14:11:13ZThis is the accepted answer. This is the accepted answer.I don't know if this is the most elegant way around this, but the following approach worked for me.
Since my input was fixed size I defined a type tree in WTX with a single element
Item Subclass: Text
Interpret as: Binary
Size: min=0 max=+my message size+
I then defined a type map with a single input card that used this type element and a single output card that used the same type tree and element.
I mapped the single binary input element to the single binary output element with a rule that looked like: =SUBSTITUTE(BinaryInputCard,"<NULL>","<SP>")
Using that transform as the first action in the server-response rule allowed me lose the null character without DataPower throwing any errors. I could then use my existing CopyBook->XML map on the output of the first binary map to do the 'real' work.