我被要求使用 Altova 的 MapForce 制作一个替代“文件转换过程”(目前是一团 SQL)的原型。我的输入是带有标题的 CSV 文件。我的问题是我需要同时捕获数据和列名以在下游处理中使用。
我需要让 MapForce 提供一个 C# 方法(导入,因为它需要两个参数:fieldName
和value
字段名称作为输出。
每个输出需要字段名称和值的原因与我们当前如何管理所有映射/转换有关 - 在数据库上。.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 天的修改后,我看到了很大的潜力。如果我能克服目前的症结,我认为公司将有一个可靠的替代方案来解决他们目前的混乱局面。
感谢您的任何/所有建议。