Lesson 1 of 5
Adapt, create or do neither
11 min
The SAP S/4HANA Migration Cockpit ships with a large library of predefined migration objects, and for most projects they cover most of the data. Sooner or later, though, the template is missing something: a custom field the business relies on, a structure the predefined object does not carry, or a whole kind of data SAP does not deliver an object for. The Migration Object Modeler is the tool for those cases. It lets you adjust predefined objects and build your own, and in on-premise and Private Edition systems you open it with transaction LTMOM.
Because the modeler is powerful, the first skill is restraint. Every change you make is code and configuration that must be designed, tested, transported and maintained across mocks. The question is not "can we model this?" but "what is the least custom way to get this data in correctly?"
Three options, in order of preference
Before you model anything
- Check the release. The object list and object documentation differ by release and by edition. An object missing in an older release may exist in SAP S/4HANA 2025.
- Check custom field support. For many objects, custom fields created with the key user Custom Fields app and enabled for the relevant business context appear automatically in the migration template and staging tables. SAP lists which objects support this; if yours does, no modeling is needed.
- Check the volume. Forty records of a rarely used master data type may be cheaper to enter manually under a controlled procedure, with evidence, than to model, test and transport.
- Check the API. If you create an object, you need a function module or BAPI that creates the data with SAP's checks. If none exists, the object is a development project, not a migration task.
- Does a predefined object exist for this data in our release?Yes → next question · No → go to question 4
- Does it carry every field we need, including key user custom fields?Yes → use it as delivered · No → next question
- Can the missing fields be added to its structures and mapped to its target API?Yes → adapt the predefined object · No → consider a custom object
- Is the volume large or the load repeated in several mocks?Yes → create a custom object on a suitable function module · No → consider controlled manual entry with evidence
Contoso's Wave 2 cases
Our example is Contoso's Wave 2. After converting its ECC system to SAP S/4HANA, Contoso acquired Alternadores del Norte S.A. de C.V. in Monterrey, Mexico, and is loading its data from a non-SAP legacy ERP into the converted system as company code 1910 (MXN) with plant 1910 Monterrey. The load hits both situations. First, Contoso's alternator products carry a warranty class that drives fleet warranty handling; it was created as a key user custom field after the conversion, and the product object supports custom fields, so it appears in the template without modeling. Second, Contoso runs a core return program: fleet customers pay a deposit on each alternator and get it back when they return the old unit. Its agreements live in a custom table that came across in the conversion, and Alternadores has a similar program in its legacy ERP. No predefined object can load that custom table, so the migration team plans a user-defined object.
| Need | Option chosen | Why |
|---|---|---|
| Warranty class on Alternadores products | Use as delivered | Key user custom field; the product object supports custom fields |
| Legacy append field "core part flag" on products | Adapt the predefined product object | Field appended to the product tables by a developer; must be added to the source structure and mapped |
| Core return agreements for fleet customers | Create a custom object | Custom table carried over by the conversion; no predefined object; about 2,600 Alternadores agreements loaded in every mock |
| Twelve legacy shipping instruction texts | Manual entry with evidence | Low volume, entered once by the Monterrey sales team in the Wave 2 cutover plan |
Wave 2 migration extension decisions. Each is recorded in the object list with its reason.
Editions
This course is written for on-premise and Private Edition, where LTMOM gives the full modeler. In SAP S/4HANA Cloud Public Edition, SAP provides more restricted modeling apps, available only for a released set of migration objects and run through the system's own apps rather than the on-premise transaction. Public Edition projects should check SAP's current documentation before planning any modeling.
What would you do?
A Wave 2 developer proposes building a custom migration object for business partners "so we have full control", because the predefined object does not carry two legacy fields. What should the migration lead recommend?
- The Migration Object Modeler (LTMOM in on-premise and Private Edition) adapts predefined objects and creates your own.
- Prefer: use as delivered, then adapt, then create; manual entry can suit tiny volumes.
- Check release, custom field support, volume and the availability of a creating API first.
- Public Edition offers more restricted modeling for released objects only.
Check your understanding · not graded
Lesson check
1. Which transaction opens the Migration Object Modeler in on-premise and Private Edition?
2. What should you check first when the template lacks a key user custom field?
3. When does creating a custom object make sense?
4. What is the main cost of each modeler change?