Hierarchy
⤷ 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 |