【发布时间】:2026-01-06 00:25:01
【问题描述】:
有人要求我使用 Altova 的 MapForce 制作一个替代“文件转换过程”(目前是一团 SQL)的原型。我的输入是带有标题的 CSV 文件。我的问题是我需要同时捕获数据和列名以用于下游处理。
我需要让 MapForce 提供一个 C# 方法(导入,因为它需要两个参数:fieldName 和 value。我可以轻松访问该值,但经过数小时的翻阅手册(1000 页!)我没有t 找到了如何将字段名称作为输出访问的任何示例。
每个输出都需要字段名称和值的原因与我们当前管理所有映射/转换的方式有关 - 在数据库上。 .NET 代码此时会进入并执行任何必要的数据库查找。
例如,如果我有以下文件:
"Symbol", "Account", "Price", ...
"FOO", "10101", "1.23", ...
"BAR", "10201, "13.56", ...
还有一个静态方法string TransformField( string fieldName, string value ),
我想将 CSV 文件的 Symbol 数据输出映射到方法的 value 参数,并将字段名称 "Symbol" 映射到方法的 fieldName 参数。
一些限制:
- 我需要在 MapForce GUI 中保持“接线”可见。将来我会让非程序员维护映射。因此,在代码中完成所有这些不是一种选择。
- MapForce 是公司选择的工具。我们最初的流程如此混乱的部分原因是因为最初的程序员推出了他自己的映射/转换工具(同样来自 TSQL - 哎哟)。
- 我们可以将方法调用的所有输入/输出视为字符串。转换将在稍后发生。
- 我想避免使用标量文字作为输入。我已经有了文件中的列名 - 我不想重新输入每个列名并将其提供给我的方法。
我不确定有多少用户使用过这个工具,但经过 3 天的修改后,我看到了很大的潜力。如果我能克服目前的症结,我认为公司将有一个可靠的替代方案来解决他们目前的混乱局面。
感谢任何/所有建议。
【问题讨论】: