We went through a recent migration of SAP CPI from NEO to CloudFoundry. It was very simple and easy, though I had faced many issues, some even silly. I hope this blog gives a structure to ideate and plan bigger migrations. But the Cordell remains the same – the migration scripts and setting up the two environments for migration.
1. Configure OAuth inbound authentication on Neo
- Navigate to the BTP Cockpit, select the Global account, and select the Neo tenant. Next, choose Security -> OAuth -> Clients tab -> Click Register New Client. ￼
- Enter the details for the new token, including a secret key that will be used as a password.
- Using the client ID from the previous step, navigate to Security à Authorizations and assign the user oauth_client_thi5-wi11be-y0ur-au78-clien7 to the AuthGroup.IntegrationDeveloper and AuthGroup.Administrator Roles.
- Test the authentication using Postman. First, launch the Postman application on your local client. You can find the URL to use in Postman on the branding tab in the BTP Cockpit under Security -> OAuth
2. Test in POSTMAN
- In Postman, enter the URL – https://oauthasservices-y0ur7enan7.us4.hana.ondemand.com/oauth2/api/v1/token?grant_type=client_credentials, method POST, and enter the client id and secret password.
- Copy the value for “access_token”. Set the Type back to “No Auth” on the Authorization tab. On the Headers tab, set another header, “Authorization” with the value “Bearer faccodeanalysisanddebug8”. Enter the URL – https://lyourtenant6-tmn.hci.us4.hana.ondemand.com/api/v1/MessageProcessingLogs
3. Configuring Authentication for Cloud Foundry
- Navigate to the Space, Services->Service Marketplace and search for Process Integration. Click Create.
- Create a new instance.
- Set Roles
- Then create a service key (there is no need to assign roles in this step)
- Once the service key is created, click on the Key link to copy down the “clientid”, “clientsecret”, and URLs required later.
4. Performing the Technical Migration
- Ensure that all iFlows in all integration packages are NOT in a draft state and are versioned.
- Download the Migration package from note 2937549
- In the extracted folder, open the CPI MIG Settings postman_environment file and configure the parameters with the hostnames from the previous steps.
- Now launch Postman and Import the folder by choosing File à New à Import Folder and select the unpacked folder
- Import “Environment” from the file edited in step 4.3
5. Start Migration
- Open the first collection runner (double-clicking on the CPI MIG010 Connect to Tenants folder) and choose “Run”,
- Run CPI MIG020 Readiness Checks. All scripts seemed to have passed, yet an error occurred. Looking at the console, it is currently being ignored.
- Run CPI MIG030 Variables
- Run CPI MIG031 Certificates to Service Key. There are no user certificates so the errors can be ignored.
NOTE: THERE WERE ERRORS, AND HENCE THE PROJECTS WERE FAILING. THE CORRECTION WAS TO FIX THE URLs IN THE ENVIRONMENT FILE. TAKE THE URLs FROM THE SERVICE KEYS
- Run CPI MIG040 Data Stores. NO data stores defined. Errors can be ignored .
- Run CPI MIG050 Custom Tags. There are no Custom Tags, so errors can be ignored. ￼
- Run CPI MIG060 Custom Public Certificates
- Run CPI MIG070 User Credentials
- Run CPI MIG080 OAuth2 Client Credentials
- Run CPI MIG090 Number Range Objects
- Run CPI MIG100 Access Policies
- Run CPI MIG110 Pre-Packaged Content
- Run CPI MIG120 Custom Content
- Run CPI MIG130 Value Mapping Values
- Check CloudFoundry
6. Cloud Connector setting
- Log onto CloudFoundry Non-Prod
- Add CloudFoundry Subaccount
- Enter details below. Location ID can be anything desired. Note that this is important as this will be used to connect CPI to CloudFoundry to communicate with S4 SAP.
- Maintain The Cloud-To-On-Premise Mapping
- Add resources.
7. Reenter passwords
8. Import the “known_hosts” file
- Export from Neo
- Import into CloudFoundry CPI
9. Import PGP Keys
- Log on to Neo CPI and Export PGP Keys
- Import into CloudFoundry CPI. Note that the Secret Key will ask for the passphrase.
10. Deploy and configure iFlows in CloudFoundry
- Correct parameters as per CF -> Save -> Deploy. ￼
Ultimately, because this was so small, we didn’t have to worry about transport. But ideally, by best practice, SAP recommends configuring Transport Management through BTP Cloud Transport System. That area still needs to be explored, and I have many questions. Personally, I feel safe with migrating through scripts from Non-Prod to Non-Prod and Prod to Prod