Hierarchy
⤷ BC-DWB-PRX (Application Component) Proxy Generation
⤷ SAI_PROXY_GENTIME (Package) ES Tools: Proxy Generation
Basic Data
Data Element | PRX_PREFIX_DYNP |
Short Description | Proxy Generation: Prefix 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 | PRX_PREFIX_DYNP | |
Data Type | CHAR | Character String |
Length | 20 | |
Decimal Places | 0 | |
Output Length | 20 | |
Value Table |
Further Characteristics
Search Help: Name | ||
Search Help: Parameters | ||
Parameter ID | PRX_PREFIX | |
Default Component name | ||
Change document | ||
No Input History | ||
Basic direction is set to LTR | ||
No BIDI Filtering |
Field Label
Length | Field Label | |
Short | 10 | Prefix |
Medium | 15 | Prefix |
Long | 25 | Prefix |
Heading | 25 | Prefix |
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).
To avoid naming conflicts with classes and DDIC objects that already exist, you must assign a prefix to the objects to be generated. This prefix must not begin with an 'X' and an underscore can only be used after the third character ("ABC_", for example).
You can also assign anR/3 namespace as a prefix (/CRM/, for example). In this case, you must ensure that the assigned development class is compatible with this namespace.
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" is assigned a different prefix (or R/3 namespace) to "MSG1" and "TYP1". Therefore, you must ensure that all the proxies of a namespace have the same unique prefix, if applicable.
History
Last changed by/on | SAP | 20130604 |
SAP Release Created in | 700 |