Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Overview

Avicena Technologies is a medical products manufacturer that tracks their Orders in Salesforce.com, using the standard Salesforce Orders and Order Products objects. They have an integration with an external database where the orders originate, that pulls the data into Salesforce. One of the fields on the Order Products is a FedEx Tracking Number, however there is currently no proactive tracking of the package in this process. Users have to go into Salesforce, copy this number, and then go to FedEx's website in order to see what the state is in. Avicena would prefer this process be automated, updating the Order Products directly so that users do not have to dig so deep for this information.

Getting Started

Challenge Submitter will need to create a Salesforce.com Developer Organization by going to developer.salesforce.com.

Challenge Submitter will also need to register for a Developer Key and access to FedEx's Developer Resource Center.

Development Requirements

Customize the Order Products object in Salesforce:

  • Create a Tracking Number field to hold FedEx Tracking Numbers. (Tracking_Number__c)
  • Create a Checkbox field to indicate when an order has been delivered. (Order_Delivered__c)
  • Create a FedEx Status field to hold FedEx Tracking Status information (Tracking_Information__c)

Create an Apex Class with a method that does the following:

  • Queries Salesforce for Order Products objects that have not yet been delivered (Order_Delivered__c = false).
  • Compiles a list of unique Tracking_Number__c values on those Order Products objects.
  • Submits a SOAP Request to FedEx as detailed in their documentation with a tracking information request on all of the unique tracking numbers.
    • This should be batched as necessary dependent upon FedEx or Salesforce limitations.
  • Should receive and process the response from this SOAP Request.
  • For each Tracking Number that had tracking information returned successfully:
    • Set returned Status in the Tracking_Information__c field on all Order Products objects associated with this Tracking Number
    • If status is equal to FedEx's Delivered status, set the "Order_Delivered__c" field to true, so it will be excluded in future calls.
    • Create a Chatter Post indicating the new status on each unique Order object, @Mentioning the owner.

Finally, create a Scheduled Apex job to update these statuses every 15 minutes. Also create a button to initiate this call from an Order.

 



Final Submission Guidelines

Submitter will provide an ANT Package for deployment into other Salesforce Organizations.

Submitter will provide access to Salesforce Developer Organization for testing and verifying solution.

Submitter will provide access with FedEx key for testing and verifying solution.

Submitter will adhere to FedEx Guidelines fo Certification to ensure smooth certification process for a production deployment.

Submitter will provide detailed documentation of their solution.

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30051338