I'm new working with OSM and I'm trying to extend the O2A cartridge to associate a new product to a new process flow. I have created a new product class and a new product specification (called MyService). For this productSpec, I'd like to associate a new flow including only a manual task, so I have created a new order component specification (function) with a new associated process and a new manual task to be invoked from this process.
When I submit my test I get the error: Invalid Order Specification Fault Failed to create and start the order due to java.lang.RuntimeException: com.mslv.oms.OMSException: Error amending order  caused by:Cannot find entity in orchestration model:
Any ideas to solve this error?
Hi All I'm also new on OSM and have been assigned with a similar task which is to extend the O2A cartridges. My main question is which is the best approach to extending the O2A cartridges:
1. Creating new cartridges from scratch and basing them on demonstration cartridges like SimpleSalesOrderFulfillment cartridge.
2. Extending the demonstration cartridges by adding my custom product classes, product specs etc.
So far I've created & deployed my own Product map, Product spec as well as a salesorderfulfillment cartridges when i test with our own EBM from CRM i get the following errors;
"oracle.communications.ordermanagement.orchestration.execution.OrchestrationExecutionException: Error creating orchestration plan
at oracle.communications.ordermanagement.orchestration.execution.impl.c.a(Unknown Source)
at com.mslv.oms.handler.completeorder.CompleteOrderHandlerEJB.a(Unknown Source)"
"Caused By: java.lang.IllegalArgumentException: Cannot find entity in orchestration model: oracle.communications.ordermanagement.orchestration.generation.e@46744674[name=Service.Unknown,namespace=CommunicationsSalesOrderFulfillmentPIP,type=T=ProductSpec@http://xmlns.oracle.com/communications/ordermanagement/model]
at oracle.communications.ordermanagement.util.e.a(Unknown Source)"
Should i be changing my approach for the solution.
Your assistance will be highly appreciated.
These are some of the best practices when working with OSM/O2A Solution.
1. Create custom cartridges to define new OSM entities. A lot of OSM entities can extend from exsiting entities.
For example, Product Specification should be extended as least from BaseProductSpec (which includes SyncCustomer and FulfillBilling functions)
Please refer to O2A Cartridges Guide Section "Extending Order-to-Activate Cartridges" for addtional information.
2. Follow the O2A demo cartridges design patterns.
2.1 Decouple commercials offers from Fulfillment flow
- Product Class can be defined in its own cartridge (custome cartridge for new product classes)
- Product Specifications can be defined in its own cartridge (custome cartridges for new product specs)
Use Danube/Nile demo cartridges as an example of how to define your orchestration plans
2.2 Decouple Fulfillment flow from Fulfillment Topology.
- Decomposition Rules can be defined in its own cartridge (custom cartridge for new decomposition rules)
Use Simple/TypicalSalesOrderFulfillment demo cartridges as an example for defining your decomposition rules.
3. Avoid modifying productized cartridge.
However if there is a need to add small changes, please DOCUMENT exactly what was changed in order to simplify future cartridge upgrades (701/702 to 703 for example) or to facilitate Oracle support.
This is just a quick summary of some of the extensibilty procedures described in the O2A guide.
New COM Product Class (exsiting Product Spec)
-Define a new Product Class in new custom cartridge
-Select an existing Product Specification from the list
-Define Attributes (if needed)
-Assign Attributes to the new Product Class
-Update EBM validation xquery
-Modify AIAEBMResponse_ValidationModule.xquery in CommunicationsSalesOrderFulfillmentPIP cartridge
-Re-build and re-deploy cartridges
-CommunicationsSalesOrderFulfillmentPIP (due to EBM validation xquery update)
New COM Product Specification (existing Product Class, existing fulfillment functions)
-Define a new COM Product Specification in a new custom cartridge
-Extends at least from BaseProductSpec (to include SycnCustomer & FulfillBilling functions)
-Define orchestration plans (consider fulfillment modes such as DELIVERY, CANCEL and TSQ)
-Select Applicable Fulfillment Functions
-Define Dependencies between these functions.
-Define Decomposition Rules from Functions to Systems
-Associate the new ProductSpec to existing decomposition rules (if reusing demo cartridges)
-Review Condition xquery expressions for non billing items associated to these new product specs.
New COM Fulfillment Function:
- Determine integration approach (AIA vrs Custom System Integration ) // Assuming AIA based integration
-define/create inbound/outbound queues (local OSM )
-update OSM/AIA integration (bridges/SAF queues -remote AIA)
- Configure new order components specification
-new system(s) components
-new function component
- Define the new process flow
-New tasks, fulfillment roles, query views (update to orderLifeCycle policy will to include new fulfillment role and order/query view)
- Review Orchestration Stages (function, syste, granularity, siginficantupdate)
-Define new decomposition rules ( function to system, function to granularity, function to significantupdate)
-Reuse/follow Typical/Simple fulfillment topologies
- Update ProductSpecifications (to include new fulfillment funtions in orchestration plans)
-Reuse/follow Nile/Danube fulfillment patterns.
- Update Xquery fulfiullment logic
-AIAEBMResponse, AIAEBMResponse_Validation, ExtensionPoinModule
- Add new <FulfillmentFunctoin>InteractionModule (following the design pattern from the existing *InteractionModule.xquery)
I hope this information can get you started.
Note: Consider OSM training or Oracle Support/Consulting to help you speed up OSM/O2A implementation projects.