Ik heb ook een leuke... van een externe partij gaat er tweewekelijks per e-mail gegevens aangeleverd worden. Er zijn meerdere formaten beschikbaar, maar allemaal zijn ze ruk door hun eigen limitaties.
Optie 1 is positioneel, en dan komt de data dus binnen in dit formaat:
code:
1
2
3
4
| XXXXXXXXXXXXXXXXYYYYYZZZZZ111335263
XXXXXXXXXXXXXXXXYYYYYZZZZZ111335263
XXXXXXXXXXXXXXXXYYYYYZZZZZ111335263
XXXXXXXXXXXXXXXXYYYYYZZZZZ111335263 |
(Waarbij de verschillende tekens dus verschillende data voorstelt)
Dit is leuk en aardig, en het werkt vast wel, maar ik ben er persoonlijk nogal huiverig voor. Er hoeft maar één teken te verschuiven, of men besluit om ineens andere data af te nemen, en de hele boel gaat op z'n bek en het is een draak om dan te troubleshooten en te fixen. Ik heb dit liever niet.
Optie 2 is een CSV-bestand, wat al een betere optie zou zijn. Jammergenoeg heeft dit bestand ook zo z'n beperkingen:
code:
1
2
3
| "Veld 1","Veld 2",,,,"Veld 6","Veld "met quotes erin" 7","Veld 8",,,,"Veld 12"
"Veld 1","Veld 2",,,,"Veld 6","Veld "met quotes erin" 7","Veld 8",,,,"Veld 12"
"Veld 1","Veld 2",,,,"Veld 6","Veld "met quotes en een komma erin", 7","Veld 8",,,,"Veld 12" |
Dit is heel erg slecht te parsen, en talloze parsers heb ik al op hun bek zien gaan door de manier waarop die quotes zijn geëscaped. Het is gebruikelijk in CSV dat de quotes dan worden verdubbeld, hier kennelijk dus niet. Excel kan er niks mee, OLEDB heeft er geen zin in, en zelf splitten op komma's enzo is ook lastig omdat ik dan niet alle velden pak, of juist te veel.
Optie 3 is een Excel-sheet, welke vooralsnog het beste werkt. Kwestie van OLEDB naar de XLS wijzen, de boel in een DataTable gooien en er zelf een CSV van bakken. Dit werkt vooralsnog prima, maar het is de bedoeling dat alles straks in BizTalk komt te draaien dus voorlopig ben ik er nog niet mee klaar.
Ohja, had ik al gezegd dat de files in codepage 850 zijn en dat er onderaan een teken staat wat Windows niet herkent, maar wat uiteindelijk
teken 26 blijkt te zijn?