oracle applications integration architecture agile plm

63
<Insert Picture Here> Oracle Applications Integration Architecture Agile PLM Integration Pack for Oracle E-Business Suite Extensions Training

Upload: others

Post on 08-Nov-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle Applications Integration Architecture Agile PLM

<Insert Picture Here>

Oracle Applications Integration Architecture

Agile PLM Integration Pack for Oracle E-Business Suite

Extensions Training

Page 2: Oracle Applications Integration Architecture Agile PLM

• 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

Page 3: Oracle Applications Integration Architecture Agile PLM

• 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

Page 4: Oracle Applications Integration Architecture Agile PLM

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

Page 5: Oracle Applications Integration Architecture Agile PLM

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

Page 6: Oracle Applications Integration Architecture Agile PLM

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

Page 7: Oracle Applications Integration Architecture Agile PLM

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

Page 8: Oracle Applications Integration Architecture Agile PLM

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

Page 9: Oracle Applications Integration Architecture Agile PLM

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

Page 10: Oracle Applications Integration Architecture Agile PLM

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

Page 11: Oracle Applications Integration Architecture Agile PLM

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

Page 12: Oracle Applications Integration Architecture Agile PLM

Steps to Use ABCSs Extension - Example

Requirement: Implement Item Unit Cost Rounding

3. Develop the Flow

12© 2011 Oracle Corporation – Proprietary and Confidential

Page 13: Oracle Applications Integration Architecture Agile PLM

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

Page 14: Oracle Applications Integration Architecture Agile PLM

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

Page 15: Oracle Applications Integration Architecture Agile PLM

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

Page 16: Oracle Applications Integration Architecture Agile PLM

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

Page 17: Oracle Applications Integration Architecture Agile PLM

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

Page 18: Oracle Applications Integration Architecture Agile PLM

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

Page 19: Oracle Applications Integration Architecture Agile PLM

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

Page 20: Oracle Applications Integration Architecture Agile PLM

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

Page 21: Oracle Applications Integration Architecture Agile PLM

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

Page 22: Oracle Applications Integration Architecture Agile PLM

Out Of The Box XSLT Transformations

• XSLDocGen Report

22© 2011 Oracle Corporation – Proprietary and Confidential

Page 23: Oracle Applications Integration Architecture Agile PLM

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

Page 24: Oracle Applications Integration Architecture Agile PLM

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

Page 25: Oracle Applications Integration Architecture Agile PLM

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

Page 26: Oracle Applications Integration Architecture Agile PLM

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

Page 27: Oracle Applications Integration Architecture Agile PLM

Steps to Add XSLT Transformation Extensions

1. Identify which existing transformation needs to be modified.

27© 2011 Oracle Corporation – Proprietary and Confidential

Page 28: Oracle Applications Integration Architecture Agile PLM

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

Page 29: Oracle Applications Integration Architecture Agile PLM

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

Page 30: Oracle Applications Integration Architecture Agile PLM

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

Page 31: Oracle Applications Integration Architecture Agile PLM

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

Page 32: Oracle Applications Integration Architecture Agile PLM

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

Page 33: Oracle Applications Integration Architecture Agile PLM

Pre-Defined Call-Templates Example

• Add Custom Copy of abm:job to ebm:Suffix

33© 2011 Oracle Corporation – Proprietary and Confidential

Page 34: Oracle Applications Integration Architecture Agile PLM

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

Page 35: Oracle Applications Integration Architecture Agile PLM

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

Page 36: Oracle Applications Integration Architecture Agile PLM

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

Page 37: Oracle Applications Integration Architecture Agile PLM

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

Page 38: Oracle Applications Integration Architecture Agile PLM

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

Page 39: Oracle Applications Integration Architecture Agile PLM

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

Page 40: Oracle Applications Integration Architecture Agile PLM

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

Page 41: Oracle Applications Integration Architecture Agile PLM

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

Page 42: Oracle Applications Integration Architecture Agile PLM

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

Page 43: Oracle Applications Integration Architecture Agile PLM

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

Page 44: Oracle Applications Integration Architecture Agile PLM

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

Page 45: Oracle Applications Integration Architecture Agile PLM

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

Page 46: Oracle Applications Integration Architecture Agile PLM

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

Page 47: Oracle Applications Integration Architecture Agile PLM

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

Page 48: Oracle Applications Integration Architecture Agile PLM

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

Page 49: Oracle Applications Integration Architecture Agile PLM

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

Page 50: Oracle Applications Integration Architecture Agile PLM

Extend the Main Transformation Code Inline

• Add Custom Copy of abm:job to ebm:Title

50© 2011 Oracle Corporation – Proprietary and Confidential

Page 51: Oracle Applications Integration Architecture Agile PLM

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

Page 52: Oracle Applications Integration Architecture Agile PLM

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

Page 53: Oracle Applications Integration Architecture Agile PLM

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

Page 54: Oracle Applications Integration Architecture Agile PLM

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

Page 55: Oracle Applications Integration Architecture Agile PLM

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

Page 56: Oracle Applications Integration Architecture Agile PLM

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

Page 57: Oracle Applications Integration Architecture Agile PLM

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

Page 58: Oracle Applications Integration Architecture Agile PLM

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

Page 59: Oracle Applications Integration Architecture Agile PLM

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

Page 60: Oracle Applications Integration Architecture Agile PLM

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

Page 61: Oracle Applications Integration Architecture Agile PLM

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

Page 62: Oracle Applications Integration Architecture Agile PLM

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

Page 63: Oracle Applications Integration Architecture Agile PLM

Questions

63© 2011 Oracle Corporation – Proprietary and Confidential