Since our release of the Figaf SAP CPI migration tool in August 2021, we have been busy improving the tool together with partners and customers. It is one thing to build a migration tool for a fixed set of scenarios. And another is to build migrations for real-life scenarios where customers have 15-year-old integrations built in different ways. These are some of the cases we are resolving in the beta phase.
We do hope it will shave hours off the time you would be spending on a migration project. The short video below shows what the tool can do with its updates.
Watch on YouTube Figaf SAP PI to CPI migration Tool
Here are the recent updates.
Support of RFC lookup
In many cases, mappings are using RFC lookup. If the mapping contains RFC Lookup then the Figaf Tool will create a mock UDF for the migration. Then you can consider how to replace those lookups or you can even create RFC lookups and embed them into the skeleton. It is quite simple to add if you are on Cloud Foundry.
import com.sap.it.api.mapping.*;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoRepository;
def void RFC_ZIS_EUCOUNTRY(String[] I_COUNTRYCODE, Output output, MappingContext context) {
String RFCOutputFieldName = "O_IS_EU_COUNTRY";
String RFCModuleName = "ZIS_EUCOUNTRY";
//Get RFC destination name from property (Content Modifier)
//Destination name can be found in Cloud Cockpit -> Subaccount -> Destinations
JCoDestination destination = JCoDestinationManager.getDestination(context.getProperty("RFCDestination"));
JCoRepository repo = destination.getRepository();
//Create connection to RFC module in question - in this case 'ZIS_EUCOUNTRY'
JCoFunction RfcConnection = repo.getFunction(RFCModuleName);
//Build RFC Request.
JCoParameterList imports = RfcConnection.getImportParameterList()
//setValue(<RFC Input field name>,<value>)
imports.setValue("I_COUNTRYCODE", I_COUNTRYCODE[0]);
//Call/execute RFC.
RfcConnection.execute(destination);
//Get RFCResponse fields.
JCoParameterList exports = RfcConnection.getExportParameterList();
//Get <RFC output Field> = 'O_IS_EU_COUNTRY'
String retValue = exports.getString(RFCOutputFieldName);
//Add RFC Value to output(mapping) Context
output.addValue(retValue);
//Add lookup value to log - if logProperty is 'yes'
String logMe = context.getProperty("logProperty")
if (logMe.equalsIgnoreCase("yes")) {
context.setProperty("RFC_" + RFCModuleName + ":" + RFCOutputFieldName, retValue);
}
}
Migration of test cases
We have added support of test cases for iflows that have been migrated manually or changed a lot. This will enable you to still test those integrations.
WSDL support for message types
Message Types that use some global data types can refer to a huge number of objects. Earlier they were all included as XSDs. We are now using the WSDL for these objects since it simplifies the creation process.
The other types IDOC, RFC and External Definition are still used.
Improvements
We have made a number of improvements to make it easier to migrate with the tool and support cases that were not supported earlier like Context Objects and Receiver Objects. They will come up with a warning for the user to fill out the details.
License update
We have changed the licensing so you will only request a license once you have checked the preview of the migration.
Migration log
Features of the Figaf Migration Tool
Here is an overview of the features of the Figaf Migration Tool.
Flows
The tool supports the following scenarios:
- Migration of ICO and Classical Receiver Determination. Figaf supports migration from SAP PI 7.11 to 7.5, including dual-stack systems
- Routing conditions are copied if possible from the configuration
- A preview of the generated BPMN diagram is shown after the generation
- A list of warnings is created to simplify the process
Mappings
For mapping, we can migrate all mappings even if they use:
- Function libraries. Here the FL will be replaced with a Groovy script. There may be a little work involved in removing special functions like Container and Dynamic Properties.
- Multi mappings are handled automatically
- Support Message Types, External Definition, IDOC, and RFC mappings
- RFC lookups are migrated and the user can then insert mappings themselves.
Adapter
- To convert between a Communication Channel and an SAP CPI block it is possible to use some of the pre-delivered mappings or create your own mapping. It takes a few minutes to create your own custom mapping that matches your requirements.
- You can find the templates in the git repository.
You can find the tool on the SAP Store or start a free trial.