Trusted by SAP teams at leading enterprises
Whether you're modernizing integration or business logic - or both - MiG1 has you covered
Migrate your PI/PO landscape to SAP Integration Suite with automated conversion of all mapping types, adapters, and configurations.
Transform custom ABAP code for S/4HANA with our 4R Framework. Automated RAP generation, simplification item remediation, and Clean Core compliance.
Companies migrating both PI/PO and ABAP custom code save an average of 40% more compared to separate projects
Every scenario covered, every pattern handled
+ 37 more specialized converters
See real-time transformation of legacy code to modern patterns
public class OrderMapping
extends AbstractTransformation {
public void transform(
TransformationInput input,
TransformationOutput output) {
InputStream is = input.getInputStream();
OutputStream os = output.getOutputStream();
// Transform logic...
}
}import com.sap.gateway.ip.core
.customdev.util.Message
def Message processData(
Message message) {
def body = message.getBody(String)
def props = message.getProperties()
// Converted transform logic
message.setBody(result)
return message
}public String formatDate(
String input,
Container container) {
AbstractTrace trace =
container.getTrace();
SimpleDateFormat sdf =
new SimpleDateFormat("yyyyMMdd");
Date d = sdf.parse(input);
trace.addInfo("Parsed: " + d);
return d.toString();
}import org.slf4j.LoggerFactory
def formatDate(String input,
Message message) {
def log = LoggerFactory
.getLogger(this.class)
def sdf = new java.text
.SimpleDateFormat("yyyyMMdd")
def d = sdf.parse(input)
log.info("Parsed: ${d}")
return d.toString()
}METHOD if_mapping~execute.
DATA: lv_xml TYPE string.
lv_xml = source->get_string().
REPLACE ALL OCCURRENCES OF
'OLD' IN lv_xml WITH 'NEW'.
result->set_string( lv_xml ).
ENDMETHOD.def Message processData(
Message message) {
def xml = message
.getBody(String)
xml = xml.replaceAll(
'OLD', 'NEW')
message.setBody(xml)
return message
}FUNCTION z_get_customer.
IMPORTING iv_id TYPE kunnr
EXPORTING es_cust TYPE zcustomer.
SELECT SINGLE *
FROM kna1
INTO CORRESPONDING FIELDS OF
es_cust
WHERE kunnr = iv_id.
IF sy-subrc <> 0.
RAISE customer_not_found.
ENDIF.
ENDFUNCTION.@EndUserText.label: 'Customer'
define root view entity
ZR_Customer
as select from kna1
{
key kunnr as CustomerId,
name1 as Name,
land1 as Country,
ort01 as City
}
// + Behavior Definition
// + Service BindingFunction Module Analysis: βββββββββββββββββββββββ β Read operation detected β Single record fetch β Exception handling β Table: KNA1 Recommended: Managed RAP BO with read-only projection
managed implementation in
class zcl_bp_customer unique;
define behavior for ZR_Customer
alias Customer
{
field ( readonly ) CustomerId;
// Generated operations
create;
update;
delete;
}* SEGW Entity Type TYPES: BEGIN OF ts_customer, customer_id TYPE kunnr, name1 TYPE name1_gp, country TYPE land1, city TYPE ort01, END OF ts_customer. * DPC_EXT GetEntitySet SELECT * FROM kna1 INTO TABLE et_entityset.
@EndUserText.label: 'Customer'
define view entity ZC_Customer
as projection on ZR_Customer
{
key CustomerId,
Name,
Country,
City
}
// Service: OData V4 UI
// Path: /sap/opu/odata4//IWFND/MAINT_SERVICE βββββββββββββββββββββ Service: Z_CUSTOMER_SRV Version: 0001 Status: Active Technical Model: Z_CUSTOMER_SRV_01_SRV /sap/opu/odata/sap/ Z_CUSTOMER_SRV/
@EndUserText.label:
'Customer Service V4'
define service ZSB_Customer {
expose ZC_Customer
as Customer;
}
// Binding Type: OData V4 - UI
// Published: Active
/sap/opu/odata4/sap/
zsb_customer/srvd/Manual migration costs β¬5,000-15,000 per object. MiG1 saves 70%+
Migrate both PI/PO and ABAP custom code together and save 25%
Join enterprises who've saved millions with automated migration. Start your free trial today.