WordPress.org

Ready to get started?Download WordPress

Forums

Gravity Forms Salesforce Add-on
[resolved] [PATCH] Make sure new error email functionality catches exceptions (2 posts)

  1. gmcinnes
    Member
    Posted 2 years ago #

    As written in 2.1.1 the error email functionality will only catch SalesForce API errors that are returned cleanly via the SF API. Unfortunately, the SOAP API can raise Exceptions such as type errors. I've created a patch to catch those Exceptions and report them using the same Debug and Mail functionality as already implemented.

    Unfortunately this will only apply cleanly after already applying the patch here:

    http://wordpress.org/support/topic/cleaning-utf-8-for-soap-submission?replies=3

    --- salesforce-api.php	2012-11-27 16:41:10.000000000 -0500
    +++ salesforce-api.php.exceptions	2012-11-29 19:55:58.000000000 -0500
    @@ -1431,8 +1431,23 @@
             // Object type
             $account->type = $feed['meta']['contact_object_name'];
    
    +  // Some calls to the SalesForce API can result in exceptions being thrown
    +  // We need to catch them here so that we can report on them as effectively
    +  // As we report on other types of errors
    +	$api_exception = "";
    +	try
    +	{
             $result = $api->create(array($account));
    -
    +	}
    +	catch (Exception $e)
    +	{
    +		$api_exception = "Message: "  . $e->getMessage() .
    +                                 "\nFaultstring: " . $e->faultstring .
    +                                 "\nFile: " . $e->getFile() .
    +                                 "\nLine: " . $e->getLine() .
    +				                         "\nArgs: ". serialize($merge_vars) .
    +                                 "\nTrace: " . serialize($e->getTrace());
    +	}
             $debug = '';
             if(self::is_debug()) {
                 $debug = '<pre>'.print_r(array(
    @@ -1442,7 +1457,8 @@
                         'Salesforce Posted Merge Data' => $merge_vars,
                         'Posted Data ($_POST)' => $_POST,
                         'result' => $result[0],
    -                    '$api' => $api
    +                    '$api' => $api,
    +                    '$api_exception' => $api_exception
                     ), true).'</pre>';
             }
    
    @@ -1465,8 +1481,8 @@
                     $headers = "Content-type: text/html; charset=" . get_option('blog_charset') . "\r\n";
                     wp_mail($email,__('Error adding to Salesforce', 'gravity-forms-salesforce'), $message, $headers);
                 }
    +            self::add_note($entry["id"], sprintf(__('Errors when adding to Salesforce: %s', 'gravity-forms-salesforce'), $errors->message . $api_exception));
    
    -            self::add_note($entry["id"], sprintf(__('Errors when adding to Salesforce: %s', 'gravity-forms-salesforce'), $errors->message));
    
                 return false;
             }

    http://wordpress.org/extend/plugins/gravity-forms-salesforce/

  2. Zack Katz
    Member
    Plugin Author

    Posted 2 years ago #

    Thanks! This will be added to the next version.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic