在Altova MapForce中从CSV文件捕获字段名称元数据

时间:2010-06-04 14:41:57

标签: parsing csv altova

我被要求使用Altova的MapForce对替换“文件转换过程”(目前是乱七八糟的SQL)进行原型设计。我的输入是带有标题的CSV文件。我的问题是我需要捕获数据和列名以用于下游处理。

我需要让MapForce提供一个C#方法(导入时需要两个参数:fieldNamevalue。我可以轻松访问该值,但是几小时后就会超过手册(1000页! )我没有找到任何关于如何访问字段名称作为输出的例子。

每个输出需要字段名称的原因,并且该值与当前管理所有映射/转换的方式有关 - 在数据库上。 .NET代码此时会跳转并执行任何必要的数据库查找。

例如,如果我有以下文件:

"Symbol", "Account", "Price", ...
"FOO", "10101", "1.23", ...
"BAR", "10201, "13.56", ...

静态方法string TransformField( string fieldName, string value )

我想将CSV文件的Symbol数据输出映射到方法的value参数,将字段名称"Symbol"映射到方法的fieldName参数。

一些限制:

  1. 我需要在MapForce GUI中保持“布线”。我将让非程序员在将来维护映射。因此,在代码中执行所有这些操作不是一种选择。
  2. MapForce是公司的首选工具。我们的原始流程如此混乱的部分原因是因为原始程序员推出了他自己的映射/转换工具(TSQL中没有更少 - ouch)。
  3. 我们可以将方法调用的所有输入/输出视为字符串。转换将在稍后发生。
  4. 我想避免使用标量文字作为输入。我已经有了文件中的列名 - 我不想重新输入每个名称并将其提供给我的方法。
  5. 我不确定有多少用户有使用此工具的经验,但经过3天的修补后,我看到了很多潜力。如果我能够超越当前的关键点,我认为该公司将有一个可靠的替代目前的混乱。

    感谢您提出任何/所有建议。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,并且为了将来参考,想要发布一个解决方案。我使用MapForce的FlexText处理了我的问题。这允许我从CSV文件中提取标题并“反转”列名作为转换过程的数据输入。一旦我知道采取的方法,我就可以直接从Altova找到更多信息。

我在挖掘他们的网站时发现了一些有用的教程:

希望将来可以帮助其他人!