Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
Showing results for 
Search instead for 
Did you mean: 
0 Kudos

I frequently program directly against a NW Gateway when I'm starting or prototyping, then add SMP to the landscape, once the application is fleshed-out, and I want to add offline functionality.  This has tended to be when I add MAF Logon to the app in the past.

With the simple bootstrapping with Cocoapods, and the reusable STSOData framework, I get MAF Logon for free from the start.   Great, I like it, and I especially like using the new Discovery Service on-boarding to auto-import my connection settings from the cloud.  Using the STSOData framework's LogonHandler, I set the application's applicationID from in the AppDelegate -applicationDidBecomeActive: method.

[[LogonHandler shared].logonManager setApplicationId:@"stan.flight.https"];

The applicationID should match the applicationID in the SMP Admin console.

But today, my SMP system is being re-installed by QA, and I can't afford the down-time.  How do I switch back to connecting directly-to-NW Gateway?

I don't want to change anything in the application.  I know that I won't be able to use the offline features without SMP, but I can toggle that off in the STSOData DataController.  What should I do?

The easiest way to switch back to directly-to-NW Gateway, after working with SMP, is by changing the applicationID value set above.

The Solution

MAF Logon constructs the connection URL from the protocol/host/port parameters, then appends the applicationID to the url path.  So, these settings:

MAF Logon settings:


port:                      443

protocol:              https

Programmed in app:

applicationID:      stan.flight.https

are concatenated into this URL:  This is the base URL that the SODataStores use for querying $metadata, Collections, FunctionImports, etc. when connecting via my SMP server.

My NW Gateway system has this URL:  I can use the same inputs between MAF Logon, and the applicationID, by swapping in the OData application path components for the SMP applicationID, to produce the URL:

I accomplish this by changing the value when I set the applicationID on the LogonHandler, as above:

//[[LogonHandler shared].logonManager setApplicationId:@"stan.flight.https"];

[[LogonHandler shared].logonManager setApplicationId:@"sap/opu/odata/IWFND/RMTSAMPLEFLIGHT"];

Do not append a forward-slash "/" to the 'applicationID' value when substituting the OData application path components; the application is already adding the slash for the regular SMP applicationID value.