2017-08-15 7 views
6

हमारे क्लाइंट ने अपनी प्रणाली को एसएपी में बदल दिया है और एक ऐप एसएपी इंटरफ़ेस के माध्यम से डेटा प्रदर्शित करना चाहता है। हमने ऐप को विकसित करने के लिए एसएपीयूआई 5 फ्रेमवर्क + वेबइड का उपयोग करने का निर्णय लिया, क्योंकि यह एक ठोस एमवीसी डिजाइन के साथ-साथ एसएपी इंटरफ़ेस के लिए उपयोग में आसान क्लाउड कनेक्टर के साथ एक बहुत अच्छी नियंत्रण विविधता प्रदान करता है।क्लाउड कनेक्टर डिवाइस पर JSON डेटा लोड करने में विफल रहता है

हम इस तरह एक कनेक्टर कॉन्फ़िगर किया है:

नव app.json

{ 
    "welcomeFile": "/webapp/index.html", 
    "routes": [ 
    { 
     "path": "/resources", 
     "target": { 
     "type": "service", 
     "name": "sapui5", 
     "entryPath": "/resources" 
     }, 
     "description": "SAPUI5 Resources" 
    }, 
    { 
     "path": "/test-resources", 
     "target": { 
     "type": "service", 
     "name": "sapui5", 
     "entryPath": "/test-resources" 
     }, 
     "description": "SAPUI5 Test Resources" 
    }, 
    { 
     "path": "/mynews", 
     "target": { 
     "type": "destination", 
     "name": "MyNews_CMS", 
     "preferLocal": true 
     } 
    } 
    ], 
    "sendWelcomeFileRedirect": true 
} 

यह component.js में हमारे परीक्षण कॉल है:

try {                    
    $.get("/mynews/?json=2", function(data, status) {                     
    alert("success: " + JSON.stringify(data));                    
    }).fail(function(arg1) {                     
    alert("error: " + JSON.stringify(arg1));                    
    });                   
} catch (err) { 
    alert("global error: " + err); 
} 

हमारे वेबसाइड में हमें एसएपी कनेक्टर एपीआई के सभी वांछित डेटा के साथ एक पूर्ण JSON मिलता है, हालांकि, जैसे ही हम ऐप बनाते हैं और इसे एचएटी (एंड्रॉइड, आईओएस, यहां तक ​​कि हस्ताक्षरित) का उपयोग करके किसी भी डिवाइस पर प्रकाशित करते हैं, अनुरोध विफल रहता है।

पहले, यह {} (खाली वस्तु) अलर्ट, तो यह अलर्ट error: {"readyState":0,"status":0,"statusText":"error"}

हम कैसे इस समस्या को हल कर सकते हैं?

+0

SAP के साथ अटक, आप के लिए इतना बुरा;)। क्या आपने अपने डिवाइस को भेजी गई क्वेरी की जांच करने के लिए डिबगिंग प्रॉक्सी (चार्ल्स/फिडलर/burp) का उपयोग करने का प्रयास किया है? शायद आप ब्राउज़र से एक अंतर देखेंगे। क्या आपने पूर्ण यूआरएल (https: //xxxx.yyy के साथ) "/ mynews ..." – wargre

+0

@wargre का पूरा यूआरएल काम करने का प्रयास किया था। यह सिर्फ वह गंतव्य है जो काम नहीं करता है। मेरे अंतिम आईओएस प्रोजेक्ट में मुझे गंतव्य के लिए कोई संदर्भ नहीं मिल रहा है। ऐसा लगता है कि मेरे आईओएस प्रोजेक्ट में नव-ऐप फ़ाइल या कुछ और गुम है। –

+1

मैं एक हट गुरु नहीं हूं लेकिन मुझे डर है neo-app.json फ़ाइल का उपयोग केवल वेबसाइड के अंदर या एसएपी क्लाउड में एक तैनात ऐप के अंदर किया जाता है (उदाहरण के लिए पोर्टल सेवा में)। क्या आप पुष्टि कर सकते हैं कि जब आप ऐप को तैनात करते हैं तो यह फ़ाइल निर्यात की जाती है? – fabiopagoti

उत्तर

0

आपके UI5 एप्लिकेशन से कोई लेना देना नहीं है। एप्लिकेशन को काम करने के लिए भी आवश्यक नहीं है क्योंकि केवल एसएपी वेबइड कॉन्फ़िगरेशन उद्देश्यों के लिए इस फ़ाइल का व्याख्या करता है और इसका उपयोग करता है।

... 
"dataSources": { 
    "ODataEndpoint": { 
     "uri": "https://yourappname.hana.ondemand.com/your/odata/path/", 
     "type": "OData", 
     "settings": { 
      "odataVersion": "2.0", 
      "localUri": "/your/odata/path/" 
     } 
    } 
} 
... 
"models": { 
    "": { 
     "dataSource": "ODataEndpoint" 
    } 
} 
... 

यह आप को देखने के लिए जो URL भी कहा जाता हो जाता है अपने उपकरणों नेटवर्क गतिविधि डिबग चाहिए काम नहीं करता है:

तुम सच में क्या करना चाहते हैं क्या आपके manifest.json अंदर अपने गंतव्यों को परिभाषित है।

कैसे एक iOS एप्लिकेशन के अंदर नेटवर्क कॉल डिबग करने के लिए: https://cordova.apache.org/docs/en/latest/guide/next/#ios-debugging

कैसे एक Android अनुप्रयोग के अंदर नेटवर्क कॉल डिबग करने के लिए: https://cordova.apache.org/docs/en/latest/guide/next/#chrome-remote-debugging

संबंधित मुद्दे