SAP CPI challenge – results
Int4 Team wants to send a big thank you to everyone who participated in our SAP CPI challenge to celebrate the International Education and Sharing Day, 5th April 2020.
Int4’s SAP Mentor Eng Swee Yeoh evaluated 25 contestants’ submissions based on the details described in the following section.
Testing Criteria and Sample Solution
In order to objectively evaluate the submissions for the challenge, we had to come up with some criteria. This was realized in the form of unit tests in a Spock specification. This enabled us to quickly test the Groovy scripts that were submitted without deploying the scripts onto the CPI tenant. For those that surpassed the “passing mark” (~50%), these were then deployed onto the CPI tenant for subsequent end-to-end testing.
Following are some of the key aspects that were tested:
- String fields
- Numeric fields
- Date/time fields
- Percent-encoded octets in the query string
- Repeated parameters
These tests were realized in the following Spock specification:
Following is our sample solution to the challenge, and a screenshot depicting the results of the Spock specification test run on it:
Finalists
Amongst the submissions, we came across some notable solutions to the challenge. After a few rounds of testing, followed by code review, we present to you the following submissions that were chosen as finalists. All of these used unique and innovative approaches to their solutions.
https://github.com/engswee/int4-cpi-challenge/blob/master/Finalists/Solution_ChrisHyman.groovy
https://github.com/engswee/int4-cpi-challenge/blob/master/Finalists/Solution_RaffaelHerrmann.groovy
https://github.com/engswee/int4-cpi-challenge/blob/master/Finalists/Solution_VadimKlimov.groovy
Final Results
All three finalists came up with very innovative solutions to the challenge, so it was a close call to choose the best from among them. After much deliberation, we are pleased to announce the results of our inaugural CPI challenge as follows:
1st place – Chris Hyman
Joint 2nd place – Raffael Herrmann and Vadim Klimov
The key aspects that made Chris’ solution stand out are:
- Implemented decoding of percent-encoded octets to ensure input query string is handled correctly
- Accessed class resource of iFlow to retrieve the OData metadata (EDMX file)
- Utilized Olingo library to process EDMX file for dynamic determination of field types
Once more, congratulations to Chris Hyman and all the participants! Please join us in congratulating the winners!!!
Thank you!