Agile Product Lifecycle Management Integration Pack for SAP: Design to Release Implementation Guide Release 3.6 E88840-01 |
|
![]() Previous |
![]() Next |
This chapter provides an overview about new part numbers and describes the new part request process in Agile and SAP, discusses integration solution assumptions, integration sequence of events, Oracle Application Integration Architecture (Oracle AIA) services, and integration customization points.
New part numbers may originate in a system outside of Agile, which is easily understood when looking at the interactions of various roles that can be involved in the process of generating new part numbers.
An engineer designing an electronic assembly, a circuit board for example, may require a part, such as a new resistor, which cannot be found in the system. The engineer raises a new part request (NPR) to document control to route the request to the materials manager for review. A buyer looks into catalogs offered by approved manufacturers and finds a part that meets the criteria. The buyer then contacts the manufacturer, confirms availability, procures specifications, and then approves the NPR with the new manufacturer part number attached to it. Document control compiles all the information and assigns an internal part number corresponding to the manufacturer part and informs the engineer.
The process integration allows you to trigger a NPR process on demand. This is a synchronous process, which reserves and fetches the part number from the SAP system.
A New Part Request process in Agile is executed using an object of the Engineering Change Requests (ECR) class. Since the part number(s) being requested do not exist yet in Agile, there are no affected items on this ECR. A number of variants of this process are possible:
A single item number is reserved in SAP per ECR
Multiple item numbers are reserved in SAP per ECR
The synchronous on-demand NPR process allows you to achieve the following:
A new part number is required, which is to be used on a design. In Agile, the user clicks on the New Object icon to create a new item for a given subclass such as Part or Document. The on-demand NPR process compliments or replaces the new item creation process in Agile by providing the user a Process Extension (PX) that a user can use to trigger the creation of a new item.
The overall process flow is as follows:
User calls a PX from Agile's auto number menu on the Create New Item popup. This option is available whenever the part number generation process is generic (mainly using a sequence).
Since a SAP material type is required to get the next available sequence number from SAP, the item type (subclass) is passed as a parameter as part of this process. In DVM (Domain Value Mapping) the Agile's subclass is mapped to the corresponding SAP material type.
The PX requests a new part number from SAP. This process reserves the next available part number in SAP.
New reserved part number is sent back to Agile.
The new part number is returned to the calling PX and the Agile New Part Creation process is executed as usual from there onwards. If an error is encountered during PX execution, then the error message is displayed as a popup window in Agile.
For detail error information, log on to Business Process Execution Language (BPEL) console.
It is assumed that the internal number range assignments are configured in SAP for those Material types that are mapped to the corresponding Part or Document subclass of Agile, which requires auto number generation.
When the synchronous auto number PX is executed from Agile, it calls a standard SAP application programming language (API) with input as Material type.
SAP checks if there is a valid internal number range defined for the provided Material type. If yes, the program returns the next available number to the calling program. If no valid internal number range is defined, it returns an error to the calling program.
This complete process is synchronous; therefore, the user does not experience the SAP processes at all as they run in the background to return the SAP assigned number. For the user, the process appears similar to the auto number assignment within Agile.
The following are the assumptions for the NPR process:
The Item type or Agile subclass type is mapped to Material type (MARA-MTART) in SAP.
For a given valid Material type, internal number range assignment is already configured in SAP.
This figure shows the process flow from Agile to SAP for the NPR process.
This figure shows the sequence of events that occur when creating a NPR:
The NPR process is triggered from a PX. It is a synchronous process and therefore the process is designed based on the Requestor - Provider pattern as shown in this figure:
The PX creates the Agile request Application Business Message (ABM) (AgileCreateItemABM) for the CreateItemAgileReqABCS and invokes it:
The request AgileCreateItemABM is transformed to the Enterprise Business Message CreateItemEBM for NPR process.
Using the Asynchronous Message Pattern, the NPR process is invoked by the CreateItemAgileReqABCSImpl with the CreateItemEBM as input.
The CreateItemEBM is routed to the ReserveItemSAPProvABCS with the CreateItemEBM as input.
The ReserveItemSAPProvABCS implements the business logic for generating the new part number in SAP.
A response CreateItemResponseEBM with New Part Number is returned and routed back to the CreateItemAgileReqABCSImpl.
The CreateItemAgileReqABCSImpl transforms the response CreateItemResponseEBM to Agile response AgileCreateItemResponseABM.
CreateItemAgileReqABCS receives AgileCreateItemResponseABM and returns back to the PX.
The Part Number from the AgileCreateItemResponseABM is returned to the web client and displayed in the Number field in the Create Item screen.
The NPR Process itself is an asynchronous process, whereas PX expects the response synchronously. Therefore, there may be a delayed response from the provider as the CreateItemAgileReqABCSImpl is implemented as an asynchronous BPEL Composite. To facilitate this, the synchronous BPEL Composite CreateItemAgileReqABCS is used to invoke the CreateItemAgileReqABCSImpl and receive the response back. CreateItemAgileReqABCS is invoked by the PX synchronously.
Between the CreateItemAgileReqABCS and CreateItemAgileReqABCSImpl ABMHeader Id is used as the correlation ID.
This figure shows the sequence of events during NPR services orchestration:
AutoNumber PX
This table describes the activities involved when creating a NPR:
# |
Activity | Remarks |
---|---|---|
1 | Agile NPRAutonumberPX is triggered | The Agile NPRAutonumberPX is triggered by an Agile user from the Agile Web client as part of New Part creation in Agile. |
2 | Invoke CreateItemAgileReqABCS with AgileCreateItemABM as input | NPRAutonumberPX process invokes the CreateItemAgileReqABCS with AgileCreateItemABM ABM as input. |
3 | Invoke CreateItemAgileReqABCSImpl with AgileCreateItemABM as input | NPRAutonumberPX process invokes the CreateItemAgileReqABCSImpl with AgileCreateItemABM ABM as input. |
4 | CreateItemAgileReqABCSImpl invokes the ReserveItemSAPProvABCS | An invoke activity in CreateItemAgileReqABCSImpl transforms the AgileCreateItemABM ABM to CreateItemReqMsg EBM and invokes the ReserveItemSAPProvABCS with CreateItemReqMsg as the input.
CreateItemReqMsg will be routed to SAP ReserveItemSAPProvABCS. |
5 | ReserveItemSAPProvABCS on the SAP first transforms & then calls the SAP service | ReserveItemSAPProvABCS will first transform CreateItemReqMsg into the input of SAP Service to reserve the item in SAP and then calls that service. This would create an Item in using a generic part number generation process (mainly using a sequence).
Similirarly CreateItemResponseMsg is an input that is routed back to the CreateItemAgileReqABCSImpl. |
6 | CreateItemAgileReqABCSImpl first transforms & then returns the response to CreateItemAgileReqABCS | CreateItemAgileReqABCSImpl will first transform CreateItemResponseMsg to AgileCreateItemResponseABM and returns the same to CreateItemAgileReqABCS. |
7 | CreateItemAgileReqABCS returns AgileCreateItemResponseABM to NPRAutonumberPX. | |
8 | NPRAutonumberPX returns the partNumber to New Part Creation UI in Agile | NPRAutonumberPX gets the partNumber from the AgileCreateItemResponseABM and returns it to the New Part Creation UI in Agile web client which gets displayed in the Number field. |
The process integration for NPR uses the following industry components:
Core components for NPR
EBOs | ItemEBO |
EBMs | CreateItemEBM
CreateItemResponseEBM |
Core Components Locations
EBO and EBM XSD files | $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Core/EBO/Item |
WSDL files | $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseBusinessServiceLibrary/Core/EBO/Item |
For detailed documentation of individual Enterprise Business Objects (EBOs), click EBO Name link on the Integration Scenario Summary page in the Oracle AIA Console. You can also use the Integration Scenario Summary page to search for and view integration scenarios that utilize a particular EBO or EBS.
EBOs can be extended, for instance, to add new data elements. These extensions are protected, and remain intact after a patch or an upgrade.
For more information, see Oracle Application Integration Architecture - Foundation Pack: Integration Developer's Guide, "Extensibility for AIA Artifacts."
This table contains the Agile and SAP components for NPR:
Services | Agile (Requester) | SAP (Provider) |
---|---|---|
ABMs | AgileCreateItemABM
AgileCreateItemResponseABM |
BAPI_STDMATERIAL_GETINTNUMBER
BAPI_STDMATERIAL_GETINTNUMBERResponse |
ABCS | CreateItemAgileReqABCS
CreateItemAgileReqABCSImpl |
ReserveItemSAPProvABCS |
Component Locations
ABO XSD files | $AIA_HOME/AIAMetaData/AIAComponents/ApplicationObjectLibrary/Agile/V1/schemas |
ABM XSD files | $AIA_HOME/AIAMetaData/AIAComponents/ApplicationObjectLibrary/Agile/V1/schemas
$AIA_HOME/AIAMetaData/AIAComponents/ApplicationObjectLibrary/SAP/Release1/Core/ABM/Ite |
Below are the integration services for NPR:
CreateItemAgileReqABCSImpl
ReserveItemSAPProvABCS
The CreateItemAgileReqABCSImpl transforms the Agile message (AgileCreateItemABM) into CreateItemEBM calls the routing service to Create Item and get the CreateItemResponseEBM response from SAP. It then transforms the CreateItemResponseEBM response from the routing EBS back to an Agile message (AgileCreateItemResponseABM) and sends it to CreateItemAgileReqABCS which returns it to the calling Agile PX.
Flow
Receives AgileCreateItemABM from CreateItemAgileReqABCS, which gets the same from NPRAutonumberPX process extensions.
Transforms this message into the CreateItemEBM -
Populates the EBM header
Determines Target System ID(s) and adds them into the EBM header to control routing
Validates required fields
Maps to EBM
Call Target ReserveItemSAPProvABCS with the operation initiate
Transform CreateItemResMsg Response EBM (CreateItemResponseEBM) to AgileCreateItemResponseABM Agile message.
Send AgileCreateItemResponseABM back to CreateItemAgileReqABCS, which in turn sends it back to the respective PX.
CreateItemAgileReqABCSImpl has the following transformation:
AgileCreateItemABM_to_CreateItemEBM2.
CreateItemResponseEBM_to_AgileCreateItemResponseABM
ReserveItemSAPProvABCS is a single operation service. it accepts a Material type of an Item information message as a request and returns a response.
In the Agile to SAP flow, ReserveItemSAPProvABCS is used for transforming CreateItemEBM into BAPI_STDMATERIAL_GETINTNUMBER ABM, which invokes the Reserve Item operation in SAP.
In the return flow, BAPI_STDMATERIAL_GETINTNUMBER sends BAPI_STDMATERIAL_GETINTNUMBERResponseABM, which is transformed by ReserveItemSAPProvABCS into CreateItemResponseEBM.
This service is implemented as an asynchronous BPEL Composite.
These are the NPR integration customization points:
Agile
Property | Name | Description |
---|---|---|
CreateItemAgileReqABCSImpl(Agile Process Item requestor flow) | AgileCreateItemABM_to_CreateItemEBM_Custom.xsl | Request ABM to Request EBM |
CreateItemEBM_EBMHeader_Custom.xsl | Request EBM to EBM Header |
SAP
Property | Name | Description |
ReserveItemSAPProvABCS | GenerateItemEBMtoABM_Custom.xsl | Request EBM to Request ABM |
GenerateItemABMtoEBM_Custom.xsl | ResponseABM to ResponseEBM |