本文是在SAP WEB IDE安装完成后,第一个使用模板使用ODATA的程序,
请先确保学习UI5第一步SAP WEB IDE安装完成。
本使用的ODATA为ODATA官网提供的公司数据源,使用时不需要使用用户密码,地址为:https://services.odata.org/V2/Northwind/Northwind.svc/,此地址可以直接使用浏览器打开,也可以使用其它的数据源,比如SAP提供的https://sapes4.sapdevcenter.com/SAP/OPU/ODATA/IWFND/RMTSAMPLEFLIGHT/,但些地址的数据源使用打开里会提示用户登陆,用户需要先免费申请(SAP学习第一步—找一个自己的服务器–HANA)。
——————————————————————————————————————————
一、配置数据源代理域名(我理解的是此步主要解决ODATA数据源使用时的跨域名问题,如是网站与ODATA在同一域名下,此步可以不使用),打开目录C:\SAPWebIDE\config_master\service.destinations\destinations,新建立一个文件名northwind(注意此文件没有扩展名),使用事本打开并写如:
Description=northwind
Type=HTTP
TrustAll=true
Authentication=NoAuthentication
Name=northwind
ProxyType=Internet
URL=https\://services.odata.org
WebIDEUsage=odata_gen,odata_abap,ui5_execute_abap
WebIDESystem=northwind
WebIDEEnabled=true
sap-client=
生成如图:
二、双击IDE程序目录中的orion.exe,执行,并用 Chrome浏览器打开地址:http://localhost:8090/webide/index.html,运行SAP WEB IDE;
三、使用模板创建一个ODATA的例子;
3.1点击File->New->Project from Template;
3.2 选择SAP Fiori Worklist Application;
3.3 输入项目名:ui5_test,并点击下一步;
3.4 设置ODATA数据源,选择第一步配置的northwind,并输入地址:/V2/Northwind/Northwind.svc/ ,点击“Test”测试,正常会如图显示可以的数据;随便选择一下数据表,并点击下一步;
3.4设置显示的内容页;在图中,选择使用Products,由于此数据源没有价格单位,所以Object Unit of Measure没选择,点击下一步完成向导。
四、生成如图目录程序,点击运行,如是正常那就能打开内容,
4.1正常运行后就能打开显示的内容了,但我下载的1.137版本运行后确报错如图(由于事后确认我使用其它的版本如上面生成的不会报错,1.130没问题,所以如你已成功运行不用看此部份内容)
{
“requestUri”: “/V2/Northwind/Northwind.svc/$metadata?sap-documentation=heading”,
“statusCode”: 404,
“statusText”: “Not found: http://localhost:8090/file/yan252-OrionContent/ui5_test/V2/Northwind/Northwind.svc/$metadata”,
“headers”: [],
“body”: “<html>\n<head>\n<meta http-equiv=\”Content-Type\” content=\”text/html;charset=ISO-8859-1\”/>\n<title>Error 404 Not found: http://localhost:8090/file/yan252-OrionContent/ui5_test/V2/Northwind/Northwind.svc/$metadata</title>\n</head>\n<body>\n<h2>HTTP ERROR: 404</h2>\n<p>Problem accessing /V2/Northwind/Northwind.svc/$metadata. Reason:\n<pre> Not found: http://localhost:8090/file/yan252-OrionContent/ui5_test/V2/Northwind/Northwind.svc/$metadata</pre></p>\n<hr /><i><small>Powered by Jetty://</small></i>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n</body>\n</html>\n”
}
我也不知是什么原因导致的,后来发现生成的neo-app.json文件最后一段为:
{
“path”: “/webidedispatcher/destinations/northwind”,
“target”: {
“type”: “destination”,
“name”: “northwind”
},
“description”: “northwind”
}
而manifest.json文件的数据定义为:
“dataSources”: {
“mainService”: {
“uri”: “/V2/Northwind/Northwind.svc/”,
“type”: “OData”,
“settings”: {
“odataVersion”: “2.0”,
“localUri”: “localService/metadata.xml”
}
}
},
所以我把manifest.json中的
“uri”: “/V2/Northwind/Northwind.svc/”,
修改为
“uri”: “/webidedispatcher/destinations/northwind/V2/Northwind/Northwind.svc/”,
最后运行此程序,
就正常了,结果如图: