SAP Terminology

SAP Custom Namespace: How Z and Y Objects Work

Learn how SAP custom namespaces use Z, Y, and registered namespace prefixes, with practical naming, transport, governance, and troubleshooting guidance for ABAP development.

Choosing an SAP Custom NamespaceShow how teams select a customer prefix or registered namespace before creating an object.Choosing an SAP Custom NamespaceShow how teams select a customer prefix or registered namespace before creating an object.Check policyIf a registered namespace is requiredIf the prefix is approvedAfter namespace approvalNew customobjectIdentify theapplication,…Existingteam…Use theapproved Z,…Largeproduct or…Consider theorganization…Reviewpackage an…Confirmpackage…CertPas original visual explanation
Decision tree for selecting an SAP custom namespace and confirming package and transport ownership.
On this page
  1. What Z and Y mean in SAP
  2. How SAP custom namespaces are structured
  3. Choosing between Z, Y, and a registered namespace
  4. A practical naming convention
  5. Namespaces and transport management
  6. Troubleshooting namespace problems
  7. Governance for custom development
  8. A safe workflow for creating custom objects

What Z and Y mean in SAP

In SAP development, Z and Y identify customer-developed objects and modifications rather than objects delivered in the standard SAP namespace. A custom report, class, function module, table, structure, enhancement implementation, or other repository object commonly begins with Z or Y according to the naming policy used by the system owner.

The prefix helps developers and administrators identify ownership during transport analysis, upgrades, incident investigation, and repository searches. It is a naming convention with operational value, not a substitute for package ownership, software component assignment, or transport control.

For a broader explanation of SAP terminology, see the SAP terminology overview. For ABAP-specific development context, use the SAP ABAP terminology guide.

Custom Object Naming WorkflowSummarize the operational steps from repository search through transport release.Custom Object Naming WorkflowSummarize the operational steps from repository search through transport release.Determine ownershipApply conventionCreate consistentlyBefore releaseSearchexisting…Look forsimilar names…Confirmowner and…Identify theapplication…SelectpackageUse thepackage…Create andassignCreate theobject and…Review anddocumentCheckdependencie…CertPas original visual explanation
Process showing how to name, package, transport, and document a custom SAP repository object.

How SAP custom namespaces are structured

A basic customer object name can use a leading Z or Y, followed by a meaningful application or object identifier. For example, a development team might use names such as ZFI_PAYMENT_CHECK, ZMM_STOCK_REPORT, or YSD_ORDER_TOOL when those names fit the team's approved convention.

Registered namespaces use a slash-delimited prefix, such as /ACME/, followed by the object name. A name such as /ACME/CL_ORDER_VALIDATION makes ownership more explicit and supports a larger naming space than a single leading letter. Namespace registration and object creation must follow the procedures used by the system landscape and the relevant development tools.

A useful convention defines the meaning of each segment before development begins:

  • The first segment identifies the customer, product, or development organization.
  • The next segment identifies the business area or application.
  • The final segment identifies the object purpose or technical type.

Keep names stable once they are used by dependent programs, transports, interfaces, authorizations, or external integrations. A technically valid name can still create long-term maintenance problems when its meaning is unclear or when several teams use the same prefix differently.

SAP Custom Namespace OptionsCompare common customer prefixes with registered namespaces for practical governance decisions.SAP Custom Namespace OptionsCompare common customer prefixes with registered namespaces for practical governance decisions.Follow local policyFollow registration processZ or YprefixSimplecustomer-de…RegisterednamespaceSlash-delimitedownership…SelectioncriterionUse theapproved…CertPas original visual explanation
Comparison of Z or Y customer prefixes and registered SAP namespaces.

Choosing between Z, Y, and a registered namespace

Use the convention already established for the target system and development organization. Many landscapes retain both Z and Y objects because they were created by different teams, acquired systems, or earlier development standards. Consistency within a package or application is usually more valuable than introducing a new prefix for every project.

A registered namespace is useful when an organization maintains a product, add-on, or large application with many repository objects. It creates a recognizable ownership boundary and reduces collisions between teams. Registration also introduces administration and governance responsibilities, so it should be planned before a large development stream begins.

Do not select a prefix solely because it looks short. Check existing repository objects, packages, transport routes, naming standards, and any namespace policy maintained by the system owner. Names should remain understandable to someone troubleshooting the application several years after the original project has ended.

A practical naming convention

Document the convention in the development standard and apply it to every relevant repository object. A practical pattern can include the following elements:

ElementExamplePurpose
Customer prefixZ or /ACME/Identifies customer-owned development
Application areaFI, MM, or ORDERGroups related functionality
Object purposePAYMENT_CHECKDescribes the business or technical role
Optional type cueCL, IF, or TABLEHelps developers recognize the object type

The type cue should support readability without duplicating information that the development environment already displays. For example, a class name can use a project-approved class convention, while a table name can use a separate table convention.

Avoid names based only on an individual developer, temporary project code, or a meeting name. Those references lose meaning when responsibilities change. Also reserve names for planned components when a project has a controlled namespace allocation process.

Namespaces and transport management

A namespace does not replace transport management. Objects still belong to packages, and package assignments determine how changes are recorded and moved through the landscape. Confirm the package, transport layer, target system, and ownership before creating a new object.

Record namespace decisions in the same design or change documentation used for package and transport ownership.

Before releasing a transport, check that:

  1. Every custom object has the intended prefix or registered namespace.
  2. Related objects are assigned to the correct package.
  3. Dependencies are included in the correct transport sequence.
  4. The target system can accept the namespace and object type.
  5. Naming does not conflict with an existing application or integration.

These checks are especially important for shared objects such as data elements, structures, database tables, interfaces, classes, and function modules. A naming conflict can block activation, confuse ownership, or cause a transport to be imported in the wrong order.

Troubleshooting namespace problems

When an object cannot be created or transported, first identify the exact object name, object type, package, and request. Then compare the name with the system's existing namespace policy and the development team's allocation list.

Common operational symptoms include:

  • An object name is rejected because it does not follow the permitted customer or registered namespace.
  • A developer cannot create an object because the selected package or namespace is not available in the current system.
  • A transport contains objects from different ownership boundaries and fails during import or activation.
  • Two teams use similar prefixes and administrators cannot determine which application owns an object.
  • A renamed object leaves dependent references, transports, or interface documentation behind.

Use the development environment's object directory, package assignments, transport records, and activation logs to trace ownership. Do not solve a naming error by changing a prefix informally in only one object; update the affected design, dependencies, package assignment, and transport plan together.

For related operational terminology, the SAP dialog programming guide provides context for applications that use custom screens and repository objects.

Governance for custom development

A reliable namespace policy has an owner, a registration process, and a review point before development starts. The policy should define permitted prefixes, registered namespace usage, application identifiers, object-type conventions, package ownership, and transport responsibilities.

A lightweight review can ask four questions:

  1. Who owns this object after deployment?
  2. Which application or business process does it support?
  3. Could the proposed name be confused with an existing object?
  4. Will another team understand the name during an incident or upgrade?

Apply the policy to reports, classes, interfaces, dictionary objects, enhancement implementations, forms, function modules, and other custom repository content. Consistent names improve search results, impact analysis, technical debt reviews, and handover quality.

A safe workflow for creating custom objects

Use this workflow when a new custom object is requested:

  1. Search the repository for similar names and existing functionality.
  2. Confirm the application owner and the approved prefix.
  3. Select or request the correct package.
  4. Choose a name that identifies the application and purpose.
  5. Check dependencies and related objects before creation.
  6. Assign the object to the correct transport request.
  7. Review the object name and ownership before release.
  8. Record the naming decision in the technical documentation.

This process keeps namespace decisions connected to lifecycle management rather than treating naming as a last-minute field entry. It also gives support teams enough information to identify the responsible application when a custom object fails in production.

Back to all articles