Running short of Attributes
I came across this issue while implementing Oracle iStore for Aramark Uniform Services, wherein, Order Management implementation had taken away all the attribute columns (15 of them) from the oe_order_headers_all and oe_order_lines_all table, since there was a requirement for those many flexfields. Hence Order Management team had no other choice but to start using the industry_attributes, viz. industry_attribute1, industry_attribute2 etc.
If iStore had to incorporate this change to Order Management and had to populate the Order management industry_attribute columns via the Quoting or Order Capture (ASO) module, it involved some tricky customizations on the iStore end.
Firstly, create a temp table to hold these attribute values, since any attribute columns populated in the ASO tables (aso_quote_headers_all or aso_quote_lines_all) populate the corresponding Order Management attribute columns in oe_order_headers_all and oe_order_lines_all.
Hence, we created a table called xx_quote_lines_all and inserted all the attribute value from the aso_quote_lines_all table to this table, in the ibeCCkpOrdReview.jsp file (or page). Do not forget to set the attribute columns to ‘null’ values in the aso_quote_lines_all, else it will mess up the values in the oe_order_lines_all table, when the Order gets confirmed in iStore.
Why ibeCCkpOrdReview.jsp ? This is the Processing page called by ibeCCkdOrdReview.jsp.
Once the order gets confirmed, its just a matter of updating the industry_attribute columns with the values from the temp table. Ensure that the Order goes in an ‘Entered’ state. Since, the industry_attribute columns (or flexfields) will take affect only when the Order gets booked. So, make sure there is an API that will Book the Order with the values from the temp table.
You may be wondering, we could have done all these without the use of the ASO tables and/or the temp table. Reason, we had to use the ASO tables, the cart had to show the right price or amounts for the purchased items (and quantities) and the attributes in the ASO tables would be used to derive these values. This was accomplised by appropriate setups in the Advanced Pricing Manager module. What setups were involved in Pricing is out-of-scope for this discussion.