Dayforce API和Talend

时间:2016-07-25 23:45:34

标签: xml web-services soap talend

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

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

我坚持收购客户。 WSDL URL接受一个参数并返回以下内容:

<?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)

1 个答案:

答案 0 :(得分:2)

你做错了什么,但是你的信息并不能很好地解释你输出信息的方式。

首先,您使用的是哪个版本的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

这是一个Job截图: tSOAP Job screenshot

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

  • 使用SOAP UI(或任何其他SOAP客户端)导入WSDL并尝试请求
  • 将输入消息复制到tSOAP组件中,不要忘记检查&#34;输出为文档&#34;在tSOAP中。您的tSOAP组件应类似于:

tSOAP component view

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

tXMLMap import structure

  • 将所需元素映射到tXMLMap输出

tXMLMap mappings

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