SAP ABAP Data Element PRX_PACK (Proxy Generation: Package for Proxy Objects to Be Generated)
Hierarchy
SAP_BASIS (Software Component) SAP Basis Component
   BC-DWB-PRX (Application Component) Proxy Generation
     SAI_PROXY_GENTIME (Package) ES Tools: Proxy Generation
Basic Data
Data Element PRX_PACK
Short Description Proxy Generation: Package for Proxy Objects to Be Generated  
Data Type
Category of Dictionary Type D   Domain
Type of Object Referenced     No Information
Domain / Name of Reference Type DEVCLASS    
Data Type CHAR   Character String 
Length 30    
Decimal Places 0    
Output Length 30    
Value Table TDEVC    
Further Characteristics
Search Help: Name    
Search Help: Parameters    
Parameter ID DVC  
Default Component name    
Change document    
No Input History    
Basic direction is set to LTR    
No BIDI Filtering    
Field Label
  Length  Field Label  
Short 10 Package 
Medium 15 Package 
Long 20 Package 
Heading 30 Package 
Documentation

Definition

A large number of objects are created during proxy generation. E.g.:

  • ABAP OO Interfaces (in the case of inbound interfaces)
  • ABAP OO Classes (for outbound interfaces)
  • ABAP OO Exception Classes (for fault messages)
  • Dictionary Data Elements (for scalar data type definitions)
  • Dictionary Structures (for messages and complex data type definitions)
  • Dictionary Table Types (for repeat groups, in other words, maxoccurs > 1).

These objects are generated in the development system and then transported to all subsequent systems. The objects must therefore be assigned a (transportable)package.

Use

Dependencies

Proxy objects using other proxies or proxies used by other proxies all have to belong to the same scope.

Depending on Generating Application we distinguish the following scopes:

Scope I: ESR+BACKENDMDR

  • Generating Application Enterprise Services Repository ESR
  • Generating Application Backend Metadata Repository MDR

Example:
In the Enterprise Services Builder, the interface "Int1" references the message "Msg1", which in turn references the type definition "Type1" (all in namespace N). Proxy generation uses these to generate the ABAP Objects interface "INT1", the dictionary structure "MSG1", and the dictionary structure "TYPE1".
If an interface "Int2" from the same namespace "N" uses the same message "Msg1", proxy generation only generates the ABAP Objects interface "INT2". The proxy types "MSG1" and "TYPE1" already exist for "Msg1" and "Type1", and so are reused.

It is also possible to have a reuse of ESR objects within MDR objects or vice versa.

Note:
For Generating Application ESR Proxy objects may only be referenced if the objects concerned originate from the same component, or if the object used is located in an underlying component.
If the objects are in namespaces from independent components the objects must not reference each other.
ESR Object responsibility often is organised per namespace, hence to prevent overwriting proxies from different responsibilities, proxy generation is restricted for one namespace per generation step. Thus, when having references from one namespace to another, first the proxies of the referred namespace have to be generated.

Scope II: WEBSERVICES

  • Generating Application WebServices

To allow creation of multiple external Consumer/Provider objects for the same portType (name/namespace),
the PACKAGE acts as additional key for Generating Application WEBSERVICES, except for the service providers themselves, see Scope III.
Hence when creating multiple WebService Consumer/Provider objects in the same package, using the same data types or message/fault messages, this will result in reuse of data type and message type proxies whereas creation in different packages will not result in reuse of message type or data type proxies.

Note:
This semantic has to be taken into consideration when package reassignments are planned.
It may result in inconsistencies for the old package if a proxy with all its included proxies is to be moved.

Scope III: External Namespace for Service Provider

All Service Providers, i.e.

  • Service Providers modeled in the ESR/MDR
  • Service Providers based on external WSDLs
  • Service Variants

share the same namespace. This is reached by separating the namespace for Service Variants and Providers based on external WSDLs with a reserved namespace prefix from the namespaces used by ESR/MDR Providers.

Example:
For Service Variants the namespace prefix is: urn:sap-com:sprx:sv:sap:

For Providers based on external WSDLs the namespace prefix is: urn:sap-com:sprx:ep:sap:

These prefixes are not allowed as namespace or namespace part for a MDR or ESR Inbound Interface. Hence name collisions are not possible.

However, it is possible that the interface "INT2" receives a package other than "MSG1" or "TYP1". Therefore, you must ensure that either a unique package is assigned to all the proxies of a namespace, or that at least the packages assigned are compatible (if the package for "INT2" is delivered to a customer, then the packages for "MSG1" and "TYP1" must also be delivered to that customer).

Example

History
Last changed by/on SAP  20130604 
SAP Release Created in 620