Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- global Class EtoCaseservices implements Messaging.InboundEmailHandler {
- // Instantiate variables that we will need for handling this email
- String location;
- String need;
- String service;
- String phone;
- String warranty;
- String po;
- String description;
- String initiator;
- String order;
- Integer locationIdx;
- Integer needIdx;
- Integer serviceIdx;
- Integer phoneIdx;
- Integer warrantyIdx;
- Integer poIdx;
- Integer descriptionIdx;
- Integer initiatorIdx;
- Integer orderIdx;
- String locationFinal;
- String needFinal;
- String serviceFinal;
- String tradeFinal;
- String InboxFinal;
- String InitiatorFinal;
- String TimeFinal;
- String poFinal;
- String phoneFinal;
- String servicenofinal;
- String warrantyFinal;
- String descriptionFinal;
- String orderFinal;
- global Messaging.InboundEmailResult handleInboundEmail
- (Messaging.InboundEmail email, Messaging.InboundEnvelope envelope){
- Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();
- if (email.fromaddress =='customerone@testl.com')
- {
- location = 'Client: ';
- need = 'Need: ';
- service = 'Service Request #: ';
- phone = 'Client Contact Phone: ';
- locationIdx = email.plainTextBody.indexOf(location);
- needIdx = email.plainTextBody.indexOf(need);
- serviceIdx = email.plainTextBody.indexOf(service);
- phoneIdx = email.plainTextBody.indexOf(phone);
- String[] bodySplitted = email.PlainTextBody.split('n');
- String descriptionFinal = email.plainTextBody.substringBetween('-----------------------------------------------------------------------------------' , '---------------------------------------------------------------------------------------------' ).normalizeSpace();
- locationFinal = email.plainTextBody.substring(
- locationIdx + location.length(), email.plainTextBody.indexOf('n', locationIdx + location.length()));
- String[] locNme = locationFinal.split(' ', 3);
- needFinal = email.plainTextBody.substring(
- needIdx + need.length(), email.plainTextBody.indexOf('n', needIdx + need.length()));
- serviceFinal = email.plainTextBody.substring(
- serviceIdx + service.length(), email.plainTextBody.indexOf('n', serviceIdx + serrvice.length()));
- phoneFinal = email.plainTextBody.substring(
- phoneIdx + phone.length(), email.plainTextBody.indexOf('n',phoneIdx + phone.length()));
- tradeFinal = email.plainTextBody.substringBetween('Not to Exceed: ', 'Service Level: ');
- InboxFinal = email.plainTextBody.substringBetween('Email Delivery Time: ', 'Client: ');
- InitiatorFinal = email.plainTextBody.substringBetween('RFS Initiator Name: ' , 'Client Contact Phone: ');
- TimeFinal = email.plainTextBody.substringBetween('Service Requested: ' , 'Email Delivery Time: ');
- poFinal = email.plainTextBody.substringBetween('Service Request #: ' , 'RFS State: ');
- servicenoFinal = email.plainTextBody.substringBetween('Service Request #: ' , '(Include this # on Invoice)');
- system.debug('locationFinal: ' +locationFinal);
- if (locationFinal != NULL) {
- SVMXC__Site__c [] locArray = [Select Id, Name, SVMXC__Account__r.Id from SVMXC__Site__c where Name = :locationFinal];
- try{
- case c= new case();
- c.subject= 'BUNNSERVE REQUEST';
- c.Case_Type__c= 'Service Request';
- c.Priority='High';
- c.Origin='Email';
- c.Status='new';
- c.AccountId = locArray[0].SVMXC__Account__r.Id;
- c.SVMXC__Site__c = locArray[0].Id;
- c.recordtypeId = '012E0000000oRWX';
- c.Description= descriptionFinal + 'n' + 'Not to Exceed: ' + tradeFinal + 'n' + 'Service Requested: ' + TimeFinal;
- c.KA_PO__c= poFinal;
- c.Location_Contact_Name__c = InitiatorFinal;
- c.BSP_Location_Contact_Phone__c = phoneFinal;
- upsert c;
- }
- catch(System.dmlException e)
- {System.debug('Error: Unable to create new Case: ' + e);
- }
- }
- else if (locationFinal == null){
- System.debug('No Location was found');
- }
- }
- else if (email.fromaddress =='customertwo@sample.com')
- {
- location = 'Site: ';
- Warranty = 'Warranty: ';
- phone = 'Caller Phone: ';
- po = 'The referenced work order number is ';
- description = 'Problem Description: ';
- initiator = 'Caller name: ';
- phone = 'Caller phone: ';
- locationIdx = email.plainTextBody.indexOf(location);
- WarrantyIdx = email.plainTextBody.indexOf(Warranty);
- phoneIdx = email.plainTextBody.indexOf(phone);
- poIdx = email.plainTextBody.indexOf(po);
- descriptionIdx = email.plainTextBody.indexOf(description);
- initiatorIdx = email.plainTextBody.indexOf(initiator);
- phoneIdx = email.plainTextBody.indexOf(phone);
- String[] bodySplitted = email.PlainTextBody.split('n');
- locationFinal = email.plainTextBody.substring(
- locationIdx + location.length(), email.plainTextBody.indexOf('n', locationIdx + location.length()));
- String[] locNme = locationFinal.split(' ', 3);
- WarrantyFinal = email.plainTextBody.substring(
- WarrantyIdx + Warranty.length(), email.plainTextBody.indexOf('n', WarrantyIdx + Warranty.length()));
- poFinal = email.plainTextBody.substring(
- poIdx + po.length(), email.plainTextBody.indexOf('n',poIdx + po.length()));
- descriptionFinal = email.plainTextBody.substring(
- descriptionIdx + description.length(), email.plainTextBody.indexOf('n', descriptionIdx + description.length()));
- initiatorFinal = email.plainTextBody.substring(
- initiatorIdx + initiator.length(), email.plainTextBody.indexOf('n', initiatorIdx + initiator.length()));
- phoneFinal = email.plainTextBody.substring(
- phoneIdx + phone.length(), email.plainTextBody.indexOf('n',phoneIdx + phone.length()));
- orderFinal = email.plainTextBody.substringBetween('Date Entered: ', 'Region: ');
- system.debug('locationFinal: ' +locationFinal);
- if (locationFinal != NULL) {
- SVMXC__Site__c [] locArray = [Select Id, Name, SVMXC__Account__r.Id from SVMXC__Site__c where Name = :locationFinal];
- try{
- case c= new case();
- c.subject= 'BUNNSERVE REQUEST';
- c.Case_Type__c= 'Service Request';
- c.Priority='High';
- c.Origin='Email';
- c.Status='new';
- c.AccountId = locArray[0].SVMXC__Account__r.Id;
- c.SVMXC__Site__c = locArray[0].Id;
- c.recordtypeId = '012E0000000oRWX';
- c.Description= descriptionFinal + 'n' +'n' + 'Warranty: ' + WarrantyFinal + 'n' + 'n' + 'Date Entered: ' + orderFinal;
- c.KA_PO__c= poFinal;
- c.Location_Contact_Name__c = InitiatorFinal;
- c.BSP_Location_Contact_Phone__c = phoneFinal;
- upsert c;
- }
- catch(System.dmlException e)
- {System.debug('Error: Unable to create new Case: ' + e);
- }
- }
- else if (locationFinal == null){
- System.debug('No Location was found');
- }
- }
- return result;
- } // Close handleInboundEmail ()
- }
Add Comment
Please, Sign In to add comment