Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
MichalKrawczyk
Active Contributor
7,497

Summary


In my previous article "Never again create a mapping manually!" I've tried to show our idea for making sure that you no longer need to create mappings in integration platforms like SAP Integration Suite, SAP Process Orchestration, etc. in a manual way if you use a generative Test Driven Development approach. In this article I'd like to show the next steps with this approach and show how a typical mapping program generation can happen. 

Generative Test Driven Development


If you'd like to find our more what is generative Test Driven Development please have a quick look at this section "What is a generative Test Driven Development (generative TDD) and why is that a breakthrough in SAP integration platform development, delivery and maintenance?" here "Never again create a mapping manually!"

Background


Let's take an example of integration platform migration. You may need to migrate an ABAP mapping from a very old dual stack SAP PI/XI systems into the SAP Integration Suite or maybe you have an SAP PO system and the mapping is done in a message mapping but it contains 20 UDFs working on context and there's no documentation of this mapping (never happens right?) so before you move it to SAP Integration Suite you want to change it so you'd rather create a new mapping. In order to generate a new mapping program we will start with downloading a lot of existing/historical input-output pairs from the productive landscape. On the basis of those input-output pairs only system will query ChatGPT or any other generative AI which can generate XSLT, Groovy mappings. Once the mapping is updated in the integration platform you now need to rerun all of the available historical input-output pairs and make sure all variants are covered.

Governance and validation


Remember that generative AI solutions like ChatGPT are not that smart. They can generate the mapping in any language but you need to validate it. So automated generation of mappings comes at a cost - you need to learn how to validate your new mappings.

Step by Step process of generating a new mapping


Step 1


Download a few hundreds of of historical input-output pairs for the interface you plan to migrate. This is the idea of Test Driven Development - you start with test cases and only on the basis of that you start doing the development (or generation) work.


Figure - using Int4 Robotic Crawler to download 200 historical input-output pairs and create test cases from them in Int4 Shield

Step 2


Now the fun (generation) starts.

Ask the system to prepare a mapping based on the collection in a specific language , for example XSLT.


And the mapping proposal is generated and can be uploaded into the SAP Integration Suite


 

Step 3


Validate the mapping with all test cases (in this case 200) at once.


Figure - Retest all test cases automatically to validate the generated mapping in Int4 Shield

Wait - something is not right - the mapping worked from the structure point of view but it didn't from the value point of view, as all material numbers have unnecessary "_" in the description which was removed in the old mapping.


Figure - result from the message comparison from the new and old mapping in Int4 Shield

Step 4


What to do now? Repeat Steps 2 and 3 until you get the right validation without any errors.



Success, validation does not return any errors!


Figure - result from the message comparison from the new and old mapping in Int4 Shield

Now you can finish the validation and your new mapping program is generated automatically and fully validated - thanks to the power of generative TDD approach.

Next Steps


Automated generation of mapping programs is just a start but what about the performance? If we can generate mappings and validate them in a matter of minutes why not generate them in 2-3 languages (XSLT, Groovy) and compare the execution time?

Summary


The idea of the example here is not to show function of how exactly the generative TDD works but on a high level what are the steps to automatically generate mapping programs from existing historical messages and make sure you can validate them so they work properly. It's an iterative process that still required understanding of what needs to happen, how should it happen and why should it happen.

Further references:


SAP Discovery Center mission – Automate over 65% of your SAP Integration Suite migration with Int4 solutions

SAP PRESS book: Testing SAP APIs: Strategy and Execution

openSAP course (on SAP iPaaS migration testing) – Avoid SAP S/4HANA Project Delays with Third-Party Systems Service Virtualization 

 

 
7 Comments
Labels in this area