2016-06-13 5 views
0

これは私の職場でいくつかのタスクを自動化する世界を模索しているので、私が持っている一般的な質問です。データ送信SAP Fioriランチパッドwebapp/SAPUI5 webappからクライアント側javascript

Googleのビジネスウェブサイトには、タイルとして表示されているアプリを持つポータル/ランチパッド環境があります。

オープンされたこれらのアプリケーションの1つに、SAPデータとのインターフェイス(私が想定している)のための検索フィールドとセレクタが多数あるホームページがあります。

最終的に私の目標は、クライアントサイドのローカルWebアプリケーション(単純な古いHTML/jqueryのもの)の特定の検索フィールドに番号を送信し、その番号の検索をsapui webappで実行できるようにすることです。

私はjavascript/HTML/CSSで有能なレベルに達していますが、このタイプの問題から始める場所は完全に失われています。

私のすべての経験は、ローカルMS AccessデータベースとのインターフェイスがほとんどのクライアントサイドWebアプリケーションを完全に作成することにありました。

私は何を提案しても可能ですか? URLの末尾に?....後の文字列のいくつかのフォームを追加する

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アプリケーションなので、私はこれを行う方法をまとめられませんでした。普通のWebページよりも多くの情報があると仮定しています。 –

答えて

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();  
} 

これもやはりflori環境の外にある完全にクライアント側のソリューションなので、完全にjavascriptベースのままにしたいと考えています。

1

それを達成するためのpossibiltiesがありますが、私はそれが別のWebアプリケーション内のフィールドを埋めるために、検索をトリガするために、本物の良い解決策ではないと思います。

このFiori Appで使用されているバックエンドサービスが分かっていれば、サービスを直接統合する方が良いでしょう。それがフィオリアプリケーションの場合、私はOData/RESTサービスかもしれません。 Odata/RESTサービスも、HTML/jquery JavaScriptのものから呼び出すことができます。

ウェブアプリケーションが検索フィールドで使用するサービスURLとペイロードを確認するには、Chrome Debuggerツール(またはその他のブラウザデバッグツール)を使用し、ネットワークのどのサーバーアドレスとどのペイロードパラメータが検索を手動で起動すると、サーバーに送信されます。それが少しあなたを助けることを願っています。

+0

こんにちは、AJAX GETリクエストを作成することが可能です。 JavascriptでXMLHttpRequestオブジェクトを使用するだけです。ここにチュートリアルがあります。 http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp –

1

Fioriの概念全体では、アプリケーションが他のアプリケーションを呼び出して、ユーザーが期待するところに正確に開くようにすることは間違いありません。例えば。品目マスタに持ち込む商品をクリックして注文し、品目マスタアプリケーションでユーザがクリックした商品を正確に表示させることができます。

これまで説明したように、これはいくつかのパラメータをサポートするために、実際には(それがナビゲートされる)ターゲットアプリケーションを必要とします。あなたはあなたの質問で既にURLに "?...."セクションを追加することができるのかどうか疑問に思っています。 Fioriのアプリは間違いなくこのコンセプトをサポートしていますが、実装方法はアプリ自体に大きく依存しています。私の前の例では、それは簡単であるかもしれません。しかし、?product_id=abcdeを追加してください。

フィオリには非常に優れた拡張性の概念も組み込まれています。あなたのターゲットアプリケーションがあなたが渡す予定のパラメータを正確にサポートしていない場合は、アプリケーション全体をコピーすることなく、サポートするためにアプリケーションを簡単に拡張することができます(元の開発者から更新を受け取ったときの災害)。

1つのFioriアプリから別のFioriアプリにナビゲートするには、Fioriランチパッドに付属のCrossApplicationNavigationサービスのtoExternalメソッドを使用することをお勧めします。このサービスでは、ナビゲートするアプリ、インテント(表示、作成など)、パラメータ(商品IDなど)、アプリ固有のルートなどのパラメータを指定できます(例:/ supplierdetails製品)。

CrossApplicationNavigationサービスは正式にSAPUI5 SDKに記載されていますが、SDKには非常に詳細な説明が含まれていないことが懸念されます。ただし、Googleの場合は、SCNとStackoverflowに関する豊富な情報と例がこのトピックでも見つかります。

+0

こんにちは、背景と可能性に関する情報をありがとう。私はbarebonesアプローチを使ってxmlhttpリクエストを送信し、JSONにレスポンスを解析します。これで、元の投稿の編集内容に従って「プロダクトID」が送信されたときに、clientsideのhtml/JavaScriptアプリ(フロリから完全に分離した手作りダッシュボード)が「製品情報」を表示できるようになりました。私のラップトップは今は持っていませんが、週末にはソリューションを投稿します。しかし今、私は "製品ID"をクリックし、フロリアプリの "製品"詳細画面に表示されるという私の目標を達成する機能を拡張したいと考えています。可能? –

+0

絶対に可能です。ターゲットアプリはこれをサポートする必要があります。 Fioriのアプリケーションにはソースコードが付属しているため、拡張が可能です。 – jpenninkhof

関連する問題