cancel
Showing results for 
Search instead for 
Did you mean: 

.../sap/opu/odata/iwbep/... HTTP Status 404 - Not Found

danmllr
Explorer
0 Kudos

Hi everyone,

I've connected my SAPCP-trial-acc via SAPCC to my on-premis NW ABAP 7.52 dev edition. The connection seems to work fine:

NW ABAP system <--> SAPCC:

SAPCC <--> SAPCP:

And principal propagation is enabled and succesfully connected.

In backend (NW ABAP) odata is activated (i.e. GWSAMPLE_BASIC):

So far so good. On WebIDE I created a new project from template (Master-Detail). In Service Catalog I've chosen my Principal Propagation destination and the mentioned GWSAMPLE_BASIC service. After the template setup I ran my app in flpSandbox.html.

If I start the app by cklicking on the tile the following error occurs:

Sorry, a technical error occurred! Please try again later. \

{ "requestUri": "../NWABAP752_Docker_PrincipalPropagation/sap/opu/odata/iwbep/GWSAMPLE_BASIC/$metadata?sap-language=DE",

"statusCode": 404,

"statusText": "",

"headers": [],

"body": "HTTP Status 404 - Not Found"

}

Does anyone have any idea how to fix this issue? My "google research" remained without any result.

Thanks and regards,

Daniel

Accepted Solutions (0)

Answers (3)

Answers (3)

danmllr
Explorer

Solved! 🙂 Short summary because possibly I'm not the only one who struggle with this issue.

The generated manifest.jason includes the destination name within the uri. After deleting the destination from uri it works fine!

Thanks ivan.mirisola for support!

Regards,

Daniel

Ivan-Mirisola
Product and Topic Expert
Product and Topic Expert

The manifest file is just part of the solution.

Your neo-app.json file should also contain the routes in which you map the destination name in your application to a read destination.

So, the following should work. In your neo-app.json you should have the following mapping.

"routes": [

....
{
		"path": "/nw_docker",
		"target": {
			"type": "destination",
			"name": "NWABAP752_Docker_PrincipalPropagation"
		},
		"description": "NW 7.52 System"
},

....
{
}
]

And under your manifest.json you could have something like:

		"dataSources": {
			"mainService": {
				"uri": "/nw_docker//sap/opu/odata/iwbep/GWSAMPLE_BASIC/",
				"type": "OData",
				"settings": {
					"odataVersion": "2.0",
					"localUri": "localService/metadata.xml"
				}
			}
		}

NOTE that language and client settings should be maintained on the destination as an attribute property.

Once you have this in place, your OData service should work. I believe you were missing the settings on the neo-app.json.

Best regards,
Ivan

Ivan-Mirisola
Product and Topic Expert
Product and Topic Expert

Hi Daniel,

I believe the error is related to your destination. You should probably get rid of the path suffix and leave the destination with protocol, host and port only. You don't really need to set the path to "/sap/opu/odata" in the destination. This should probably be controlled by the UI5 application. I think your application is requesting the service path while your destination also includes part of the path.

Thus the following URL:
/NWABAP752_Docker_PrincipalPropagation/sap/opu/odata/iwbep/GWSAMPLE_BASIC

Would be translated to:
https://host:port/sap/opu/odata/sap/opu/odata/iwbep/GWSAMPLE_BASIC

This would certainly result in error 404.

Best regards,
Ivan

danmllr
Explorer
0 Kudos

Hi Ivan,

thanks for your reply. I've tested your suggestion but unfortunately it does not work.

Could the error occour due to wrong mapping within the CC? With URL https://nwabap752:44300 I call the Virtual Host entry in my CC access control. And the Virtual Host points to an InternalHost. In my case 10.0.2.15:44300. Several times I've read about Internal Host on Cloud Connector should be the same as the hostname of the on-premise system. In case of my NW ABAP system the hostename is vhcalnplci.

When I try to replace 10.0.2.15:44300 by vhcalnplci:44300, the system isn't reachable anymore. Before I try to deal with the network configuration (docker on ubuntu) do you think that cause the error?

Best regards,

Daniel

Ivan-Mirisola
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Daniel,

On SCC you can use whatever you please as hostname for Virtual-Hostname- including non-existent domain names. Once SCC connects to your account it registers such non-existent domains to your sub-account as being resolved by SCC. Thus, when applications call such address they reach SCC for it instead of trying to resolve its IP address locally (cloud).

Regarding the Internal-Hostname it must be an address reachable/resolvable by the SCC instance. In my opinion it is best if you use a hostname instead of an IP address - just for management simplicity (instead of changing configuration on several places you would change an IP address centrally [/etc/hosts]).

I'd say your SCC configuration is just fine but I would change the IP address to "localhost". To the best of my knowledge, docker will forward the relevant ports from localhost to the vhcalnplci automatically (as long as it is localhost --> docker). However, if your SCC is also running on docker you should use the hostname vhcalnplci on SCC instead of localhost and put the two instances of docker in the same network (so one can 'see' the other). Please read the following blog (step 5):

https://blogs.sap.com/2018/06/19/configure-sapcc-nw-abap-for-principal-propagation-docker-network-co...

Error 404 is an error being sent by an application server - thus your setup is reaching one. Nonetheless, I cannot assure you that this error is being thrown by your NW ABAP instance - probably is.

Neo's destination service updates do not reflect changes immediately. You might need to wait an hour or more to ensure you are avoid old configuration being cached.

If you really want to test things immediately you may need to create a new destination (copying the current one). Once you save the new destination, change the setting in your application. Before testing your changes, open Developer Tools with options "Disable Cache" and "Preserve Log" enabled on the Network tab.

If you still face the same issue, please share the Network tab information instead of the HTML error you are mentioning. The network log should show the error 404 and more details can be retrieved by click on the line with an error.

Best regards,
Ivan

danmllr
Explorer
0 Kudos

Hi Ivan,

thanks a lot for your answer. My NWABAP 7.52 is running on Ubuntu 18.04. On Ubuntu the SAPCC is running in docker. I'm new to docker and linux 🙂 In my opinion the systems know each other. I followed the steps from the blog post. His setting is something different (both applications in docker vs. nwabap on ubuntu and SAPCC in docker). If i try to replace "10.0.2.15" by "localhost" the system is despite from adding this mapping in /etc/hosts not reachable anymore.

This is a completely new topic for me. Unfortunately I don't know what to do next.

Thank you & kind regards,

Daniel

danmllr
Explorer
0 Kudos

My investigation regarding the 404 error shows that the request url contains the "principal propagation destination name" (NWABAP752_Docker_PrincipalPropagation) within the URL:

https://webidetesting2682857-p0123456789trial.dispatcher.hanatrial.ondemand.com/NWABAP752_Docker_Pri...

This is strange because I thought that "NWABAP752_Docker_PrincipalPropagation" will be replaced or correctly mapped. Without the destination name, the URL: https://webidetesting2682857-p0123456789trial.dispatcher.hanatrial.ondemand.com/sap/opu/odata/iwbep/... ask for user name and password. After login, the odata service is responding:

Summary:

1. Destination is correctly maintained and via SAPCP reachable by "Check Connection"

2. Response from backend odata works if the destination name will be deleted from the url.

3. By deleting the destination name, login data is required by the backend (like authentication type on SAPCP is set to BasicAuthentication)

Any ideas how to fix this?

Best regards,

Daniel