Sự cố được giải quyết. Đây là giải pháp trong trường hợp bất kỳ ai khác đang tự hỏi:
Vì LF và CRLF đều chia sẻ ký tự LF, tôi đặt dấu phân cách là LF (0x0A). Điều này hoạt động chính xác để trích xuất các bản ghi đầy đủ (với tác dụng phụ của việc có thêm một ký tự CR ở cuối khi CRLF là dấu phân tách).
Người ta có thể loại bỏ nhân vật CR phụ bằng cách sử dụng trường giả để hấp thụ ký tự CR hoặc bằng cách sử dụng bản đồ.
Lưu ý rằng vì dấu phân tách LF và CRLF có độ dài khác nhau (1 và 2 ký tự tương ứng), tôi phải thực hiện thêm một vài thay đổi đối với giản đồ để đảm bảo cả hai được xử lý chính xác. Trong kịch bản của tôi, mỗi bản ghi dòng đã được phân tích cú pháp chứa 8 trường vị trí, vì vậy có một ký tự CR phụ ở cuối dẫn đến lỗi do Biztalk mong đợi một độ dài nhất định cho trường cuối cùng không tính đến phần bổ sung Nhân vật CR. Giải pháp là tăng độ dài của trường thứ 8 (trường Filler trong trường hợp của tôi) lên 1. Tuy nhiên, để vẫn có thể xử lý các dấu phân tách dòng LF, hãy đảm bảo bạn đặt 'Cho phép chấm dứt sớm' cờ đến TRUE. Bằng cách này không có lỗi nào được ném nếu trường cuối cùng là 1 ký tự ngắn của độ dài được gán của nó (nếu không có ký tự CR).
Điều này có nghĩa là bạn cũng sẽ chấp nhận các hồ sơ không đúng định dạng? –