2016-07-25 81 views
1

我试图在Talend中使用dayforce的API从报表中提取数据。Dayforce API和Talend

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

我被困在获得客户端。 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) 

回答

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

这里是一个工作截图: tSOAP Job screenshot

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

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

tSOAP component view

  • 创建与tXMLMap部件使用进口结构功能从SOAP UI
  • 导入XML结构的输出结构的XML文件,如以下:

tXMLMap import structure

  • 地图所需要的元素,你tXMLMap输出

tXMLMap mappings

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

+0

非常感谢您的帮助。我可以看看你的组件截图是什么样的。我不确定EndPoint应该是什么。什么是您用于EndPoint和肥皂行动的URL? – a415

+0

答案已在tSOAP部分的附加屏幕上更新。 – mhassine

+0

我的组件外观完全一样,但出现错误。 线程“main”中的异常java.lang.Error:未解决的编译问题: \t语法错误,插入“)”以完成MethodInvocation \t语法错误,插入“;”完成LocalVariableDeclarationStatement – a415