Need a little bit of help here. I have a scenario where I want to parse an XML and insert data into a postgreSQL table. I need to parse around 100,000 XMLs an example of one of these XML is given below. However, the issue is with the unnest() function of XPATH, the query takes forever to load(20 mins approximately). I have tried XMLTABLE as well however the query requires multiple CTEs or temporary tables build upon XMLTABLE to handle nested nodes which is again slow. Is there a way to optimize? Query used is provided below -
SQL Query
INSERT INTO stateful_cc_ingest.job_details (ronumber, linlinecode, linlinecode_idx, hostitemid, lincause, lincause_idx, linstorytext, linstorytext_idx, linservicerequest, linservicerequest_idx, linaddonflag, linaddonflag_idx, store_id, closeddate) (
SELECT
(xpath('(//dns:RONumber/text())[1]'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))[1]::text::varchar AS ronumber,
unnest(xpath('(//dns:linLineCode/dns:V/text()[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text AS linlinecode,
unnest(xpath('(//dns:linLineCode/dns:V/@Idx[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text::integer AS linlinecode_idx,
(xpath('(//dns:HostItemID/text())[1]'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))[1]::text AS hostitemid,
unnest(xpath('(//dns:linCause/dns:V/text()[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text AS lincause,
unnest(xpath('(//dns:linCause/dns:V/@Idx[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text::integer AS lincause_idx,
unnest(xpath('(//dns:linStoryText/dns:V/text()[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text AS linstorytext,
unnest(xpath('(//dns:linStoryText/dns:V/@Idx[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text::integer AS linstorytext_idx,
unnest(xpath('(//dns:linServiceRequest/dns:V/text()[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text AS linservicerequest,
unnest(xpath('(//dns:linServiceRequest/dns:V/@Idx[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text::integer AS linservicerequest_idx,
unnest(xpath('(//dns:linAddOnFlag/dns:V/text()[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text AS linaddonflag,
unnest(xpath('(//dns:linAddOnFlag/dns:V/@Idx[1])'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))::text::integer AS linaddonflag_idx,
data_detail.store_id,
(xpath('(//dns:ClosedDate/text())[1]'::text, data_detail.ro_data_xml, ARRAY[ARRAY['dns'::text, 'http://www.dmotorworks.com/service-repair-order-history'::text]]))[1]::text::date AS closeddate
FROM
stateful_cdk_source_raw.cdk_data_detail data_detail
CROSS JOIN fdw_stateful_service_configuration.configuration_value conf
WHERE
data_detail.store_id = in_store_id
AND closed_date IS NOT NULL
AND closed_date > conf.value::date
AND conf.short_key = 'CLD'
AND conf.party_id = in_store_id
AND data_detail.statuscode IS NOT NULL
AND data_detail.statusdesc IS NOT NULL)
ON CONFLICT (store_id,
ronumber,
closeddate,
linlinecode)
DO NOTHING;
END;
$function$
Sample XML
<service-repair-order-history
xmlns="http://www.dmotorworks.com/service-repair-order-history">
<prtQtyBackordered>
<V Idx="1">0</V>
<V Idx="2">0</V>
</prtQtyBackordered>
<prtQtyFilled>
<V Idx="1">1</V>
<V Idx="2">8</V>
</prtQtyFilled>
<prtQtyOnHand>
<V Idx="1">105</V>
<V Idx="2">-818</V>
</prtQtyOnHand>
<punMultivalueCount>1</punMultivalueCount>
<punTechNo>
<V Idx="1">1809</V>
</punTechNo>
<punWorkDate>
<V Idx="1">2021-01-22</V>
</punWorkDate>
<punTimeOn>
<V Idx="1">15:18:00</V>
</punTimeOn>
<punTimeOff>
<V Idx="1">16:06:00</V>
</punTimeOff>
<punDuration>
<V Idx="1">0.80</V>
</punDuration>
<punLineCode>
<V Idx="1">C B A</V>
</punLineCode>
<punWorkType>
<V Idx="1">W</V>
</punWorkType>
<BlockAutoMsg/>
<BookedTime>16:09:14</BookedTime>
<dedActualAmount/>
<dedLaborAmount/>
<dedLaborType/>
<dedLineCodes/>
<dedMaximumAmount/>
<dedMultivalueCount>0</dedMultivalueCount>
<dedPartsAmount/>
<dedSequenceNo/>
<disAppliedBy/>
<disClassOrType/>
<disDesc/>
<disDiscountID/>
<disLaborDiscount/>
<disLevel/>
<disLineCode/>
<disLopSeqNo/>
<disManagerOverride/>
<disMultivalueCount>0</disMultivalueCount>
<disOriginalDiscount/>
<disOverrideAmount/>
<disOverrideGPAmount/>
<disOverrideGPPercent/>
<disOverridePercent/>
<disOverrideTarget/>
<disPartsDiscount/>
<disSequenceNo/>
<disTotalDiscount/>
<EmailAddress>
<V mailto:idx="1">[email protected]</V>
</EmailAddress>
<EmailDesc>
<V Idx="1">HOME</V>
</EmailDesc>
<EmailMultivalueCount>1</EmailMultivalueCount>
<feeLOPorPartFlag/>
<feeLOPorPartSeqNo/>
<feeMcdPercentage/>
<feeMultivalueCount>0</feeMultivalueCount>
<feeSale/>
<feeSequenceNo/>
<feeType/>
<HasCustPayFlag>N</HasCustPayFlag>
<HasIntPayFlag>Y</HasIntPayFlag>
<HasWarrPayFlag>Y</HasWarrPayFlag>
<hrsFlagHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</hrsFlagHours>
<hrsMcdPercentage>
<V Idx="1">100</V>
<V Idx="2">100</V>
<V Idx="3">100</V>
</hrsMcdPercentage>
<hrsMultivalueCount>3</hrsMultivalueCount>
<hrsSequenceNo>
<V Idx="1">1</V>
<V Idx="2">2</V>
<V Idx="3">3</V>
</hrsSequenceNo>
<hrsTimeCardHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</hrsTimeCardHours>
<lbrActualHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.80</V>
</lbrActualHours>
<lbrComebackFlag>
<V Idx="1">N</V>
<V Idx="2">N</V>
<V Idx="3">N</V>
</lbrComebackFlag>
<lbrComebackRO/>
<lbrComebackSA/>
<lbrComebackTech/>
<lbrFlagHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</lbrFlagHours>
<lbrForcedShopCharge/>
<lbrLineCode>
<V Idx="1">A</V>
<V Idx="2">B</V>
<V Idx="3">C</V>
</lbrLineCode>
<lbrMultivalueCount>3</lbrMultivalueCount>
<lbrOperationType/>
<lbrOtherHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</lbrOtherHours>
<lbrSoldHours>
<V Idx="1">0.80</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</lbrSoldHours>
<LicenseNumber>NRP8569</LicenseNumber>
<linActualWork>
<V Idx="1">3</V>
<V Idx="2">3</V>
<V Idx="3">1</V>
</linActualWork>
<linAddOnFlag>
<V Idx="1">N</V>
<V Idx="2">N</V>
<V Idx="3">N</V>
</linAddOnFlag>
<linBookerNo>
<V Idx="1">1492</V>
<V Idx="2">1492</V>
<V Idx="3">1492</V>
</linBookerNo>
<linMultivalueCount>3</linMultivalueCount>
<linStorySequenceNo>
<V Idx="1">1</V>
</linStorySequenceNo>
<linStoryText>
<V Idx="1">8673 LOF AND TIRE ROTATION COMPLETE, LEARNED TIRE POSITIONS AND SET TO 42 PSI</V>
</linStoryText>
<LotLocation/>
<mlsCost/>
<mlsLaborType/>
<mlsLineCode/>
<mlsMcdPercentage/>
<mlsMultivalueCount>0</mlsMultivalueCount>
<mlsOpCode/>
<mlsOpCodeDesc/>
<mlsSale/>
<mlsSequenceNo/>
<ModelDesc>SILVERADO 1500</ModelDesc>
<OpenTime>15:13:51</OpenTime>
<payCPTotal/>
<payMultivalueCount>1</payMultivalueCount>
<payPaymentAmount>
<V Idx="1">0.00</V>
</payPaymentAmount>
<payPaymentCode>
<V Idx="1">CASH</V>
</payPaymentCode>
<payPaymentsMade/>
<PhoneDesc>
<V Idx="1">HomePhone</V>
<V Idx="2">MainPhone</V>
</PhoneDesc>
<PhoneExt/>
<PhoneMultivalueCount>2</PhoneMultivalueCount>
<PhoneNumber>
<V Idx="1">9726394152</V>
<V Idx="2">9726394152</V>
</PhoneNumber>
<prtExtendedCost>
<V Idx="1">3.56</V>
<V Idx="2">26.96</V>
</prtExtendedCost>
<prtExtendedSale>
<V Idx="1">0.04</V>
<V Idx="2">34.96</V>
</prtExtendedSale>
<prtLaborSequenceNo>
<V Idx="1">1</V>
<V Idx="2">1</V>
</prtLaborSequenceNo>
<prtLineCode>
<V Idx="1">A</V>
<V Idx="2">A</V>
</prtLineCode>
<prtMultivalueCount>2</prtMultivalueCount>
<prtSequenceNo>
<V Idx="1">1</V>
<V Idx="2">2</V>
</prtSequenceNo>
<punAlteredFlag>
<V Idx="1">N</V>
</punAlteredFlag>
<rapMultivalueCount>0</rapMultivalueCount>
<StatusCode>C98</StatusCode>
<StatusDesc>CLOSED</StatusDesc>
<totActualHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.80</V>
</totActualHours>
<totCoreCost>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totCoreCost>
<totCoreSale>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totCoreSale>
<totDiscount>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totDiscount>
<totFlagHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totFlagHours>
<totForcedShopCharge>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totForcedShopCharge>
<totLaborCount>
<V Idx="1">0</V>
<V Idx="2">1</V>
<V Idx="3">2</V>
</totLaborCount>
<totLaborDiscount>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totLaborDiscount>
<totLaborSalePostDed>
<V Idx="1">0.00</V>
<V Idx="2">15.00</V>
<V Idx="3">0.00</V>
</totLaborSalePostDed>
<totLubeCost>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totLubeCost>
<totLubeCount>
<V Idx="1">0</V>
<V Idx="2">0</V>
<V Idx="3">0</V>
</totLubeCount>
<totMiscCount>
<V Idx="1">0</V>
<V Idx="2">0</V>
<V Idx="3">0</V>
</totMiscCount>
<totMultivalueCount>3</totMultivalueCount>
<totOtherHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totOtherHours>
<totPartsCount>
<V Idx="1">0</V>
<V Idx="2">9</V>
<V Idx="3">0</V>
</totPartsCount>
<totPartsDiscount>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totPartsDiscount>
<totPartsSalePostDed>
<V Idx="1">0.00</V>
<V Idx="2">35.00</V>
<V Idx="3">0.00</V>
</totPartsSalePostDed>
<totPayType>
<V Idx="1">C</V>
<V Idx="2">W</V>
<V Idx="3">I</V>
</totPayType>
<totRoCost>
<V Idx="1">0.00</V>
<V Idx="2">47.32</V>
<V Idx="3">0.00</V>
</totRoCost>
<totRoSalePostDed>
<V Idx="1">0.00</V>
<V Idx="2">50.00</V>
<V Idx="3">0.00</V>
</totRoSalePostDed>
<totRoTax>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totRoTax>
<totShopChargeCost>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totShopChargeCost>
<totSubletCost>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totSubletCost>
<totSubletCount>
<V Idx="1">0</V>
<V Idx="2">0</V>
<V Idx="3">0</V>
</totSubletCount>
<totTimeCardHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totTimeCardHours>
<warAuthorizationCode/>
<warClaimType/>
<warConditionCode/>
<warFailedPartNo/>
<warFailedPartsCount/>
<warLaborSequenceNo/>
<warLineCode/>
<warMultivalueCount>0</warMultivalueCount>
<Zip>23661-2716</Zip>
<AddOnFlag>N</AddOnFlag>
<Address>107 HOLLYWOOD AVE</Address>
<ApptDate/>
<ApptFlag>N</ApptFlag>
<ApptTime/>
<BookedDate>2021-01-22</BookedDate>
<BookerNo>1492</BookerNo>
<Cashier>phillip</Cashier>
<CityStateZip>HAMPTON, VA 23661</CityStateZip>
<ClosedDate>2021-01-22</ClosedDate>
<ComebackFlag>N</ComebackFlag>
<Comments/>
<ContactEmailAddress/>
<ContactPhoneNumber/>
<CustNo>LG358915</CustNo>
<DeliveryDate>2020-07-08</DeliveryDate>
<ErrorLevel/>
<ErrorMessage/>
<EstComplDate>2021-01-22</EstComplDate>
<EstComplTime>16:24:00</EstComplTime>
<HostItemID>LG358915*851403</HostItemID>
<LastServiceDate/>
<Make>CHEV</Make>
<MakeDesc>CHEVROLET</MakeDesc>
<Mileage>8673</Mileage>
<MileageLastVisit>8673</MileageLastVisit>
<MileageOut>8673</MileageOut>
<Model>SILV15</Model>
<Name1>BECK,MATTHEW</Name1>
<Name2/>
<OpenDate>2021-01-22</OpenDate>
<OrigPromisedDate>2021-01-22</OrigPromisedDate>
<OrigPromisedTime/>
<OrigWaiterFlag>Y</OrigWaiterFlag>
<PostedDate>2021-01-22</PostedDate>
<PriorityValue>5686</PriorityValue>
<PromisedDate>2021-01-22</PromisedDate>
<PromisedTime>17:00:00</PromisedTime>
<PurchaseOrderNo/>
<RONumber>851403</RONumber>
<Remarks/>
<RentalFlag>N</RentalFlag>
<ServiceAdvisor>1492</ServiceAdvisor>
<SoldByDealerFlag>Y</SoldByDealerFlag>
<SpecialCustFlag>N</SpecialCustFlag>
<TagNo>TNPR8569</TagNo>
<VIN>3GCPYFED9LG358915</VIN>
<VehID>LG358915</VehID>
<VehicleColor/>
<VoidedDate/>
<WaiterFlag>Y</WaiterFlag>
<Year>2020</Year>
<disDebitAccountNo/>
<disDebitControlNo/>
<disDebitTargetCo/>
<disUserID/>
<feeCost/>
<feeFeeID/>
<feeLaborType/>
<feeLineCode/>
<feeOpCode/>
<feeOpCodeDesc/>
<hrsActualHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.80</V>
</hrsActualHours>
<hrsCost>
<V Idx="1">16.80</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</hrsCost>
<hrsHourType>
<V Idx="1">ST</V>
<V Idx="2">ST</V>
<V Idx="3">ST</V>
</hrsHourType>
<hrsLaborType>
<V Idx="1">WC06</V>
<V Idx="2">ICPA</V>
<V Idx="3">ICPA</V>
</hrsLaborType>
<hrsLineCode>
<V Idx="1">A</V>
<V Idx="2">B</V>
<V Idx="3">C</V>
</hrsLineCode>
<hrsOtherHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</hrsOtherHours>
<hrsPercentage>
<V Idx="1">100.00</V>
<V Idx="2">100.00</V>
<V Idx="3">100.00</V>
</hrsPercentage>
<hrsSale>
<V Idx="1">15.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</hrsSale>
<hrsSoldHours>
<V Idx="1">0.80</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</hrsSoldHours>
<hrsTechNo>
<V Idx="1">1809</V>
<V Idx="2">1809</V>
<V Idx="3">1809</V>
</hrsTechNo>
<lbrCost>
<V Idx="1">16.80</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</lbrCost>
<lbrLaborType>
<V Idx="1">WC06</V>
<V Idx="2">ICPA</V>
<V Idx="3">ICPA</V>
</lbrLaborType>
<lbrMcdPercentage>
<V Idx="1">100</V>
<V Idx="2">100</V>
<V Idx="3">100</V>
</lbrMcdPercentage>
<lbrOpCode>
<V Idx="1">0600723</V>
<V Idx="2">MPI</V>
<V Idx="3">CSI</V>
</lbrOpCode>
<lbrOpCodeDesc>
<V Idx="1">CHEVROLET 2YEAR SCHEDULED MAINTENANCE</V>
<V Idx="2">Multi Point Vehicle Inspection</V>
<V Idx="3">You may receive a Survey via email from Chevrolet in regard to your visit , we appreciate your feedback and thank you for choosing Hampton Chevrolet Thank you</V>
</lbrOpCodeDesc>
<lbrSale>
<V Idx="1">15.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</lbrSale>
<lbrSequenceNo>
<V Idx="1">1</V>
<V Idx="2">2</V>
<V Idx="3">3</V>
</lbrSequenceNo>
<lbrTechNo>
<V Idx="1">1809</V>
<V Idx="2">1809</V>
<V Idx="3">1809</V>
</lbrTechNo>
<lbrTimeCardHours>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</lbrTimeCardHours>
<linCampaignCode/>
<linCause>
<V Idx="1">FACTORY MAINT</V>
</linCause>
<linComebackFlag>
<V Idx="1">N</V>
<V Idx="2">N</V>
<V Idx="3">N</V>
</linComebackFlag>
<linComplaintCode>
<V Idx="1">0600723</V>
<V Idx="2">MPI</V>
<V Idx="3">CSI</V>
</linComplaintCode>
<linDispatchCode>
<V Idx="1">CS450</V>
<V Idx="2">CS450</V>
<V Idx="3">CS450</V>
</linDispatchCode>
<linEstDuration>
<V Idx="1">0.3</V>
<V Idx="2">0.3</V>
<V Idx="3">2.0</V>
</linEstDuration>
<linLineCode>
<V Idx="1">A</V>
<V Idx="2">B</V>
<V Idx="3">C</V>
</linLineCode>
<linServiceRequest>
<V Idx="1">CHEVROLET 2YEAR SCHEDULED MAINTENANCE</V>
<V Idx="2">Multi Point Vehicle Inspection</V>
<V Idx="3">You may receive a Survey via email from Chevrolet in regard to your visit , we appreciate your feedback and thank you for choosing Hampton Chevrolet Thank you</V>
</linServiceRequest>
<linStatusCode/>
<linStatusDesc/>
<linStoryEmployeeNo>
<V Idx="1">1809</V>
</linStoryEmployeeNo>
<mlsType/>
<payInsuranceFlag>
<V Idx="1">N</V>
</payInsuranceFlag>
<prtBin1>
<V Idx="1">A1</V>
<V Idx="2">TANK</V>
</prtBin1>
<prtClass>
<V Idx="1">1836</V>
<V Idx="2">8800</V>
</prtClass>
<prtComp>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
</prtComp>
<prtCompLineCode/>
<prtCoreCost>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
</prtCoreCost>
<prtCoreSale>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
</prtCoreSale>
<prtCost>
<V Idx="1">3.56</V>
<V Idx="2">3.37</V>
</prtCost>
<prtDesc>
<V Idx="1">(S)FILTER</V>
<V Idx="2">OIL</V>
</prtDesc>
<prtEmployeeNo>
<V Idx="1">170061</V>
<V Idx="2">170061</V>
</prtEmployeeNo>
<prtLaborType>
<V Idx="1">WC06</V>
<V Idx="2">WC06</V>
</prtLaborType>
<prtList>
<V Idx="1">7.12</V>
<V Idx="2">6.84</V>
</prtList>
<prtMcdPercentage>
<V Idx="1">100</V>
<V Idx="2">100</V>
</prtMcdPercentage>
<prtOutsideSalesmanNo/>
<prtPartNo>
<V Idx="1">19419227</V>
<V Idx="2">88865700</V>
</prtPartNo>
<prtQtyOrdered>
<V Idx="1">1</V>
<V Idx="2">8</V>
</prtQtyOrdered>
<prtQtySold>
<V Idx="1">1</V>
<V Idx="2">8</V>
</prtQtySold>
<prtSale>
<V Idx="1">0.04</V>
<V Idx="2">4.37</V>
</prtSale>
<prtSource>
<V Idx="1">191</V>
<V Idx="2">184</V>
</prtSource>
<prtSpecialStatus/>
<prtUnitServiceCharge>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
</prtUnitServiceCharge>
<rapApptID/>
<totLaborCost>
<V Idx="1">0.00</V>
<V Idx="2">16.80</V>
<V Idx="3">0.00</V>
</totLaborCost>
<totLaborSale>
<V Idx="1">0.00</V>
<V Idx="2">15.00</V>
<V Idx="3">0.00</V>
</totLaborSale>
<totLocalTax>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totLocalTax>
<totLubeSale>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totLubeSale>
<totMiscCost>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totMiscCost>
<totMiscSale>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totMiscSale>
<totPartsCost>
<V Idx="1">0.00</V>
<V Idx="2">30.52</V>
<V Idx="3">0.00</V>
</totPartsCost>
<totPartsSale>
<V Idx="1">0.00</V>
<V Idx="2">35.00</V>
<V Idx="3">0.00</V>
</totPartsSale>
<totShopChargeSale>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totShopChargeSale>
<totSoldHours>
<V Idx="1">0.00</V>
<V Idx="2">0.80</V>
<V Idx="3">0.00</V>
</totSoldHours>
<totStateTax>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totStateTax>
<totSubletSale>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totSubletSale>
<totSupp2Tax>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totSupp2Tax>
<totSupp3Tax>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totSupp3Tax>
<totSupp4Tax>
<V Idx="1">0.00</V>
<V Idx="2">0.00</V>
<V Idx="3">0.00</V>
</totSupp4Tax>
<warFailureCode/>
</service-repair-order-history>
