I cannot share actual project as it is condemned by policies of my current employer. In this tutorial, I will inherit may class library to FFDasmComp and implement few basic methods from IBaseComponent and IDisassemblerComponent interfaces. Extending Flat file disassembler component using FFDasmComp
Therefore, we decided not to put carriage return after the last line, and check applied in receive pipeline, if carriage return was present at the end of the stream, it was partial read, otherwise flat file was good.įor this purpose, I created receive pipeline component for disassemble stage, and in case of partial file, I sent email to ITD Ops and wrote error in event log. We noticed that whenever partial file read by BizTalk, there was carriage return in the last, as file read line by line and every line had carriage return in the end. Records in flat file were delimited by carriage return (\r\n as it is on windows) and fields inside every record were positional. This scenario occurred seldom so we decided to through error when it occurred and inform ITD Ops to run job again (which was creating file on FTP location). We could not be sure about the exact timing of generation of file so we could not schedule any service window or sets polling on FTP receive location. This scenario caused partial file read situation. Sometimes, we had huge number of transactions and flat file took 30 to 45 seconds to be written, and BizTalk started to read the file while the file was still writing by another system. BizTalk read that file from FTP location.
In this project we were getting transactions from another system in a flat file.