2016-07-25 80 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