• phillpafford
  • NEWBIE
  • 0 Points
  • Member since 2009

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 2
    Replies

So when SF sends my server an outbound message with 25 requests in 1 SOAP message everything works fine. But anything higher then that I get a "java.net.SocketTimeoutException: Read timed out" and my queue starts to back up. I understand that SF can sends up to 100 requests per SOAP message at a time but why does this not wotk for me?

 

I read the incoming SOAP request like this and then send back the ACK right away. Here is the code and the function.

 

[CODE]

$data = 'php://input';
$content = file_get_contents($data);

if($content) {
    respond('true');
} else {
    respond('false');
}

[/CODE]

 

The function

[CODE]

function respond($tf) {
    $ACK = <<<ACK
<?xml version = "1.0" encoding = "utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <notifications xmlns="http://soap.sforce.com/2005/09/outbound">
            <Ack>$tf</Ack>
        </notifications>
    </soapenv:Body>
</soapenv:Envelope>
ACK;

    print trim($ACK);
}

[/CODE]

 

No this is in a the main processing file for this workflow and is call by the require_once() as I wanted to keep the recieving and ACK part generic so that I could add it to many projects.

 

I have also logged my response back to SF with this code and I only see the ACK response, so I know I'm sending the ACK back to SF.

 

Here is the code

[CODE]

// Place at the top of the script

ob_start();

 

// Place at end of the script

$get_response_sent = ob_get_contents();
ob_end_clean ();

echo $get_response_sent;

[/CODE]

 

I know my ACK gets to SF on the smaller queues but when the queue is over 100 out bound messages it fails.

 

Any thougts, suggestions?

Hi,

 

New to the SFDC world but have been given the task of generating a Security Audit Report.

 

Looking to get a breakdown of a User Profile will all levels of security reporting.

 

So I need:

User Profile, Standard Object Layouts, Custom Object Layouts, Field-Level security, Custom App Settings, Tab Settings, Record Type Settings, Administrative Permissions, General User Permissions, Standard Object Permissions, Custom Object Permissions, etc...

 

Looking to create an excel (Which I can do that part), but I'm stumbling with how to get this info. I've stated to use the API (Which I think is the only way to do this now) and have a query (Though it's not really working yet). Can anyone offer any guidence on how to go about doing this? 

 

The Query:

[CODE]

 // This will log the SF user in
include_once('../sf/sfLogin.php');

$sfQuery =<<<SFSQL
SELECT
Profile.UserType,
Profile.UserLicenseId,
Profile.SystemModstamp,
Profile.PermissionsViewSetup,
Profile.PermissionsViewAllData,
Profile.PermissionsUseTeamReassignWizards,
Profile.PermissionsTransferAnyLead,
Profile.PermissionsTransferAnyEntity,
Profile.PermissionsSolutionImport,
Profile.PermissionsSendSitRequests,
Profile.PermissionsRunReports,
Profile.PermissionsPublishMultiforce,
Profile.PermissionsPasswordNeverExpires,
Profile.PermissionsOutboundMigrationToolsUser,
Profile.PermissionsModifyAllData,
Profile.PermissionsMassInlineEdit,
Profile.PermissionsManageUsers,
Profile.PermissionsManageSolutions,
Profile.PermissionsManageSelfService,
Profile.PermissionsManageMobile,
Profile.PermissionsManageLeads,
Profile.PermissionsManageDashboards,
Profile.PermissionsManageCustomReportTypes,
Profile.PermissionsManageCssUsers,
Profile.PermissionsManageCategories,
Profile.PermissionsManageCases,
Profile.PermissionsManageCallCenters,  
Profile.PermissionsInstallMultiforce,
Profile.PermissionsInboundMigrationToolsUser,
Profile.PermissionsImportLeads,
Profile.PermissionsEditTask,
Profile.PermissionsEditReports,
Profile.PermissionsEditReadonlyFields,
Profile.PermissionsEditPublicDocuments,
Profile.PermissionsEditOppLineItemUnitPrice,
Profile.PermissionsEditEvent,
Profile.PermissionsDisableNotifications,
Profile.PermissionsCustomizeApplication,
Profile.PermissionsCreateMultiforce,
Profile.PermissionsConvertLeads,
Profile.PermissionsAuthorApex,
Profile.PermissionsApiUserOnly,
Profile.PermissionsApiEnabled,
Profile.Name,
Profile.LastModifiedDate,
Profile.LastModifiedById,
Profile.Id,
Profile.Description,
Profile.CreatedDate,
Profile.CreatedById,
(
    SELECT
        Id, Username, LastName, FirstName, department, isActive
    FROM
        Users
)  
FROM
Profile

SFSQL;
    
// Query for account id's
$response = $sfConnection->query($sfQuery);

$display = print_r($response,true);
//echo "<pre>".$display."</pre>";

displayRecursiveResults($response);

function displayRecursiveResults($arrayObject) {
    foreach($arrayObject as $key=>$data) {
        if(is_array($data)) {
            displayRecursiveResults($data);
        } elseif(is_object($data)) {
            displayRecursiveResults($data);
        } else {
            echo "Key: ".$key." Data: ".$data."<br />";
        }
    }
}

[/CODE]

I'm having some problems with time based workflow. I have set up an email drip campaign using time based workflow. To do this, I created a series of outbound emails based on a custom date field, "activation date". I also created completed tasks associated with each of these emails so that we would have a record that the emails were sent.

 

The emails are sent out over the course of a 35 day period. When I first activated the campaign, I went through and triggered the workflow on a list of contacts that are already somewhere along that 35 day period. I then went to monitor my time based workflow and noticed that the actions that should have taken place in the past showed up in the queue. (e.g. if someone was supposed to receive an email 10, 20, 27, and 35 days after 9/1/09, they showed up in the queue for all of these dates, regardless of whether the date had passed or not.) I deleted all of the past dates from the queue, cancelling the actions, because I did not want these people to receive all of these emails in one day.

 

Unfortunately, this morning I noticed that the associated tasks with the workflow showed up in the contacts' activity history. I ran a report, and sure enough, the tasks were logged for all of the past dates even though I had cancelled the workflow. I ran a report for html email sent, but unfortunately came up with no results--maybe it does not record email sent through workflow?

 

I have a few questions, and answers to any of them would be greatly appreciated.

 

1. Is there any way that I can see if the emails actually went out? It's probably just wishful thinking, but I'm hoping just the tasks were logged and the emails didn't go out.

 

2. Is it possible to create workflow rules that will only trigger future actions? i.e. Can I create workflow that will put someone on the middle of a series or do they always have to start from the beginning?

 

3. Any ideas of why the workflow was still executed even though I cancelled it?

 

 

  • October 07, 2009
  • Like
  • 0
I have created a simple workflow rule that sends a lead an email with a particular attachment based on a simple checkbox.  The problem is I get no history, either through Activity History or HTML Email Status.  Is there a way to do this?  I can get it in to History via an additional workflow rule, but would prefer to track through HTML email.
Message Edited by mbolton on 09-13-2009 06:11 PM
  • September 14, 2009
  • Like
  • 0