¿Cómo usa BizTalk para crear un archivo plano con encabezados y líneas de una consulta?

Soy nuevo en BizTalk y estoy logrando crear interfaces normales de Oracle a un archivo plano.

Pero la mayoría de nuestras interfaces serán una combinación de un encabezado con líneas de diferente longitud.

Por ejemplo, la consulta sería...

select oh.id, oh.name, ol.lineNo, ol.qty_ordered, ol.qty_shipped, ol.price 
from header oh, line ol

Esto daría como resultado un archivo plano similar a este...

oh.id       |  oh.name
ol.lineNo   |  ol.qty_ordered  |  ol.qty_shipped  |  ol.price
ol.lineNo   |  ol.qty_ordered  |  ol.qty_shipped  |  ol.price
ol.lineNo   |  ol.qty_ordered  |  ol.qty_shipped  |  ol.price
oh.id       |  oh.name
ol.lineNo   |  ol.qty_ordered  |  ol.qty_shipped  |  ol.price
ol.lineNo   |  ol.qty_ordered  |  ol.qty_shipped  |  ol.price

Estoy seguro de que esta no es una configuración extraña para BizTalk, pero no tengo idea de cómo llamarlo, así que realmente no puedo buscarlo en Google. Hasta ahora, parece que tengo problemas para crear un esquema y un mapeo que permitan que las líneas sean tan diferentes

preguntado el 22 de mayo de 12 a las 08:05

2 Respuestas

Sugeriría usar el Asistente para esquemas de BizTalk msdn

Nota: solo he trabajado un poco con BizTalk y archivos planos, pero encontré el artículo en proyecto de codigo util como entrante

contestado el 22 de mayo de 12 a las 08:05

Si lo entiendo correctamente (supongo que necesita un esquema para el uso del mapeador), necesita un esquema que sea algo así como

     <?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://BizTalk_Server_Project1.FlatFileSchema1" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://BizTalk_Server_Project1.FlatFileSchema1" 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=" " pad_char_type="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="Sales" wrap_char_type="char" default_wrap_char="&quot;" />
    </xs:appinfo>
  </xs:annotation>
<xs:element name="orders">
        <xs:complexType>
        <xs:sequence>
        <xs:element maxOccurs="unbounded" name="order">
        <xs:complexType>
        <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="1" name="orderheader">
        <xs:complexType>
        <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="1" name="ohID"/>
        <xs:element maxOccurs="1" minOccurs="1" name="ohName"/>
        </xs:sequence>
        </xs:complexType>
    </xs:element>
        <xs:element maxOccurs="1" minOccurs="1" name="orders">
        <xs:complexType>
        <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="1" name="ohLineNo"/>
        <xs:element maxOccurs="1" minOccurs="1" name="ohQuantityOrdered"/>
        <xs:element maxOccurs="1" minOccurs="1" name="ohQuantityShipped"/>
        <xs:element maxOccurs="1" minOccurs="1" name="ohPrice"/>
        </xs:sequence>
        </xs:complexType>
    </xs:element>
        </xs:sequence>
        </xs:complexType>
        </xs:element>
        </xs:sequence>
        </xs:complexType>
        </xs:element></xs:schema>

Luego, ¿usando la compilación del mapeador según lo necesite de su resultado?

contestado el 25 de mayo de 12 a las 11:05

su esquema es bueno, y el mapeo que solía usar tenía para las órdenes y luego un ciclo for para recorrer las líneas y agregarlas. Dado que la mayor parte del mapeo es muy exclusivo para mí, no estoy seguro de si debo responder mi propia pregunta o simplemente aceptar su respuesta. - Andy

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.