oracle applications integration architecture agile plm
Post on 08-Nov-2021
13 Views
Preview:
TRANSCRIPT
<Insert Picture Here>
Oracle Applications Integration Architecture
Agile PLM Integration Pack for Oracle E-Business Suite
Extensions Training
• Extensions vs. Customizations
• Extension Enabling ABCSs
• Out of the Box Transformations
• XSLT Transformation Extensions
• Options for XSLT Transformation Extensions
• Best Practices for Extensions & Patches
Agenda
2© 2011 Oracle Corporation – Proprietary and Confidential
• Extension = Adding custom code to existing objects that were
delivered as part of the PIP.
• The license to extend comes with the PIP. Anyone who purchased the PIP,
can extend it.
• Customization = Adding custom services, flows, or objects that
were not delivered as part of the PIP.
• The license to customize does not come with the PIP. A separate license for
this ability must be purchased.
• This presentation covers extensions. It will not cover how to
customize, but may mention places where you can customize.
Extensions vs. Customizations
3© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
• ABCS Architecture dictates when custom behaviors will be
executed
• Custom behaviors will augment the standard functionality
available in a typical ABCS
• ABCS Architecture allows the customers only to define the
custom behaviors
4© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
Customer Add-ins (Custom Validation, Message Alteration /
Enrichment)
Extensibility Point 1
Validate
ABM
Transform
Invoke
Transform
Reply
ABM
ABM
Extensibility Point 2
Customer Add-ins (Custom Validation, Message Alteration /
Enrichment)
EBM
EBM
Customer Add-ins (Custom Validation, Message Alteration)
EBM
EBM
Extensibility Point 3
Customer Add-ins (Custom Validation, Message Alteration /
Enrichment)
ABM
ABM
Extensibility Point 4ABM
5© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
• User exits are pre-defined extension points provided out-of-the box in
a flow. Customer can plug-in logic at these extension points to
validate, enrich, and transform data.
• Request/Reply Forward Flow - Extensibility Points
• Prior to the transformation of ABM to EBM (PreProcessABM)
• Prior to the invocation of Enterprise Business Service (PreProcessEBM)
• Prior to the transformation of EBM to ABM (PostProcessEBM)
• Prior to the invocation of callback service or response return
(PostProcessABM)
• One-Way Forward Flow – Extensibility Points
• Prior to the transformation of ABM to EBM (PreProcessABM)
• Prior to the invocation of Enterprise Business Service (PreProcessEBM)
6© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
• Request/Reply Reverse Flow - Extensibility Points
• Prior to the transformation of EBM to ABM (PreProcessEBM)
• Prior to the invocation of Application Service (PreProcessABM)
• Prior to the transformation of ABM to EBM (PostProcessABM)
• Prior to the invocation of callback EBS or return of response message (PostProcessEBM)
• One-Way Reverse Flow – Extensibility Points
• Prior to the transformation of EBM to ABM (PreProcessEBM)
• Prior to the invocation of Application Service (PreProcessABM)
7© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension
1. Identify which out-of-the box flow is to be extended.
2. Identify the suitable exit point in the flow.
3. Develop the flow.
4. Configure the out-of-the box flow to include the newly developed flow.
5. Test the developed flow.
8© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
1. Identify which out-of-the box flow is to be extended.• Identify which flow is responsible for changing the Item Unit Cost in Agile –
UpdateItemListAgileProvABCS.
2. Identify the suitable exit point in the flow.• The identified exit point in the example is “just prior to the execution of the
transformation of EBM to ABM”. (PreProcessEBM)
3. Develop the Flow• Create a BPEL Process in Jdeveloper
• The input for the BPEL Process is “UpdateItemListEBM”
• Write logic for Item Cost rounding inside that BPEL.
• Deploy to server.
9© 2011 Oracle Corporation – Proprietary and Confidential
Requirement: Implement Item Unit Cost Rounding
1. Identify which out-of-the box flow is to be extended
2. Identify the suitable exit point in the flow.
Extension Enabling ABCSs
10© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
Requirement: Implement Item Unit Cost Rounding
1. Identify which out-of-the box flow is to be extended
2. Identify the suitable exit point in the flow.
11© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
3. Develop the Flow
12© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
4. Configure the out-of-the box flow to include the newly developed flow.
a. Create a new ESB process using a concrete WSDL file.
• In the case of the ItemCostRounding, the concrete WSDL is “UpdateItemListAgileProvABCSImplExtConcrete.wsdl’
b. Create a routing rule and link the appropriate extension point to the BPEL flow.
• In the case of the ItemCostRounding, use the Pre-Process EBM.
c. Register the ESB.
d. Confirm the Virtual Host and Port of the Service Group for where the new ESB Service is deployed.
e. Identify the SOAP Endpoint URL for the new ESB Service.
f. Change the SOAP Endpoint in the location field of the Extension Concrete WSDL.
g. Modify the AIAConfigurationProperties.xml file to enable the newly added flow.
h. Bounce the server.
13© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
4. Configure the out-of-the box flow to include the newly developed flow. (Steps a - c)
14© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
4. Configure the out-of-the box flow to include the newly developed flow.
d. Confirm the Virtual Host and Port of the Service Group for where the new ESB Service is deployed.
• In the ESB Console, find the new ESB deployed service (e.g. ItemCostRounding_ESB_routingrule) and click on the service group that it was deployed to (e.g. Default System). Make sure the Virtual Host and Port is your <SOA_HOST> and <SOA_PORT>. If not, change it and click apply.
15© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
4. Configure the out-of-the box flow to include the newly developed flow.
e. Identify the SOAP Endpoint URL for the new ESB Service.
• In the ESB Console, find the new ESB deployed service (e.g. ItemCostRounding_ESB_routingrule) .
• Click on the Definition tab and copy the SOAP Endpoint URI
• For example -http://<SOA_HOST>:<SOA_PORT>/event/DefaultSystem/ItemCostRounding_ESB_routingrule)
16© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
4. Configure the out-of-the box flow to include the newly developed flow.
f. Change the SOAP Endpoint in the location field of the Extension Concrete WSDL.
• Go to the Extension Concrete.wsdl -<SOA_HOME>/Apache/Apache/htdocs/AIAComponents/ExtensionServiceLibrary/Agile/UpdateItemListAgileProvABCSImplExtConcrete.wsdl
• Change the soap location to the location of your newly deployed custom ESB service.
• From
<port name="UpdateItemListAgileProvABCSImplExtension_Port" binding="tns:UpdateItemListAgileProvABCSImplExtension_Binding“> <soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://<SOA_HOST>:<SOA_PORT>/MirrorServlet/mirror" />
</port>
• To
<port name="UpdateItemListAgileProvABCSImplExtension_Port" binding="tns:UpdateItemListAgileProvABCSImplExtension_Binding“> <soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://<SOA_HOST>:<SOA_PORT>/event/DefaultSystem/ItemCostRounding_ESB_routingrule" />
</port>
17© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use ABCSs Extension - Example
Requirement: Implement Item Unit Cost Rounding
4. Configure the out-of-the box flow to include the newly developed flow.
g. Modify the <AIA_HOME>/config/AIAConfigurationProperties.xml file to enable the newly added flow.
• Default Value for these properties is set to false, change the desired extension point in the desired flow to true.
<ServiceConfiguration
serviceName="{http://xmlns.oracle.com/ABCSImpl/Agile/Core/UpdateItemList
AgileProvABCSImpl/V1}UpdateItemListAgileProvABCSImpl">
<Property name="ABCSExtension.PreProcessABM">false</Property>
<Property name="ABCSExtension.PreProcessEBM">true</Property>
<Property name="ABCSExtension.PostProcessEBM">false</Property>
<Property name="ABCSExtension.PostProcessABM">false</Property>
…
<ServiceConfiguration>
h. Bounce the server.
18© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
• Pros• Pre-defined points makes it easier for customers to extend and/or customize
• Doesn’t require changes to code that is delivered in patches. This makes taking and applying future patches easier.
• Cons• ABCS Architecture dictates when these behaviors will be executed, which
limits how the customers can customize.
19© 2011 Oracle Corporation – Proprietary and Confidential
Out Of The Box XSLT Transformations
• How to determine what is being mapped out-of-the box
• Use the XSL Mapping Analyzer (XSLDocGen Tool, formerly XMAN)
• In Oracle Support (formerly Metalink), search for note 782351.1
• Select the “Oracle AIA Developer Tools Download”
• Download the InstallGuide.doc and
DeveloperTools.11g.M1_S3.1312_1135AM.zip
• Follow the instructions in the InstallGuide.doc
• Key Points:
• Make sure to either choose whether you are doing a new install of
Developer Tools or if you are doing an upgrade. If you are installing
Developer Tools to your <AIA_HOME> it would just be considering an
upgrade (i.e. recommended approach).
• If you are doing a fresh install of Developer Tools and you need the
xmlunit-1.2.jar, just search the internet for XMLUnit 1.2 and you should
be able to download a zip file and extract the xmlunit-1.2.jar that is
needed.
20© 2011 Oracle Corporation – Proprietary and Confidential
Out Of The Box XSLT Transformations
• Once the latest Developer Tools is Installed, use the
“DeveloperToolsSourceDocument.pdf” directions located in the
<AIA_HOME>OR<Installed Directory>/DeveloperTools/doc
• Note: In the guide it mentions XMAN, however, this tool has been renamed to
XSLDocGen. A documentation bug has already been entered…
• Where it mentions XMAN directory, use XSLDocGen as the directory name instead.
• Go to the $AIA_HOME/DeveloperTools/XSLDocGen/bin
• Run the following command:
• sh xman.sh –inputFile $AIA_HOME/PIPS/Core/Agile/RequestorABCS/
SyncItemListAgileReqABCSImpl/bpel/
AgileSyncItemListABM_to_SyncItemListEBM_Impl.xsl –outputFormat html –
outputDir /output
• Review the AgileSyncItemListABM_to_SyncItemListEBM_Impl_doc.html
• If you don’t review this file from the server itself, make sure you copy the entire
output directory, not just the _doc.html file itself or else it won’t be able to open
correctly.
21© 2011 Oracle Corporation – Proprietary and Confidential
Out Of The Box XSLT Transformations
• XSLDocGen Report
22© 2011 Oracle Corporation – Proprietary and Confidential
Out Of The Box XSLT Transformations
• Due to the complex transformations in the following files, the XSLDocGen
does not recognize the mappings and will not produce a report.• XFormSyncBillOfMaterialsConfigurationListRequestEBM_To_processTerminationMessage.xsl
• AgileCreateEngineeringChangeOrderListABM_to_CreateEngineeringChangeOrderListEBM_Impl.xsl
• Both VM and non-VM files
• Transform_WriteXREFRecords.xsl
• CreateEngineeringChangeOrderListResponseEBM_to_UpdateEngineeringChangeOrderListEBM_Impl.xsl
• AgileValidateEngineeringChangeOrderListABM_to_ValidateEngineeringChangeOrderListEBM_Impl.xsl
• Both VM and non-VM files
• ValidateEngineeringChangeOrderListResponseEBM_to_UpdateEngineeringChangeOrderListEBM_Impl.xsl
• A spreadsheet for the above transformations has been created to show the
existing mappings since XSLDocGen does not work on these files:• In Oracle Support (formerly Metalink):
• Search for a document called “Mappings_AgileToEbizPIP_AgileTransformations_NoXMAN”.
• Open the spreadsheet
Note: This will be available on May 6th
23© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions
• ABCS Architecture allows custom code within transformations to
be executed at pre-defined points in the transformation
• Custom code will augment the standard transformation available
24© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions
<Transformation Name>_Impl.xsl
Copy Fields
Custom Template Call
<Transformation Name>_Custom.xsl
Copy Fields
Custom Template Call
Add New Fields to
Copy
Add New Fields to
Copy
<Transformation Name>.xsl
-- OR --
25© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Add XSLT Transformation Extensions
1. Identify which existing transformation needs to be modified.
2. Get the name of the transformation file corresponding to the identified transformation.
3. Edit the transformation file to include the new transformation logic.
• The schema order of the target transformation must be respected when making changes.
4. Bounce the server.
26© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Add XSLT Transformation Extensions
1. Identify which existing transformation needs to be modified.
27© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Add XSLT Transformation Extensions
2. Get the name of the transformation file corresponding to the identified transformation.
• Next, understand the transformation structure. Are the transformations using only an .xsl and _Custom.xsl file or is it using a .xsl, _Impl.xsl, and _Custom.xsl.
• .xsl file may import _Impl.xsl or _Custom.xsl
• If .xsl file is importing an _Impl.xsl file, then the _Impl.xsl file will import _Cutom.xsl
• If .xsl file is importing a _Custom.xsl file, then there will not be an _Impl.xsl.
28© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Add XSLT Transformation Extensions
• Structure Of Transformation Files• AgileCreateEngineeringChangeOrderListABM_to_CreateEngineeringChangeOrderListEBM.xsl
• AgileCreateEngineeringChangeOrderListABM_to_CreateEngineeringChangeOrderListEBM_Impl.xsl
29© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Add XSLT Transformation Extensions
3. Edit the transformation file to include the new transformation logic.
• Location of Transformation Files:
<SOA_ORACLE_HOME>/Apache/Apache/htdocs/AIAComponents/Transformations/Agile/Release1/
<SOA_ORACLE_HOME>/Apache/Apache/htdocs/AIAComponents/Transformations/Ebiz/Release1/
• For options on how to change the Transformations, see the following slide titled “Options for Adding XSLT Transformation Extensions”
4. Bounce the server.
30© 2011 Oracle Corporation – Proprietary and Confidential
Options for Adding XSLT Transformation
Extensions
1. Pre-Defined Call-Templates• 2.5 AIA Architecture Approved Approach
• Use the pre-defined “call-template” functions in the <Transformation Name>.xsl or <Transformation Name>_Impl.xsl to map additional fields.
2. Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
• 2.5 AIA Architecture Approved Approach
• Extend the EBOs to add additional fields at the end of sections.
• Use the pre-defined “call-template” functions in the <Transformation Name>.xsl or <Transformation Name>_Impl.xsl to map additional fields.
3. Use the ABCS Extension Approach and Create a New Custom Transformation
• 2.5 AIA Architecture Approved Approach
• Extend ABCS and create a new custom transformation to alter the output from the exisitng <Transformation Name>.xsl or <Transformation Name>_Impl.xsl.
31© 2011 Oracle Corporation – Proprietary and Confidential
Options for Adding XSLT Transformation
Extensions
4. Extend the Main Transformation Code Inline• Not an Approved 2.5 AIA Architecture Approach
• Make changes in the main transformation code itself, altering the <Transformation Name>.xsl or <Transformation Name>_Impl.xsl files themselves.
5. Use Only the _Custom.xsl File• This option is only available for the Ebiz Requesters and Providers
• However, it’s not available for the SyncItemListEbizProvABCSImpl.
• Copy the code in the <Transformation_Name>.xsl and paste it into the <Transformation Name>_Custom.xsl file and modify.
• Or create all your own mappings in the <Transformation Name>_Custom.xsl
32© 2011 Oracle Corporation – Proprietary and Confidential
Pre-Defined Call-Templates Example
• Add Custom Copy of abm:job to ebm:Suffix
33© 2011 Oracle Corporation – Proprietary and Confidential
Pre-Defined Call-Templates Example
• Can use the pre-defined call-template mapping because it
maintains the schema order.
• Within the <Transformation Name>_Custom.xsl transformation
file in the additionalExampleNoun_Custom template you would
copy the abm:job field to the ebm:Suffix field.
• Do not have to change the <Transformation Name>.xsl or
<Transformation Name>_Impl.xsl code to make this additional
mapping since the ebm:Suffix field is after the last existing
mappings of ebm:LastName.
34© 2011 Oracle Corporation – Proprietary and Confidential
Pre-Defined Call-Templates Example
• ABM_to_EBM_OOTB.xsl
<xsl:import href="http://<SOA_HOST>:<SOA_PORT>/<Transformation Name>_Custom.xsl" />
<xsl:template match="/">
<ebm:ExampleEBM>
<ebm:DataArea>
<ebm:ExampleNoun>
<ebm:FirstName>
<xsl:value-of select="/abm:ABMroot/abm:f_name"/>
</ebm:FirstName>
<ebm:MiddleName>
<xsl:value-of select="/abm:ABMroot/abm:m_name"/>
</ebm:MiddleName>
<ebm:LastName>
<xsl:value-of select="/abm:ABMroot/abm:l_name"/>
</ebm:LastName>
</ebm:ExampleNoun>
<xsl:call-template name=“additionalFieldsTemplate_Custom">
<xsl:with-param name=“additionalFields" select="." />
</xsl:call-template>
</ebm:DataArea>
</ebm:ExampleEBM>
</xsl:template>
35© 2011 Oracle Corporation – Proprietary and Confidential
Pre-Defined Call-Templates Example
• ABM_to_EBM_OOTB_Custom.xsl
<xsl:stylesheet>
<xsl:template name=“additionalFieldsTemplate_Custom">
<xsl:param name=“additionalFields”/>
<ebm:Suffix>
<xsl:value-of select="$additionalFields/abm:ABMroot/abm:job"/>
</ebm:Suffix>
</xsl:template>
</xsl:stylesheet>
36© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-
Defined Call-Templates
• Add Custom Copy of changeABO:ReasonForChange to New Field in Custom
37© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
• Steps to Extend an EBO
1. Check if Component is Custom Enabled
2. Find the corresponding Custom Type
3. Add new Content in Custom Type
• For more information on how to extend an EBO see the following “AIA EBO
Extensibility Training”:
http://www.oracle.com/partners/secure/education/featured-training/sun-sparc-etprs-
servers-068913.html
38© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
1. Check if Component is Custom Enabled
• EBO can be extended if there is a “Custom” component in the desired section
of the EBO.
39© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
2. Find the corresponding Custom Type in the EBO.xsd
• Custom Type –
coreengineeringchangeordercust:CustomEngineeringChangeOrderLineType
40© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
3. Add new Content in Custom Type• Open the CustomEBO.xsd and add new field to the CustomEngineeringChangeOrderLineType
41© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
• Location of EBOs<SOA_ORACLE_HOME>/Apache/Apache/htdocs/
AIAComponents/EnterpriseObjectLibrary/Cor
e/EBO
• Location of Custom EBOs<SOA_ORACLE_HOME>/Apache/Apache/htdocs/
AIAComponents/EnterpriseObjectLibrary/Cor
e/Custom/EBO
EngineeringChangeOrderEBO.xsd
42© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
• Can use the pre-defined call-template mapping because it
maintains the schema order.
• Within the <Transformation Name>_Custom.xsl transformation
file in the
CreateEngineeringChangeOrderListEBM_DataArea_CreateEngi
neeringChangeOrderList_Custom template you would copy the
abm:job field to the new custom EBM field
• Do not have to change the <Transformation Name>.xsl or
<Transformation Name>_Impl.xsl code to make this additional
mapping since the new custom EBM field is after the last existing
mappings of ebm:LastName.
• Will have to change the Provider side to use the newly added
custom field and use it appropriately.
43© 2011 Oracle Corporation – Proprietary and Confidential
Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
• AgileCreateEngineeringChangeOrderListABM_to_CreateEngineeringChangeO
rderListEBM_Impl.xsl
<xsl:call-template name="CreateEngineeringChangeOrderListEBM_DataArea_CreateEngineeringChangeOrderList_Custom">
<xsl:with-param name="varAgileCreateEngineeringChangeOrderListABM" select="$varAgileCreateEngineeringChangeOrderListABM" />
</xsl:call-template>
• AgileCreateEngineeringChangeOrderListABM_to_CreateEngineeringChangeO
rderListEBM_Custom.xsl
<xsl:template
name="CreateEngineeringChangeOrderListEBM_DataArea_CreateEngineeringChangeOrderList_Custom">
<xsl:param name="varAgileCreateEngineeringChangeOrderListABM" />
<corecom:NewFieldForCustom>
<xsl:value-of
select="$varAgileCreateEngineeringChangeOrderListABM/changeABM:AgileCreateEngineeringChangeOrder/
changeABO:CoverPage/changeABO:ReasonForChange" />
</corecom:NewFieldForCustom>
</xsl:template>
44© 2011 Oracle Corporation – Proprietary and Confidential
Use the ABCS Extension Approach and Create a New Custom Transformation
• Add Custom Copy of data into the ebm:Title
45© 2011 Oracle Corporation – Proprietary and Confidential
Use the ABCS Extension Approach and Create a New
Custom Transformation
• Need a license to customize.
• Can not use the pre-defined call-template mapping because it
would not follow the schema order.
• Do not have to change the <Transformation Name>.xsl,
<Transformation Name>_Impl.xsl, or <Transformation
Name>_Custom.xsl code.
• Create a new <Custom Transformation Name>.xsl
transformation file.
46© 2011 Oracle Corporation – Proprietary and Confidential
Use the ABCS Extension Approach and Create a New
Custom Transformation
1. Extend the ABCS at Extensibility Point 2 following the “Steps
to Use ABCSs Extension” in the “Extension Enabling
ABCSs” slides.
2. Have the Custom BPEL flow call the new <Custom
Transformation Name>.xsl file.
47© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
Extensibility Point 1
Validate
ABM
Transform
Invoke
Transform
Reply
Extensibility Point 2
Customer Add-ins (Custom Validation, Message Alteration /
Enrichment)
EBM
EBM
Extensibility Point 3
Extensibility Point 4ABM
1. Extend the ABCS at Extensibility Point 2 following the
“Extension Enabling ABCSs” slides
48© 2011 Oracle Corporation – Proprietary and Confidential
Extension Enabling ABCSs
2. Have the Custom BPEL flow call the new <Custom
Transformation Name>.xsl file.
Custom.xsl
49© 2011 Oracle Corporation – Proprietary and Confidential
Extend the Main Transformation Code Inline
• Add Custom Copy of abm:job to ebm:Title
50© 2011 Oracle Corporation – Proprietary and Confidential
Extend the Main Transformation Code Inline
• Can not use the pre-defined call-template mapping because it
would not follow the schema order.
• Must change the delivered code to make this additional mapping
since the ebm:Title is before the existing mappings of
ebm:FirstName, ebm:MiddleName, etc…
• Either add a direct mapping of the abm:job to ebm:Title in
the <Transformation Name>.xsl or <Transformation
Name>_Impl.xsl
• Or add a “call-template” to the <Transformation Name>.xsl
or <Transformation Name>_Impl.xsl to do the field mapping
in the _Custom.xsl. (this would be the best option if multiple
fields need customization before the ebm:FirstName,
ebm:MiddleName, etc….
51© 2011 Oracle Corporation – Proprietary and Confidential
Extend the Main Transformation Code Inline
• ABM_to_EBM_OOTB.xsl<xsl:import href="http://<SOA_HOST>:<SOA_PORT>/<Transformation Name>_Custom.xsl" />
<xsl:template match="/">
<ebm:ExampleEBM>
<ebm:DataArea>
<ebm:ExampleNoun>
<ebm:Title>
<xsl:value-of select="/abm:ABMroot/abm:job"/>
</ebm:Title>
<ebm:FirstName>
<xsl:value-of select="/abm:ABMroot/abm:f_name"/>
</ebm:FirstName>
<ebm:MiddleName>
<xsl:value-of select="/abm:ABMroot/abm:m_name"/>
</ebm:MiddleName>
<ebm:LastName>
<xsl:value-of select="/abm:ABMroot/abm:l_name"/>
</ebm:LastName>
</ebm:ExampleNoun>
<xsl:call-template name=“createAdditionalExampleNoun_Custom">
<xsl:with-param name=“ExampleNoun" select="." />
</xsl:call-template>
</ebm:DataArea>
</ebm:ExampleEBM>
</xsl:template>
52© 2011 Oracle Corporation – Proprietary and Confidential
Use Only the _Custom.xsl File
• When turned on, it allows the user to create their own
transformation file.
• When turned off, it continues to follow the other transformation
standards.
• It will use the pre-defined call-template calls in .xsl files that will then call the
_Custom.xsl.
53© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use Only the _Custom.xsl File
1. Identify which existing transformation needs to be modified.
2. Get the name of the transformation file corresponding to the identified transformation.
3. Edit the _Custom.xsl file to include the new transformation logic.
4. Edit the AIAConfigurationProperties.xml to use only use the _Custom.xml
5. Bounce the server.
54© 2011 Oracle Corporation – Proprietary and Confidential
Steps to Use Only the _Custom.xsl File
4. Edit the AIAConfigurationProperties.xml to use only use the _Custom.xml
• Default Value for these properties is set to false, change the desired custom transformation property to true.
<ServiceConfiguration
serviceName="{http://xmlns.oracle.com/ABCSImpl/Ebiz/Core/CreateEngineeringChangeOrderLis
tEbizProvABCSImpl/V1}CreateEngineeringChangeOrderListEbizProvABCSImpl">
…
<Property name="ABCSEXTENSION.PREPROCESSABM">false</Property>
<Property name="ABCSEXTENSION.POSTPROCESSABM">false</Property>
<Property name="ABCSEXTENSION.PREPROCESSEBM">false</Property>
<Property name="ABCSEXTENSION.POSTPROCESSEBM">false</Property>
<Property name="CUSTOM.TRANSFORMATIONS.EBM_TO_ABM">true</Property>
<Property name="CUSTOM.TRANSFORMATIONS.ABM_TO_EBM">false</Property>
…
</ServiceConfiguration>
5. Bounce the server.
55© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions – Pros/Cons
• Pre-Defined Call-Templates• Pros
• Pre-defined points makes it easier for customers to uptake latest PIP patches.
• Follows AIA Architecture standards.
• Cons
• ABCS Developers decide where these template call outs are placed, but they may not be where customers need them.
• Need to maintain schema order, but most template call outs are placed at the end of sections. If a field needs to be inserted in-between existing fields, a change to the <Transformation Name>.xsl or <Transformation Name>_Impl.xsl will have to be made.
• Customers cannot delete or change any OOTB mappings.
56© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions – Pros/Cons
• Extend EBOs Used in Conjunction with the Pre-Defined Call-Templates
• Pros
• Pre-defined points makes it easier for customers to uptake latest PIP patches.
• Allows the use of the pre-defined call-templates approach, but adds more flexibility for using additional fields.
• Follows AIA Architecture standards.
• Cons
• Same Cons as the Pre-Defined Call-Templates approach.
• Will require a change on both sides of the integration (i.e. if changing the Requester, you must also change the Provider).
• Cannot use existing EBO fields to map additional functionality.
• Higher complexity for customers, more files to change and maintain.
57© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions – Pros/Cons
• Use the ABCS Extension Approach and Create a New Custom Transformation
• Pros
• Pre-defined points makes it easier for customers to customize.
• Doesn’t require changes to code that is delivered in patches. This makes taking and applying future patches easier.
• Customer can map exactly what they want, where they need too.
• Customers can delete or change OOTB mappings.
• Follows AIA Architecture standards
• Cons
• May need a license to customize.
• This approach has performance concerns. Depending on the size of the message that you altering, it will loop through the data twice. So the larger the data, the greater the performance concern.
• ABCS Architecture dictates when these behaviors will be executed, which limits how the customers can customize.
• Higher complexity for customers, more files to change and maintain.
• The ABCS extension points only have one input.
• For example, if you using Extensibility Point 2, the only input into your transformation is the EBM. You wouldn’t have access to the ABM data, so further customizations in your custom BPEL would be needed.
58© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions – Pros/Cons
• Extend the Main Transformation Code Inline• Pros
• Customer can map exactly what they want, where they need too.
• Customers can delete or change OOTB mappings.
• One of the few reasons for this approach is if you need to map a field to an existing EBO field and that EBO field is already being used in the Provider side (i.e. no changes would be needed in the Provider side).
• Cons
• Does not follow AIA Architecture standards.
• Makes it very difficult for customers to uptake PIP Patches.
• Customers are changing delivered code that is not meant to be customized, which makes it hard for support to determine the validity of BUGs/Issues in customer environments. It’s hard to determine if there is an issue with the delivered code or if it’s an issue with the customization.
59© 2011 Oracle Corporation – Proprietary and Confidential
XSLT Transformation Extensions – Pros/Cons
• Use Only the _Custom.xsl File• Pros
• Customer can map exactly what they want, where they need too.
• Customers can delete or change OOTB mappings.
• Cons
• Not available for all transformations.
• Makes it very difficult for customers to uptake PIP Patches.
• Will have to analyze fixes in the <Transformation Name>.xsl file and determine how to apply it to their _Custom.xsl
• Customers are no longer using the delivered code, which makes it hard for support to determine the validity of BUGs/Issues in customer environments. It’s hard to determine if there is an issue with the delivered code or if it’s an issue with the extension.
60© 2011 Oracle Corporation – Proprietary and Confidential
Best Practices for Extensions & Patches
• Create a process to back up any and all extensions, regardless of the file changed or location of the file. This includes backing up the original file before applying any changes.
• This allows support to revert back to the out-of-the box code so they can determine if the issue is in the original code or the extension.
• Keep the backed up files on a different server than the AIA Home.
• Create a process to keep a list of all file names that have been changed.
• When taking a patch, make sure all the extended code has been backed up.
• <AIAHOME>/PIPS/Core
• <SOAHOME>/Apache/Apache/htdocs/AIAComponents/Transformations
• Apply the patch.
• Compare the extended files with the delivered code and reapply the extensions to the files that had been changed by the patch.
61© 2011 Oracle Corporation – Proprietary and Confidential
Extension Examples
• In Oracle Support (formerly Metalink), • Search for “agile extension”
• Select “Agile Product Lifecycle Management Integration Pack for Oracle E-Business Suite: Design to Release 2.5”
• Open the “Agile_EBS_Integration_Pack_Extension_Recommendations_2_5.doc”
• Note: These are only examples and should not just be copied without doing the appropriate research and testing.
62© 2011 Oracle Corporation – Proprietary and Confidential
Questions
63© 2011 Oracle Corporation – Proprietary and Confidential
top related