Forum Replies Created
-
AuthorPosts
-
Hello I am new to BizTalk 2004. I am wondering if someone can reply with a link or an example of how I can conert a flat file to XML then insert the data into a sql table.
In the simplest form my flat file looks like: for this example we will say it a comma delitmited fileDefinition —Owner,Animal, Age
Bob, Horse, 3
Dave, Dog, 7
Debra, Lion, 5Thank You
DThe parser starts at the top of the file, so it finds the header and then your List records.
The problem is it cannot differentiate the trailer record from the List records.
One solution is to use the Tag Identifier property on the List record. Is there some identifying data in each List record that you do not need that is different from the header and trailer.
e.g.
Hfield1field2field3
Lfield1field2field3field4field5field6
Lfield1field2field3field4field5field6
Lfield1field2field3field4field5field6
TLfield1In a file like this you can declare the Tag Identifier on the header to be H , the list records to be L and the trailer to be T.
With delimited data the Tag Identifier must always be at the start of the record, but with positional data you can also specify an offset.
If you have no data that can be used as a Tag Identifier then do not specify a trailer and you can use a map to exclude the last line of your List.
I just did a quick check of the FILE.ReceivedFileName and found it is written to the message context but not promoted. This means you cannot use this property for routing.
You have a number of options:
1. Write a simple pipeline component that takes the FILE.ReceivedFileName and extracts the filename and promotes this into your own property2. Use an orchestration with a dynamc send port. This will contain logic to assign the output location based on filename.
For speed and flexibility at runtime the pipeline component will be best.
I have been trying with and without the send port group.
I also set a filter to File.ReceivedFileName = \”myfile.xml\” and another one to File.ReceivedFileName = myfile.xml, not forgetting to set the Bts.ReceivedPortName.l am still trying but if it doesn’t work l’ll just create as much receive ports l have send ports.
Thanks for the quick answer.
Hello. This problem is now solved, Thank you very much for assistance.
[b:56e43e2e04]Now the trailing row where are some data that I do not need causes error.[/b:56e43e2e04] without trailer file goes ok when footerschema declaration is removed from pieline. When foorter in file and footer schema declared in pipeline orchestration crashes into it. I have defined footer schema for this and assigned it in pipeline. There is also a header to which I defined header schema and assigned it also into pipeline and it works fine. This trailing footer cases now a problem. Does anyone have idea what should be done.
row is 48 marks long and I don’t need this data
Here’s trailer row :
DATA01SSAS-I AAA DATASS2102200614:02:10 12
and schema :
[code:1:56e43e2e04]
<?xml version=\"1.0\" encoding=\"utf-16\" ?>
– <xs:schema xmlns:b=\"http://schemas.microsoft.com/BizTalk/2003\" xmlns=\"http://Jn.Carport.Mazda.sch_LoadingList_Footer\" targetNamespace=\"http://sch_List_Footer\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">
– <xs:annotation>
– <xs:appinfo>
<schemaEditorExtension:schemaInfo namespaceAlias=\"b\" extensionClass=\"Microsoft.BizTalk.FlatFileExtension.FlatFileExtension\" standardName=\"Flat File\" xmlns:schemaEditorExtension=\"http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions\" />
<b:schemaInfo standard=\"Flat File\" codepage=\"1252\" default_pad_char=\"\" count_positions_by_byte=\"false\" parser_optimization=\"speed\" lookahead_depth=\"3\" suppress_empty_nodes=\"false\" generate_empty_nodes=\"true\" allow_early_termination=\"false\" early_terminate_optional_fields=\"false\" allow_message_breakup_of_infix_root=\"false\" compile_parse_tables=\"false\" root_reference=\"Record\" />
</xs:appinfo>
</xs:annotation>
– <xs:element name=\"Record\">
– <xs:annotation>
– <xs:appinfo>
<recordInfo structure=\"delimited\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"1\" child_delimiter_type=\"hex\" child_delimiter=\"0x0D 0x0A\" child_order=\"default\" xmlns=\"http://schemas.microsoft.com/BizTalk/2003\" />
</xs:appinfo>
</xs:annotation>
– <xs:complexType>
– <xs:sequence>
– <xs:annotation>
– <xs:appinfo>
<groupInfo sequence_number=\"0\" xmlns=\"http://schemas.microsoft.com/BizTalk/2003\" />
</xs:appinfo>
</xs:annotation>
– <xs:element name=\"Root\">
– <xs:annotation>
– <xs:appinfo>
<b:recordInfo structure=\"positional\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" sequence_number=\"1\" />
</xs:appinfo>
</xs:annotation>
– <xs:complexType>
– <xs:sequence>
– <xs:annotation>
– <xs:appinfo>
<groupInfo sequence_number=\"0\" xmlns=\"http://schemas.microsoft.com/BizTalk/2003\" />
</xs:appinfo>
</xs:annotation>
– <xs:element name=\"Root_Child1\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"4\" sequence_number=\"1\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element name=\"Root_Child2\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"44\" sequence_number=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
[/code:1:56e43e2e04]Are you deploying to the same server that this was developed on.
It looks like the receive handlers may be different. Are the Biztalk Host names the same.
Have you considered using late binding (Specify Later) on your orchestration ports. When you use Early Binding (Specify Now) the binding information is compiled into the dll. This makes deployment trickier as the deployed server must be virtually identical to the development server
Have you consider using HTTPS. You just need a SSL Cert on the web server.
It looks like you have only one record called List.
You need to add a new root node.
right click on <schema> -> Insert Schema Node -> Child Record
Set to delimited, postfix, hex, 0x0D 0x0ADrag the List node and place as child node of this new root
Change List to maxOccurs = unbounded
Hi
l am working on direct binding, type FILE.
l have 10 send ports, 1 send port group referencing those 10 send ports and 1 Receive Port.
In the send port group l added the filter Bts.ReceivePortName=myReceivePortNamebut l also put filters in each send ports to distinguish the received files: File.ReceivedFileName=FileName1.xml
File.ReceivedFileName=FileName2.xml
…..But this is not working. Is the File.ReceivedFileName working in filters?
i tried to install an d configure biztalk on XP
i changed now to 2003 server
when i want to start the manager for the configuration the system displays me this message:
\”Failed to create IConfig object for feature:sso server,engine prodID:MSEBIZ.sso servercfg\”
thnk you for your help.Hi.
Here’s sample output from wizard.
[code:1:235624bd60]
<?xml version=\"1.0\" encoding=\"utf-16\" ?>
– <xs:schema xmlns:b=\"http://schemas.microsoft.com/BizTalk/2003\" xmlns=\"http://Application1\" targetNamespace=\"http://Application1\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">
– <xs:annotation>
– <xs:appinfo>
<schemaEditorExtension:schemaInfo namespaceAlias=\"b\" extensionClass=\"Microsoft.BizTalk.FlatFileExtension.FlatFileExtension\" standardName=\"Flat File\" xmlns:schemaEditorExtension=\"http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions\" />
<b:schemaInfo standard=\"Flat File\" codepage=\"65001\" default_pad_char=\"\" count_positions_by_byte=\"false\" parser_optimization=\"speed\" lookahead_depth=\"3\" suppress_empty_nodes=\"false\" generate_empty_nodes=\"true\" allow_early_termination=\"true\" early_terminate_optional_fields=\"false\" allow_message_breakup_of_infix_root=\"false\" compile_parse_tables=\"false\" root_reference=\"LoadingList\" child_delimiter_type=\"hex\" default_child_delimiter=\"0x0D 0x0A\" culture=\"fi-FI\" case=\"upper\" />
</xs:appinfo>
</xs:annotation>
– <xs:element name=\"List\">
– <xs:annotation>
– <xs:appinfo>
<b:recordInfo structure=\"positional\" sequence_number=\"1\" preserve_delimiter_for_empty_data=\"true\" suppress_trailing_delimiters=\"false\" />
</xs:appinfo>
</xs:annotation>
– <xs:complexType>
– <xs:sequence minOccurs=\"1\">
– <xs:annotation>
– <xs:appinfo>
<groupInfo sequence_number=\"0\" xmlns=\"http://schemas.microsoft.com/BizTalk/2003\" />
</xs:appinfo>
</xs:annotation>
– <xs:element default=\"0\" name=\"Segment_Id\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"4\" sequence_number=\"1\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"Segment_Version\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"2\" sequence_number=\"2\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data1\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"17\" sequence_number=\"3\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data2\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"18\" sequence_number=\"4\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data3\" type=\"xs:int\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"5\" sequence_number=\"5\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data4\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"6\" sequence_number=\"6\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data5\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"7\" sequence_number=\"7\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data6\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"18\" sequence_number=\"8\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"20060101\" name=\"date1\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"8\" sequence_number=\"9\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"00:00:00\" name=\"date2\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"8\" sequence_number=\"10\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data8\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"30\" sequence_number=\"11\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data9\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"2\" sequence_number=\"12\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data10\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"3\" sequence_number=\"13\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data11\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"30\" sequence_number=\"14\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data12\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"2\" sequence_number=\"15\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
– <xs:element default=\"0\" name=\"data13\" type=\"xs:string\">
– <xs:annotation>
– <xs:appinfo>
<b:fieldInfo justification=\"left\" pos_offset=\"0\" pos_length=\"3\" sequence_number=\"16\" />
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>[/code:1:235624bd60][/quote]
Thanks.
I wanted to know something like queue and topic in JMS. Is any such method through which we can implement that in Biztalk for publishing Acknowledgeable message to multiple trading partners.
This works just like try/catch. By declaring an exception handler(catch) you stop the exception from being propagated. And so subsequent code will be performed.
You can have a decide shape after the ExceptionHandler using some flag and terminate gracefully or you can throw an exception as the last step within the ExceptionHandler block and suspend the orchestration.
March 16, 2006 at 1:58 AM in reply to: HOw to Define our own Datatype to Child Field Elements #13170There are a number ways of dealing with this.
In the SQL query you can use ISNULL(listPrice, 0) to put zero into the field if it is null.
You can make the listPrice a string, so a null value is ok.
You can use Logical String and Value Mapping functoids to check for existence of data in listPrice – this will only work mif listPrice is an optional field.
March 15, 2006 at 6:04 PM in reply to: HOw to Define our own Datatype to Child Field Elements #13172Thanks Greg,
I am getting the Empty String, like ( listPrice=\” \” ), eventhough as for your suggestion i changed the properties than also i am getting the same result.
so kindly sugguest another solution for this.Thanks & Regards,
Ahmed
-
AuthorPosts