2016-06-16 1 views
0

Il est nécessaire d'importer un fichier fléché "Ragged Right" avec Biztalk dans des emplacements de destination tels qu'une base de données SQL et un service Web CRM.Est-il possible de définir le composant source de fichier plat dans Biztalk pour lire les fichiers "Ragged Right"?

Le fichier est le format suivant

Column1(10characters)Column2(13characters)Column3(17Chars.)Column4(till Row deliminator CRLF) 

Où puis-je ceci dans le Biztalk dans l'Assistant de fichier plat schéma que la dernière colonne n'a pas de largeur fixe?

Je sais que cela fonctionnera dans SSIS mais ce n'est pas une option. Nous devons maintenant faire cela avec Biztalk2010

+0

Y at-il une largeur maximale possible de cette dernière colonne? –

+1

Pouvez-vous poster un échantillon réel (avec 2 lignes au minimum) s'il vous plaît? –

Répondre

3

Voici une meilleure réponse

Du blog Early Termination with Position Flat Files

Pour rendre BizTalk reconnaître une terminaison précoce, vous devez ouvrir votre schéma dans un éditeur de texte et ajoutez allow_early_termination = « true » xs: noeud d'annotation . Cette propriété n'est pas exposée dans l'éditeur BizTalk XSD.

Cet article concernait probablement BizTalk 2004, mais il fonctionne toujours dans BizTalk 2013 R2. Alors faites un clic droit sur votre schéma, sélectionnez Ouvrir avec et sélectionnez l'éditeur XML (Texte) et effectuez la modification comme ci-dessus.

Mise à jour: juste vérifié dans Visual Studio 2013 et ces propriétés sont maintenant disponibles dans les propriétés du schéma

enter image description here

+0

merci Dijkgraaf pour vos réponses. Nous avons essayé les deux et ils travaillent tous les deux mais celui-ci est plus facile à appliquer. – superschaf

+0

Oui, et pas d'effets secondaires, contrairement à ma première réponse.Je pensais que cette fonctionnalité existait mais ne pouvait pas le voir dans l'éditeur XSD, mais quand j'ai cherché avec les mots clés corrects (fichier plat BizTalk permettent une résiliation anticipée) ce blog est venu me rappeler où faire. – Dijkgraaf

2

Une façon de l'aborder.

Étant donné un exemple de fichier comme

Column1 Column2  Column3   Column4    {CR}{LF} 
123456789{CR}{LF} 
Test1A Test1B  Test1C   Test1D{CR}{LF} 
Test2A Test2B  Test2C   Testing2D{CR}{LF} 

Régler la dernière colonne à positionnel Longueur de 1 et Max Survient de la suite en éditant sans bornes du schéma.

Votre sortie XML ressemblera à celle ci-dessous. Vous pouvez ensuite réassembler la dernière colonne avec une carte en utilisant le Functiod cumulatif avec le paramètre scope défini à 1. Note: Il ne conserve cependant pas d'espace, ce qui pourrait poser un problème.

XML Sortie

<Ragged xmlns="http://Scratch.Ragged"> 
    <Ragged_Child1 xmlns=""> 
     <Column1>Column1</Column1> 
     <Column2>Column2</Column2> 
     <Column3>Column3</Column3> 
     <Column4>C</Column4> 
     <Column4>o</Column4> 
     <Column4>l</Column4> 
     <Column4>u</Column4> 
     <Column4>m</Column4> 
     <Column4>n</Column4> 
     <Column4>4</Column4> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
     <Column4/> 
    </Ragged_Child1> 
    <Ragged_Child1 xmlns=""> 
     <Column1>1234567890</Column1> 
     <Column2>1234567890123</Column2> 
     <Column3>123456789</Column3> 
     <Column4>1</Column4> 
     <Column4>2</Column4> 
     <Column4>3</Column4> 
     <Column4>4</Column4> 
     <Column4>5</Column4> 
     <Column4>6</Column4> 
     <Column4>7</Column4> 
     <Column4>8</Column4> 
     <Column4>9</Column4> 
     <Column4>0</Column4> 
     <Column4>1</Column4> 
     <Column4>2</Column4> 
     <Column4>3</Column4> 
     <Column4>4</Column4> 
     <Column4>5</Column4> 
     <Column4>6</Column4> 
     <Column4>7</Column4> 
     <Column4>8</Column4> 
     <Column4>9</Column4> 
     <Column4>0</Column4> 
    </Ragged_Child1> 
    <Ragged_Child1 xmlns=""> 
     <Column1>Test1A</Column1> 
     <Column2>Test1B</Column2> 
     <Column3>Test1C</Column3> 
     <Column4>T</Column4> 
     <Column4>e</Column4> 
     <Column4>s</Column4> 
     <Column4>t</Column4> 
     <Column4>1</Column4> 
     <Column4>D</Column4> 
    </Ragged_Child1> 
    <Ragged_Child1 xmlns=""> 
     <Column1>Test2A</Column1> 
     <Column2>Test2B</Column2> 
     <Column3>Test2C</Column3> 
     <Column4>T</Column4> 
     <Column4>e</Column4> 
     <Column4>s</Column4> 
     <Column4>t</Column4> 
     <Column4>i</Column4> 
     <Column4>n</Column4> 
     <Column4>g</Column4> 
     <Column4>2</Column4> 
     <Column4>D</Column4> 
    </Ragged_Child1> 
</Ragged> 

Plan

Map

Carte de sortie

<ns0:Ragged xmlns:ns0="http://Scratch.Ragged"> 
    <Ragged_Child1> 
     <Column1>Column1</Column1> 
     <Column2>Column2</Column2> 
     <Column3>Column3</Column3> 
     <Column4>Column4</Column4> 
    </Ragged_Child1> 
    <Ragged_Child1> 
     <Column1>1234567890</Column1> 
     <Column2>1234567890123</Column2> 
     <Column3>123456789</Column3> 
     <Column4>123456789</Column4> 
    </Ragged_Child1> 
    <Ragged_Child1> 
     <Column1>Test1A</Column1> 
     <Column2>Test1B</Column2> 
     <Column3>Test1C</Column3> 
     <Column4>Test1D</Column4> 
    </Ragged_Child1> 
    <Ragged_Child1> 
     <Column1>Test2A</Column1> 
     <Column2>Test2B</Column2> 
     <Column3>Test2C</Column3> 
     <Column4>Testing2D</Column4> 
    </Ragged_Child1> 
</ns0:Ragged>