2016-06-13 68 views
0

這是我在探索自動化工作場所中某些任務的世界時的一個普遍問題。從客戶端發送數據SAP Fiori launchpad webapp/SAPUI5 webapp javascript

我們的企業網站上有一個門戶/啓動板環境,應用程序顯示爲圖塊。

其中一個應用程序在打開時有一個主頁,其中包含一組搜索字段和選擇器以與我交互(我假設)SAP數據。

最終我的目標是能夠發送一個數字到客戶端本地webapp(只是普通的舊HTML/jQuery的東西)的特定搜索字段,並在sapui webapp中執行搜索。

我正在使用javascript/HTML/CSS達到一個合格的水平,但我完全失去了從這種類型的問題開始,因爲MVC的東西對我完全陌生。

我的經驗一直是創建完全與客戶端的Web應用程序,主要是與本地MS Access數據庫接口。

我的建議甚至可能嗎?

到目前爲止,我可以打開通過執行以下代碼的網頁,有人在組織中的其他人使用:

window.open('https://fiori.mycompany.com/sap/bc/ui5_ui5/sap/z_cs_ch/index.html 

是否有可能在網址的結尾?....之後添加某種形式的字符串?

再一次,我對此很陌生,並且在sapui網站上查看開發指南也沒有涉及到它。可能是因爲我並不真正知道我在找什麼!

任何幫助/指導,非常感謝。

編輯: 後評論下面我可以看到發送到服務器的請求是採用以下格式:

Request GET /sap/opu/odata/sap/someotherlocation/SearchTerm('<variable to search for>')?$format=json HTTP/1.1 

難道我就在思考我可能會發送一個Ajax請求做同樣的事情?如果是這樣,我該怎麼辦?

再次感謝

+0

我是否正確理解你的意思,你想自動填寫網頁上的字段? – hirse

+0

我覺得很高層。然而,因爲這是一個SAPUI應用程序,我一直無法拼湊出一個方法來做到這一點,所以我認爲它比常規網頁更多 –

回答

0

正如我承諾的那樣,我得到了工作 - 實際上從其他地方的答案得到了整體方法。

這將發回足夠的細節,我可以至少顯示用戶一些更新,但搜索後,我相信我真的需要能夠做批量請求...我正在調查Apache Olingo看到如果這是可能的。

function orderSmmary(SO) { 
    var uri = "https://fiori.<company>.com/sap/opu/odata/sap/<environment>/Details('"+ SO + "')?$format=json"; 

    var http_request = new XMLHttpRequest(); 
    http_request.onreadystatechange = function() { 
     if (http_request.readyState == 4 ) { 
      var data = JSON.parse(http_request.responseText); 
      // Do lots of awesome stuff with response 
     } 
    } 

    http_request.open('GET',uri, true); 
    http_request.setRequestHeader("Authorization", "Negotiate"); 
    http_request.send();  
} 

再次,這是一個完全客戶端解決方案,完全從任何弗洛裏環境以外,所以我希望保持完全基於JavaScript的基礎。

1

有possibilties實現這一點,但我認爲這不是一個真正好的解決辦法,以填補字段另一個Web應用程序,並觸發搜索。

如果您知道此Fiori應用程序使用的後端服務並直接整合服務,那將會更好。如果它是Fiori應用程序,我可能是OData/REST服務。 Odata/REST服務也可以通過HTML/jQuery JavaScript調用。

爲了確定Web應用程序使用搜索字段的服務URL和有效負載,只需使用Chrome調試工具(或其他瀏覽器調試工具),然後在網絡中檢查哪個服務器地址和哪些有效內容參數爲發送到服務器,當你手動觸發搜索。希望能幫助你一點點。

+0

嗨,是的,應該可以創建一個AJAX GET請求。只需在Javascript中使用XMLHttpRequest對象。在這裏你會找到一個教程。 http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp –

1

在整個Fiori概念中,確實有可能讓應用程序調用其他應用程序,並讓它們在用戶期望的位置完全打開。例如。從訂單點擊要帶入物料主數據的產品,並讓物料主數據精確顯示用戶點擊的產品。如上所述,這確實需要目標應用程序(即導航到)來支持一些參數。您在您的問題中已經提到您想知道是否可以在URL中添加「?....」部分。 Fiori應用程序絕對支持這個概念,但它如何實現取決於應用程序本身。在我之前的例子中,它可以像例如雖然增加了?product_id=abcde

Fiori也有非常好的內置擴展性概念。因此,如果您的目標應用程序不完全支持您想要傳遞的參數,則可以輕鬆擴展應用程序以支持該應用程序,而無需重寫整個應用程序(這會在您從原始開發人員接收更新時造成災難)。

要從一個Fiori應用導航到另一個,建議使用服務的toExternal方法,該方法與Fiori啓動板一起提供。此服務允許您指定參數,例如您要導航到的應用程序,意圖(顯示,創建等),參數(如產品ID)和特定於應用程序的路線(例如/ supplierdetails以查看供應商詳細信息一個產品)。

CrossApplicationNavigation服務已正式記錄在SAPUI5 SDK中,但恐怕SDK中不包含非常詳細的說明。但是,如果您使用Google,則可以在此主題上找到有關SCN和Stackoverflow的大量信息和示例。

+0

嗨,感謝您對可能性的背景和信息。我有一個準系統的方法,現在我發送一個xmlhttp請求並將響應解析爲JSON。所以現在我的客戶端上的html/JavaScript應用程序(自制的儀表板完全獨立於佛羅里達)可以顯示「產品信息」,當我的原始文章中的編輯發送「產品ID」時。現在沒有我的筆記本電腦,但會在週末後發佈解決方案。但是現在我想擴展實現我點擊「產品ID」並被帶到flori應用程序的「產品」細節屏幕的目標的能力。可能? –

+0

絕對有可能。目標應用需要支持這個。 Fiori應用程序帶有源代碼並且可以進行增強,這是非常幸運的。 – jpenninkhof

相關問題