Dayforce API 和 Talend

Dayforce APIs and Talend

我正在尝试在 Talend 中使用 dayforce 的 APIs 从报告中提取数据。

它的工作方式是我需要先获取客户端,然后进行身份验证,然后使用代码调用报告名称。

我一直在获取客户。 WSDL URL 接受一个参数和 returns 以下内容:

<?xml version="1.0" encoding="ISO-8859-15"?>
<root>
<row>
<check>&lt;ns1:GetClientSiteUriResult xmlns:a=&quot;http://Dayforce/Services/Data&quot; xmlns:i=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:ns1=&quot;http://Dayforce/Services/DayforceService&quot;&gt;&lt;a:Error&gt;&lt;a:Code&gt;0&lt;/a:Code&gt;&lt;a:Message i:nil=&quot;true&quot;/&gt;&lt;a:StackTrace i:nil=&quot;true&quot;/&gt;&lt;/a:Error&gt;&lt;a:ServiceVersion&gt;49.0.16090.6&lt;/a:ServiceVersion&gt;&lt;a:Uri&gt;https://748.dayforcehcm.com/Datasvc/DayforceService.svc&lt;/a:Uri&gt;&lt;/ns1:GetClientSiteUriResult&gt;</check>
</row>
</root>

如何从此响应中提取 URI? URI 是 https://748.dayforcehcm.com/Datasvc/DayforceService.svc

如何使用那里的 URI 调用 Authenticate API 方法。 Authenticate 只接受 3 个参数,即公司名称、用户和密码。我将如何使用 URI?

[statistics] connecting to socket on port 3578
[statistics] connected
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Syntax error, insert ")" to complete MethodInvocation
    Syntax error, insert ";" to complete LocalVariableDeclarationStatement

    at dayforce_apis.dayforce_employee_listing_0_1.Dayforce_Employee_Listing.tSOAP_1Process(Dayforce_Employee_Listing.java:330)
    at dayforce_apis.dayforce_employee_listing_0_1.Dayforce_Employee_Listing.runJobInTOS(Dayforce_Employee_Listing.java:610)
    at dayforce_apis.dayforce_employee_listing_0_1.Dayforce_Employee_Listing.main(Dayforce_Employee_Listing.java:467)

你做错了什么,但你的信息没有很好地解释你是如何得到你的输出信息的。

首先,您使用的是哪个版本的 Talend? TOS 或订阅工作室?哪个确切的版本? 5.6, 6.0, 6.1, 6.2 ?

其次,你必须至少放一张你的工作照片。有多个组件可以查询 SOAP Web 服务:

  • tWebService(在开源版本中可用):解析 WSDL 文件和 XSD 以将 talend 列映射到 XML 文档
  • tSOAP(在开源版本中可用):提供的功能较少,但让用户可以更自由地生成 XML 输入和解析输出。
  • tESBConsumer(仅在订阅版中可用):提供与 tWebService 等效的功能 + 对安全和基础设施 Talend 组件的支持。

我建议使用 tSOAP,它在这种情况下提供了最大的自由度。 您可以在此处找到有关组件和几个用例的信息: tSOAP Documentation

这是作业截图:

为了得到这个结果,你必须:

  • 使用 SOAP UI(或任何其他 SOAP 客户端)导入 WSDL 并尝试请求
  • 复制tSOAP 组件中的输入消息,不要忘记在tSOAP 中勾选"Output as Document"。您的 tSOAP 组件应该与此类似:

  • 使用 SOAP UI
  • 的输出结构创建一个 XML 文件
  • 使用导入结构函数在 tXMLMap 组件中导入 XML 结构,如下所示:

  • 将需要的元素映射到您的 tXMLMap 输出

在这种情况下使用tXMLMap并不是绝对必要的,如果你对XPath有更多的经验,你可以试试tExtractXMLField组件。