Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 3 of 5

Selecting data by criteria

10 min

In the staging approach, your extraction decides which records arrive. In direct transfer, the cockpit selects them. Understanding how it selects is the difference between a migration you can explain and one that surprises everyone in reconciliation.

Company codes first

When you create a direct transfer project, you specify the company codes whose data should be selected from the source. SAP Learning describes the cockpit selecting data from the ECC source based on these company codes. From them, the cockpit derives the related organizational units, and then applies the selection criteria defined for each migration object, as described in the object's documentation. In the what-if, the project selects Alternadores' source company code (call it AD01, an illustrative code), and value mapping translates it and its plant to company code 1910 and plant 1910 Monterrey in the target.

  1. Company codesSpecified when creating the project: source company code AD01 (what-if)
  2. Derived organizationRelated plants, purchasing and sales organizations derived from the company code
  3. Object criteriaEach object applies its own rules, for example open items only, or records used by the company code
  4. Selection runRuns as background jobs and records what was selected per object
  5. ReviewCheck counts and samples before simulation and migration
How the cockpit decides which records to select.
The Sign-Off Table · thesignofftable.com/academy/sap-dmg-202

Object criteria matter

Each object's documentation explains what is selected. A supplier object may select suppliers with company code data in the selected company codes; an open purchase order object selects orders that are still open by its definition of "open"; open item objects select items not yet cleared at selection time. Read these definitions with the data owners: if Contoso's definition of an "open PO" (for example, delivered but not fully invoiced) differs from the object's, the difference must be handled deliberately.

Object (example)Selection idea to confirm in the documentationQuestion for the data owner
SupplierSuppliers linked to the selected company codesDo we want blocked or inactive suppliers? If not, clean them in ECC first
ProductProducts relevant for plants of the selected company codesAre obsolete products flagged for deletion so they are not selected?
Purchasing info recordInfo records for selected suppliers, products and purchasing organizationsAre old prices still valid?
Open purchase orderOrders open by the object's definitionDoes our "open" match: partially received, not fully invoiced?
AP open itemsSupplier items not cleared at the selection dateWhat cutoff applies for the final load?

Questions to settle for each object's selection. Exact rules are in each object's documentation.

Controlling what gets selected

  • Clean the source: the most reliable way to exclude obsolete records is to block, flag or archive them in ECC before selection, according to the agreed rules.
  • Extend the selection: SAP describes a BAdI for custom selection logic in direct transfer, available from SAP S/4HANA 2021 FPS0. Use it sparingly, document it, and test it like code.
  • Review the result: SAP describes that selected records can be downloaded from 2021 FPS1 onwards. Use that list as the baseline for reconciliation.
Messy source, rule differsClean in ECC and agree how to handle the rule difference before the first mock
Messy source, rule matchesCleanse in ECC; selection then works as is
Clean source, rule differsExtend selection with care, or handle the difference after load with owner approval
Clean source, rule matchesDirect transfer at its best: select, review counts, load
Where selection effort goes, by source cleanliness and rule fit.
The Sign-Off Table · thesignofftable.com/academy/sap-dmg-202

Mapping still applies

Direct transfer removes extraction work, not decisions. After selection, the cockpit creates mapping tasks just as in the staging approach. In the what-if, the source company code AD01 and its plant are mapped to company code 1910 and plant 1910 Monterrey; Alternadores' payment terms, purchasing groups and material groups are mapped to the values Contoso already uses in its converted system. Amounts stay in MXN. Every mapping still needs the data owner's approval and a line in the mapping specification, and selection plus mapping together decide what arrives.

What would you do?

After selection, the Supplier object shows 1,460 suppliers for source company code AD01; the data owner expected about 1,200 active suppliers. What should the team do?

Key points
  • Direct transfer selects by company codes specified at project creation, then by each object's criteria.
  • Read each object's selection rules with the data owners; align definitions such as "open".
  • Exclude obsolete data by cleaning the source; extend selection with the BAdI only where needed and supported.
  • Review selected records and counts before simulation and migration.

Check your understanding · not graded

Lesson check

  1. 1. How does the cockpit start selecting data in a direct transfer project?

  2. 2. Where is the selection rule for an object described?

  3. 3. What is the most reliable way to keep obsolete suppliers out of a direct transfer?

  4. 4. Why agree expected counts per object before selecting?