First let me say...you can _not_ use cfhttp with UPS.

I have some CF code that uses MSXML to access their XML tracking API.
The freight calculation is similar. You just need to send different
XML, and use a different URL.

I haven't tested this in a little while, but it used to work fine.
If it doesn't...I don't know why anymore either :)


<cfsetting enablecfoutputonly="no">
<cfscript>
request.lookup = structNew();
statusType = structNew();
statusType['I'] = 'In Transit';
statusType['D'] = 'Delivered';
statusType['X'] = 'Exception';
statusType['P'] = 'Pickup';
statusType['M'] = 'Manifest Pickup';
request.lookup['statusType'] = statusType;
</cfscript>
<cfset xmlDoc = '<TrackRequest xml:lang="en-US"> <Request> <TransactionReference> 
<CustomerContext>Jon</CustomerContext> <XpciVersion>1.0001</XpciVersion> 
</TransactionReference> <RequestAction>Track</RequestAction> 
<RequestOption>activity</RequestOption> </Request> 
<TrackingNumber>1Z6119360141730963</TrackingNumber> </TrackRequest>'>
<cfset xslDoc = '<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        <xsl:template match="/">
                <TrackResponse>
                <xsl:for-each select="/TrackResponse/Shipment/Package/Activity">
                        <xsl:sort select="Date" data-type="number" order="ascending"/>
                        <xsl:sort select="Time" data-type="number" order="ascending"/>
                        <xsl:copy-of select="."/>
                </xsl:for-each>
                </TrackResponse>
        </xsl:template>
</xsl:stylesheet>'>
<cfscript>
objXMLHTTP = CreateObject("COM", "MSXML2.ServerXMLHTTP.4.0");
//Send request to UPS
objXMLHTTP.open("POST","https://www.ups.com/ups.app/xml/Track",false);
objXMLHTTP.setRequestHeader("Method", "POST"); 
objXMLHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
objXMLHTTP.send(xmlDoc);
xml = objXMLHTTP.responseXML;

objXMLDOM = CreateObject("COM", "msxml2.DOMDocument.4.0");
objXMLDOM.async = false;
XMLloadSuccess = objXMLDOM.load(xml);

objXSLDOM = CreateObject("COM", "msxml2.DOMDocument.4.0");
objXSLDOM.async = false;
XSLloadSuccess = objXSLDOM.load(xslDoc);
transformedXML = objXMLDOM.transformNode(objXSLDOM);

transDOM = CreateObject("COM", "msxml2.DOMDocument.4.0");
transDOM.async = false;
rs = transDOM.loadXML(transformedXML);
//transDOM.save("c:\websites\ups\track\sorted.xml");

</cfscript>

<table bgcolor="#c0c0c0" cellspacing="1" cellpadding="3">
<cfset trackArr = arrayNew(2)>
<cfset lCount = 0>
<cfloop collection="#transDOM.selectNodes("/TrackResponse/Activity")#" item="i">
        <cfscript>
                lCount = lCount + 1;
                upsActivity = structNew();
                status = i.selectSingleNode('Status/StatusType/Code');
                statusDesc = i.selectSingleNode('Status/StatusType/Description');
                city = i.selectSingleNode('ActivityLocation/Address/City');
                state = 
i.selectSingleNode('ActivityLocation/Address/StateProvinceCode');
                //postalCode = 
i.selectSingleNode('ActivityLocation/Address/PostalCode');
                countryCode = 
i.selectSingleNode('ActivityLocation/Address/CountryCode');
                date = i.selectSingleNode('Date');
                year = left(date.text,4);
                month = mid(date.text,5,2);
                day = mid(date.text,7,2);
                date = createDate(year,month,day);
                time = i.selectSingleNode('Time');
                hour = left(time.text,2);
                minute = mid(time.text,3,2);
                second = mid(time.text,5,2);
                time = createTime(hour,minute,second);
        </cfscript>
<cfoutput>
        <cfif status.text EQ 'M' OR status.text EQ 'P'>
                <cfscript>
                upsActivity.status = status.text;
                upsActivity.statusDesc = statusDesc.text;
                upsActivity.date = date;
                upsActivity.time = time;
                upsActivity.city = '';
                upsActivity.state = '';
                upsActivity.countryCode = '';
                trackArr[lCount][1] = upsActivity;
                </cfscript>
                
                <tr bgcolor="ffffff" style="font-family:Arial; font-size:13px;">
                        <td>#dateFormat(date, 'DDDD MM/DD/YYYY')#</td>
                        <td align="right">#timeFormat(time, 'h:MM TT')#</td>
                        <td>#statusDesc.text#</td>
                        <td>#request.lookup['statusType'][status.text]#</td>
                </tr>
        </cfif>
        <cfif status.text EQ 'I' OR status.text EQ 'D'  OR status.text EQ 'X'>
                <cfscript>
                upsActivity.status = status.text;
                upsActivity.statusDesc = statusDesc.text;
                upsActivity.date = date;
                upsActivity.time = time;
                upsActivity.city = city.text;
                upsActivity.state = state.text;
                upsActivity.countryCode = countryCode.text;
                trackArr[lCount][1] = upsActivity;
                </cfscript>
                <tr bgcolor="ffffff" style="font-family:Arial; font-size:13px;">
                        <td>#dateFormat(date, 'DDDD MM/DD/YYYY')#</td>
                        <td align="right">#timeFormat(time, 'h:MM TT')#</td>
                        <td>#statusDesc.text#</td>
                        <td>#city.text#</td>
                        <td>#state.text#</td>
                        <td>#countryCode.text#</td>
                        <td>#request.lookup['statusType'][status.text]#</td>
                </tr>
        </cfif>
</cfoutput>
</cfloop>
</table>

<cfdump var="#trackArr#">
</body>
</html>

-- 
 jon
 mailto:[EMAIL PROTECTED]

Friday, September 20, 2002, 3:44:41 PM, you wrote:
EA> Anybody have any experience using UPS's freight calculator in versions other
EA> than CFMX? (I know they have a web service, but CFMX is not an option for me
EA> at the moment.)

______________________________________________________________________
Get the mailserver that powers this list at http://www.coolfusion.com
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to