public class ShowQuote extends Quote implements ITelesalesResponseBuilder
Modifier and Type | Field and Description |
---|---|
static java.lang.String | CLASSNAME
Class name field.
|
static java.lang.String | COPYRIGHT
IBM Copyright notice field.
|
Constructor and Description |
---|
ShowQuote()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void | buildDataArea()
This method builds the Data Area subsection of the response BOD.
|
protected boolean | getQuoteItemsFlag(SearchCriteria aSearchCriteria)
This method returns the GetQuoteItems search parameter.
|
protected boolean | getQuoteLevelDetailsFlag(SearchCriteria aSearchCriteria)
This method returns the GetQuoteLevelDetails search parameter.
|
java.lang.String | getRootElementName()
This method gets the root element name of the response document.
|
protected SearchCriteria | getSearchCriteria(org.w3c.dom.Document aRequestBod)
This method gets the search criteria from the request Business Object Document.
|
protected IShowSalesOrder | getShowSalesOrderBuilder()
This method gets the response builder for the action Get on the noun Quote.
|
public static final java.lang.String CLASSNAME
public static final java.lang.String COPYRIGHT
protected void buildDataArea() throws ECException
This method calls the method getSearchCriteria to get the search criteria from the request BOD.
It will then get the response builder for the action Get and the SalesOrder noun (ShowSalesOrder response builder) from the registry, and cast the object to the IShowSalesOrder interface. The method executeGetSalesOrder of the IShowSalesOrder is called to get the list of search result to be used to construct the data area. For each quote found in the search result, this method will call createQuoteElement method to create the Quote element.
The method behaves differently based on the values of flags being passed to the server as part of search criteria. The flags those are relevant here are getOrderLevelDetails and getOrderItems. The same set of flags that are used for Sales Order are used for Quote also. These flags are introduced to support returning only quote items without quote level details if required. More over the BOD constructed & returned would be different based on these parameter values.
1. Only quote items are requested, that is getQuoteItemsDetails is true. The BOD constructed would look like:
<wc:DataArea> <wc:Show confirm="Always" numSearchResults="4" resultSetSize="4"/> <wc:Quote> <wc:Line> <oa:LineNumber>55001</oa:LineNumber> <!-- Order status information --> <oa:OrderItem> <!-- Order item information --> </oa:OrderItem> <oa:OrderQuantity uom="NMTOKEN">1</oa:OrderQuantity> <oa:UnitPrice> <oa:Amount currency="USD">26.75000</oa:Amount> <oa:PerQuantity uom="each">1</oa:PerQuantity> </oa:UnitPrice> <oa:ExtendedPrice currency="USD">26.75000</oa:ExtendedPrice> <wc:ExpediteOrderItem>N</wc:ExpediteOrderItem> <oa:Parties> <!-- Customer party & ShipToParty Information --> </oa:Parties> <oa:TransportationTerm> <!-- Term code --></oa:TransportationTerm> <oa:Charges> <!-- Miscellaneous Charge information --> </oa:Charges> <wc:PaymentTerms> <!-- Discount amount --> </wc:PaymentTerms> <oa:DocumentReferences> <!-- Contract information --> </oa:DocumentReferences> <wc:AllocatedQuantity uom="NMTOKEN">1</wc:AllocatedQuantity> <wc:TieCode> <!-- Tie code information --> </wc:TieCode> <wc:ItemCreateDate>2007-01-18 15:23:12.656</wc:ItemCreateDate> <wc:AvailShippingModes> <!-- Shipping mode information --></wc:AvailShippingModes> <oa:ElectronicCatalog> <!-- Electronic catalog information --> </oa:ElectronicCatalog> <oa:Shipped> <oa:Code>NO</oa:Code> </oa:Shipped> <wc:SubLine> <!-- Subline information --> </wc:SubLine> </wc:Line> <!-- More line information--> </wc:Quote> </wc:Show> </wc:DataArea>2. Request coming from an old client where feature pack 2 is not applied, that is both the flags are false. In this case both quote level details as well as line details are constructed. The BOD constructed would look like:
<wc:DataArea> <wc:Show confirm="Always" numSearchResults="1" resultSetSize="1"/> <wc:Quote> <wc:Header> <oa:DocumentIds> <!-- Document Id information --> </oa:DocumentIds> <oa:OrderStatus> <!-- Order status information --> </oa:OrderStatus> <wc:IsEmpty>false</wc:IsEmpty> <wc:NextAvailableTieCode>1</wc:NextAvailableTieCode> <oa:ExtendedPrice currency="USD">107.00000</oa:ExtendedPrice> <oa:TotalAmount currency="USD">99.88000</oa:TotalAmount> <wc:PaymentTerms> <!-- Payment terms infomation --></wc:PaymentTerms> <oa:Charges> <oa:TransportationCharge> <oa:Total currency="USD">10.00000</oa:Total> </oa:TransportationCharge> </oa:Charges> <oa:Parties> <!-- Customer party & bill to party information --> </oa:Parties> <oa:Tax> <!-- Tax information --> </oa:Tax> <oa:LastModificationDateTime>2007-01-20 11:25:06.39</oa:LastModificationDateTime> <wc:ShipAsComplete>Y</wc:ShipAsComplete> <wc:OrderPlacedDate>2007-01-18 14:04:42.125</wc:OrderPlacedDate> <wc:PONumberRequired>false</wc:PONumberRequired> <wc:Store> <!-- Store information --> </wc:Store> <wc:IsPreparedInd>true</wc:IsPreparedInd> <wc:CurrentOrderEditorId/> <wc:BusinessChannel> <!-- Bussiness channel information --> </wc:BusinessChannel> <wc:OrderCurrentCharges> <!-- Current order charges --> </wc:OrderCurrentCharges> <wc:OrderUnpaidBalance currency="USD">0.00000</wc:OrderUnpaidBalance> <wc:OrderPromotionCodes/> </wc:Header> <wc:Line> <!-- Line information --> </wc:Line> <!-- More lines --> <wc:OrderShippingInformation> <!-- Order shipping information --> </wc:OrderShippingInformation> <wc:UserData/> </wc:Quote> </wc:DataArea>3. Only order level details is true This case only quote level details are returned. The BOD constructed would be very similar as above but without the line information.
The following outline shows the structure of the DataArea element and its construction:
<DataArea> <oa:Show confirm="Always"/> <Quote> <!-- constructed by createQuoteElement() --> . . </Quote> </DataArea>
protected SearchCriteria getSearchCriteria(org.w3c.dom.Document aRequestBod)
This method will first call the getSearchCriteria of the parent class. It will then add a select expression with fieldName= BodConstants.VAL_ORDER_TYPE, fieldValue= OrderConstants.ORDER_TYPE_QUOTE and searchType= BodConstants.KEY_EXACT_MATCH to the search criteria.
protected IShowSalesOrder getShowSalesOrderBuilder()
If a reference to the builder is saved, then this method will return the reference.
Otherwise, this method will first try to call the TelesalesResponseBuilderFactory to load the proper response builder for action Get on the noun Quote, and cast the object to IShowSalesOrder interface, and save the reference.
public java.lang.String getRootElementName()
protected boolean getQuoteLevelDetailsFlag(SearchCriteria aSearchCriteria)
protected boolean getQuoteItemsFlag(SearchCriteria aSearchCriteria)