【问题标题】:Talend - Read xml schema of Ldap from an xml fileTalend - 从 xml 文件中读取 Ldap 的 xml 架构
【发布时间】:2014-08-28 09:09:50
【问题描述】:

我在看什么?

  • 我想从 xml 文件中读取 LDAPinput 的架构。

信息:

  • 用户将在 xml 文件中定义他想要的属性。
  • 该作业将仅从 LDAP 文件夹中检索那些在 xml 中定义的属性。我怎样才能做到这一点?

我是 talend 新手,在 SO 中找不到任何关于此的问题。

【问题讨论】:

  • 您的意思是您只需要 LDAP 架构中的某些“列”,例如 name 和 registration_date 或标准,例如 (name=syd)&(registration_date=2010-06-29)?另外,为什么要使用 XML 来定义要返回的数据?
  • 是的,这就是我想要的。这是为了让用户决定他们想要什么列。
  • 这是一个非此即彼 :) 所以您希望能够过滤行和列?您能否提供一个示例 XML 输入/任何真正定义您希望如何指定列和行过滤器的输入?
  • 对不起。没有完全阅读:)。 xml 文件将只有列名,例如名称和日期。它没有标准。

标签: ldap talend


【解决方案1】:

老实说,正确地执行此操作非常痛苦,我会认真重新考虑为什么需要限制从 LDAP 服务返回的列,而不仅仅是忽略无关的列。

首先,您需要解析 XML 输入以获取请求的列并将其放入列表中,然后将其放入 globalMap。

您需要做的是读取整个输出,其中包含来自正确配置的 tLDAPInput 组件的所有列,但组件的架构设置为具有单个动态列。

从这里开始,您需要使用 tJavaRow/tJavaFlex 组件来遍历 XML 输入中的预期列列表,然后从动态列的元数据中检索每个列的名称,如果列名称与您提供的值匹配XML 输入然后将值输出到输出列中。

tJavaRow/tJavaFlex 的输出模式需要包含尽可能多的列(因此您的服务的每个 LDAP 列),然后根据需要填充它们。或者,您可以输出另一个动态架构列,这意味着您不需要固定架构列,但您必须添加一个元列(即动态列内的列)与每个列名匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2016-05-19
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多