Neuron ESB User Network

The Service Bus for the Connected Business

I am currently receiving fixed length data on the ESB by way of the iSeries Dataqueue.  I would like to convert this data into an XML object as defined in our enterprise object schema.  I created an XML document in the Neuron Explorer to define the fields/length.  I then tried to create and XSL to map the fixed length data to the schema.  Being new to all this I was using the example at http://www.devx.com/getHelpOn/10MinuteSolution/20362/1954 as a reference. 

 

When I try to save the XSL I receive the following error:

"XSLT document is not valid.  Execution of the 'document()' function was prohibited.  Use the XsltSettings.EnableDocumentFunction property to enable it. An error occurred at (14,2)."

 

If I try to Test the XSL it gives me an error about the "Root element is missing."  I believe this is because I haven't correctly configured the Input for the test.

 

If there is a better method for doing this please let me know or point the way to some examples.

 

Thanks!

Views: 77

Reply to This

Replies to This Discussion

Hi Ray,

Are you saying that you changed the EnableDocumentFunction property to True and applied the change in the Transform Step and it still made that error?
Where do change this property?
It's in the property grid on the lower right of the designer when you put the focus on the Transform Step. There should be 2 properties there, one for the document function and one for script.
I want to add the XSL under the Data/Transformation area and not the Pipeline designer.
That area is basically an inert storage area. What happens when you use an XSLT or an Schema from that area is it is copied into the pipeline (via the import menu in either the Transform or Validate Step).

So, you can use it for storage, import from there and do minimal testing but if you want full featured testing and actually run the transform like it would be done at runtime you need to import it and run it through the pipeline designer.
Thanks for the help so far ;-)

In my never ending saga of dealing with iSeries data, I am finding out that much of the data in the data queue is packed. So far I haven't been able to find any method using XSL for transforming packed data into XML decimal. So I thinking of a couple of different ways: using the Code pipeline step, calling a web service or creating a subscriber that will receive and convert these messages. Since this is a high volume message I don't think the latter 2 will work (basically all slot, pit, bingo, keno, etc... ratings will be processed). Any thoughts on how to handle this?

I tried using the Code method but I need to reference external DLLs which don't show in the Assembly Browser and I can't seem to select individual DLLs. Also when I put something simple in the Code Editor like a single line: "private String test;" and try to save, I get an error "There are compilation errors that must be resolved before saving" and yet no errors show in the Compile Errors area. Are there any examples for using the code editor?

Thanks!
We never disourage people from using code vs. XSLT so if that's easier definitely go that route.

The code editor accepts references from the GAC. So if you want to use a DLL of your own, sign it and GAC it.

If you just want to use the classes from preimported namespaces then for things like string you just declare it as

string myString = "some string";

If you want to work with classes from one of the dlls that are referenced by default but their namespaces are not preimported then you would type things like

System.Xml.XmlDocument doc = context.Data.ToXmlDocument();

You can think of everything inside the editor of a Code Step as being in a local method.

If you want to save state between steps then you can use

context.Properties.Add("mykey",[myobject]);

A Code Step How To is on my agenda and should be included in docs soon.

If you need to bang on it live or have me walk you through stuff live before then let me know and we'll LM.
So I was able to get the required files into the GAC (IKVM dlls and compiled java dll jt400.dll - again from the iSeries dataqueu adapter code). In the pipeline code editor I am able to reference all dlls except the jt400.dll which throws the attached exception. These file are all referenced by the adapter project and work as expected.

If we can't get this working I could modify the adapter code to be single purpose but that isn't the optimal solution.

Thanks for the help
Attachments:
Sorry for taking so ling today Ray. I'm going to ask dev to look at this...Still looks like something else may need to be GAC'd

RSS

Neuron ESB Product Support Forums and Communities

Latest Activity

Nick Novotny posted a discussion

Script to stop/restart service connectors

Is there a way to turn on and off service connectors through the neuron api?  Right now I need to go to Endpoint Health in Activity, and right click to stop and restart service connectors, I would like to have a script to do this.  Is this possible? Thanks,-Nick NSee More
May 11
Profile Iconsuresh datla and Mahboob joined Neuron ESB User Network
Apr 24
Nick Novotny posted a discussion

Msmq network transport error logging

We have multi-casting one way messaging through a remote msmq server using wcf services for our system. One day one of our many environments got a message to multicast…and didn’t send anything out.  We have a pipeline step to audit the incoming message, topic properties to move msmq messages to a dead letter queue after a specific amount of time, and a service policy to move messages to the failed neuron db table after a specific amount of time/retries (matching the msmq network properties to…See More
Apr 13
Stas Makutin posted a discussion

Load-balancing using Neuron

I want to implement following scenario using Neuron ESB:- get big list of working items from somewhere (let's say some database)- split this list to small "batches" of working items- send these batches each to particular instance of specific subscriber (Worker), so each that instance will process assigned batch in parallel with other instances- collect feedback (is processing complete/failed) + implement some fail-over mechanism (resend failed batches, monitor if batches weren't processed…See More
Apr 11
Profile IconStas Makutin, Bjorn Thomsen and Steve Harclerode joined Neuron ESB User Network
Apr 11
MH is now a member of Neuron ESB User Network
Mar 29
Profile IconCraig Muir and mehnaz joined Neuron ESB User Network
Mar 12
John Ryan posted a discussion

Trouble creating a net.msmq Client Connector

Has anyone successfully created a Client Connector using Net.msmq?I'm trying as many different configurations as i can to post a message to a Client Connector but i get the following error on my client app:"The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state."It looks as though my client connector endpoint is not binding to the WAS correctly.If anyone has any ideas, i'd love to hear them.Here are my Client…See More
Mar 6

Badge

Loading…

© 2012   Created by Neuron Admin.   Powered by

Badges  |  Report an Issue  |  Terms of Service