By default, it looks like the HL7 accelerator produces XML from HL7 v2 messages which is not HL7.org compliant (doesn't match their XML v2 XML schemas). Is it possible to get it to generate HL7 v2XML compliant xml?
Edit:
We have xslt transforms that transform HL7v2 XML into other xml formats. These are used by other tools that are part of our platform. We would be able to simply re-use these transforms in BizTalk if the BTAHL72XRecievePipeline component generated HL72 compliant XML, but for some reason the xml produced by the pipeline is slightly different. I am unsure why that is.
If you look at the standard HL7 2 XML specs from HL7.org the element names use periods instead of the underscores that the biztalk schemas use, and the element names in the biztalk schemas are appended with the name of the field/component, whereas in the HL7.org schemas the field/component names are specified as optional attributes on the element.
It appears that the BTAHL72XReceive/Send piplines require the BTAHL7 schemas while the BTAHL72XMLRecieve/Send piplines use the HL7 2 XML schemas. But wouldn't it make sense to be able to use HL7 2 XML from the BTAHL72XReceive/Send piplines as well?
This article walks you through getting the adapter to work with the HL7 v2 XML schemas. There is also a link on that page to a tool that does the work. Oh, and here is another supporting article.
Related
The files I have been given are sample CDR files(Call Detail Records)
SGSN / GGSN data format: ASN.1 Basic Encoding Rules (BER).
The files have no extensions and I do not have a schema to work with. How can I approach this?
Vasil is correct that, to a degree, BER can be decoded without a schema. However, if the schema uses implicit tags, you won't get very far until you have blocks of data that you have no idea how to interpret. You will very likely need to either get the schema files or use a tool that has the appropriate schema definitions built-in.
If the files follow 3GPP 32.297 and 32.298, those specifications are freely available and you may be interested in https://www.3gpp.org/ftp/Specs/archive/32_series/32.298/ASN.1/
My company has a visual editor that can handle 32.297 CDR files. You can get a trial at: https://www.obj-sys.com/products/asn1ve/index.php. It comes with some CDR specs built in, so you might not need to get the schemas yourself.
To a certain extent it is possible to decode any valid BER encoded data without having the ASN.1 schema.
Try decoding the file using the unber tool from the asn1c project or this online decoder.
We have a legacy system that outputs flat files in fixed format on Unix. The target OS for the data is Windows and Unix end of line characters are problematic as you expect from that file format. The data format is not changed between source and target systems (i.e. they both currently accept fixed format).
My question is;
Does BizTalk come with a filter that converts LF to CRLF, this seems like a common problem when interfacing legacy heterogeneous systems?
We are using BizTalk 2009, though an upgrade to 2011 is in progress.
I wouldn't write two identical schemas with different line endings just to satisfy two different architectures.
Instead, I would write a single flat file schema with one of the two line endings. Then, write an encode send pipeline component and change the line endings to the 'other' system as you are transmitting the message. This will be the closest you will come to a LF to CRLF filter in BizTalk.
If your end systems require different message structures, I would then consider creating two schemas.
BizTalk works with XML. You can use the flat file wizard to import your UNIX source file and from the BizTalk XML message create any output you desire again using the flat file wizard against an example destination file to create the correct schema.
No, it does not come with one.
The flat file schema wizard will design a schema for either but you must pick one and not mix them.
There are a couple of options:
remove CRs in whatever process/automation that receives the input file. Then design your schema to expect only LF. Then either format can be received and will be processed correctly. This is usually trivial
Create a custom pipeline component to do step 1.
HTTPService has a property resultFormat which can be set to any of the following: array e4x flashvars object text xml
I looked at the documentation to understand the difference, but still couldn't understand when to use each. I'm looking for the lightest weight of all of them.
P.S. I'm consuming output from my own server, so can change the output format as needed to make it compatible with each.
Most of the time either object or e4x is used. The "object" option automatically converts XML to ActionScript objects. This is usually my preferred way to load data from a server when using HTTPService. The e4x option keeps the XML data as XML and then uses the EcmaScript 4 XML notation to query / modify the XML structure. I personally find e4x painful to debug so I usually avoid it.
If you are looking for great performance then you should consider using AMF instead of XML. There are numerous open source server-side implementations of AMF. So picking one depends on your back-end. No matter which one you choose you will likely use the RemoteObject library instead of HTTPService.
There are examples of HTTPService and RemoteObject in Tour de Flex.
I'm working on a prototype in flex and I need to connect my application to an .RDF file that contains some properties. I need to use and manipulate those properties in a "descriptor file" made in Actionscript. So my question is: how do I connect my flex application to that .RDF file?
Thanks,
regards
David
If RDF is represented in its XML form (which I guess is the most common anyway), you can simply treat it as XML and use the built-in XML and XMLList classes, and the rather convenient E4X (ECMAScript for XML) syntax to traverse your document. To load the RDF file from the server or from another remote location, use the URLLoader class.
If, on the other hand, the RDF uses some other representation, you'll probably have to do the parsing from plaintext yourself. (You can still use URLLoader).
Our Flex app would like to work with requests and responses as object graphs (nothing unusual there) e.g. response becomes the model of some view, and would be a structure with several layers of nesting.
** Now, ideally we would like to use the same client (and server) side objects for different message formats e.g. XML and AMF, and have a pluggable serialization/de-serialization layer (!)
AMF has serialization and matching of client to server using
[RemoteClass(alias="samples.contact.Contact")]
but it seems there is no equivalent for XML.
I am (somewhat optimistically) looking for a neat way of serializing the object graph to XML, to send through a HTTPService from the client.
For responses, the default 'object' and 'E4X' provide some de-serialization. This is handy, but of course we don't have the niceties of unpacking the XML back into specific AS classes like we do with AMF.
Any suggestions?
(did have one idea come through about wrapping/casting object as XML or XMLList - this does not seem to work, however)
Update:
Both these libraries look useful, and I will very likely use them at some point.
For now, I really need the simplicity of re-using the metadata set for the AMF3 serialization which we are using in any case ([RemoteClass],[Transient])
.. so the best option at the moment is AMFX - used Flex Data Services for AMF transfer using XML - classes in mx.messaging.channels.amfx package - only drawback at the moment is any Externalizable class is transformed into a Hex byte stream - and ArrayCollection is Externalizable! (hoping to workaround by serializing the internal Array in a subclass ..)
Hope that's useful to someone ..
Regarding the Xml serialization I can give you a starting point (as biased as it may be, though :D).
I am working on a project that allows for automatic conversion of AS3 objects to and from xml. It basically uses annotations on the model objects you use for communication in order to construct the xml structure or populating an object from xml.
It is called FlexXB and you can check it out at http://code.google.com/p/flexxb/.
I started this project cos I got into the same issues at work (namely I have a server that communicates through xml) and I hoped it be of use to someone else.
Cheers,
Alex
Yet another project: FleXMLer (http://code.google.com/p/flexmler/).
It has both the straightforward attitude of asx3m where you can just call:
new FleXMLer().serialize(obj);
Or you can customize XML element names, skip elements and tweak the way arrays and hash tables are serialized.
Would appreciate your input.
checkout asx3m project at http://code.google.com/p/asx3m
It's an AS3 port of Java XStream serialization library and works pretty well.
I made it because I had to connect to a server platform that used XStream for exchanging data objects and put a lot of work in it.
It can be extended to serialize AS3 objects to any format (JSON for example) and could leverage power of user defined metatags.
Cheers,
Tomislav
There's a library including JSON available from Adobe, too. And since ActionScript is a superset of JavaScript ... and JSON is increasingly supported cross-framework ...