• staceyeileen
  • NEWBIE
  • 0 Points
  • Member since 2012

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

We are currently implementing outbound messaging as part of an integration.  There is apparently no standard functionality to send some kind of an alert when a message fails.  Does anyone have any suggestions on how to implement this type of notice?  Is it possible to query the outbound message queue?  If that was possible, we could query it every hour or so to see if there are any falures and send our own alert...  this seems like critical info.  I don't want to be in a position when I need to check the monitoring page at least once every 24 hours.

Is it possible to allow a user to specify a time zone when they are populating a date/time field?  I realize by default all times are assumed to be in the time zone in the user's profile, but that behavior won't work for certain scenarios we are dealing with in our call center.

We are currently implementing outbound messaging as part of an integration.  There is apparently no standard functionality to send some kind of an alert when a message fails.  Does anyone have any suggestions on how to implement this type of notice?  Is it possible to query the outbound message queue?  If that was possible, we could query it every hour or so to see if there are any falures and send our own alert...  this seems like critical info.  I don't want to be in a position when I need to check the monitoring page at least once every 24 hours.

Hi All,

 

I have a requirement where the validation rule should fire on Custom object before the first level approver click on Approve/Reject button after validating some criteria.

 

I have written the validation rule on custom object like when the Ispickvalue(Status__c,"submitted") fire this validation rule before first level approver approves and the problem i am facing is the first level approver can approve the record against the validation rule and because of approval process field updates it is updating Status field from submitted to Approved.

 

Please let me know is there any way so that i can create the validation rule for approval process instead of adding this criteria in entry level because i want the record to enter the approval process and in approval step i want to fire the validation rule.

 

Please let me know if any one has come with the same problem.

  • October 04, 2012
  • Like
  • 0

 

How can I configure the permissions for a Chatter Only profile in my dev org prior to deploying on the Prod org. The Chatter Only license is not available in the Dev org. I don't understand why it is missing from the Dev orgs. I'm was not able to find any solution about this after googling.

 

Anybody has some suggestions.

 

Thanks

  • September 21, 2012
  • Like
  • 0

Hi Fridends...

 

 

How to Generate Barcode program in apex and Visualforce?

 

 

 

Thanks & Regards

Shiva...

We have a project to move some of our paper processes to electronic processes

We've gotten the Salesforce white paper on the topic and still have some questions

 

Namely, how did you enforce the e-signature?

Do you have users re-authenticate when approving?

Do you use a component or third party to process e-signatures?

What kind of timeline and cost was associated with deploying that?

 

There are other interpretation questions, but the big hurdle (as I see it) is the electronic signature

 

When developing a Visualforce page for overiding view page for any object, one problem that creeps up is to display the History details of a record. The standard related list Component doesn't works for History.

 

With the help of some code from Community ( I now can't find the link to it :( ), I wrote my own code  then to display the history of an object. It mimics the standard list as far as possible.  

 

Heres the code. It is for the Case object but it can be used for any other object.

 1.Component Code

 

<apex:component controller="CaseHistoriesComponentController">
<!-- Attribute Definition -->
<apex:attribute name="CaseId" description="Salesforce Id of the Case whose Case History needs to be rendered" type="Id" required="true" assignTo="{!caseId}" />

<!-- Case History Related List -->
<apex:pageBlock title="Case History">
<apex:pageBlockTable value="{!histories}" var="History" >
<apex:column headerValue="Date" value="{!History.thedate}"/>
<apex:column headerValue="User"> <apex:outputLink value="/{!History.userId}"> {!History.who} </apex:outputLink></apex:column>
<apex:column headerValue="Action"><apex:outputText escape="false" value="{!History.action}"/></apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:component>

 

 

 

 

2. Apex Code

 

public class CaseHistoriesComponentController {

public Id caseId {get; set;}
public cHistories[] histories;

// Variables
public Static final Map<String, Schema.SObjectField> CaseFieldmap = Schema.SObjectType.Case.fields.getMap();
public Static final List<Schema.PicklistEntry> fieldPicklistValues = CaseHistory.Field.getDescribe().getPicklistValues();

public List<cHistories> getHistories()
{
list<cHistories> histories = new list<cHistories>();
String prevDate = '';
for(CaseHistory cHistory : [Select CreatedDate, CreatedBy.Name, CreatedBy.Id, Field, NewValue, OldValue from CaseHistory where CaseId = :caseId order by CreatedDate desc])
{
if((cHistory.newValue == null && cHistory.oldValue == null)
|| (cHistory.newValue != null && !(string.valueOf(cHistory.newValue).startsWith('005') || string.valueOf(cHistory.newValue).startsWith('00G')))
|| (cHistory.oldValue != null && !(string.valueOf(cHistory.oldValue).startsWith('005') || string.valueOf(cHistory.oldValue).startsWith('00G'))))
{
cHistories tempHistory = new cHistories();
// Set the Date and who performed the action
if(String.valueOf(cHistory.CreatedDate) != prevDate)
{
tempHistory.theDate = String.valueOf(cHistory.CreatedDate);
tempHistory.who = cHistory.CreatedBy.Name;
tempHistory.userId = cHistory.CreatedBy.Id;
}
else
{
tempHistory.theDate = '';
tempHistory.who = '';
tempHistory.userId = cHistory.CreatedBy.Id;
}
prevDate = String.valueOf(cHistory.CreatedDate);

// Get the field label
String fieldLabel = CaseHistoriesComponentController.returnFieldLabel(String.valueOf(cHistory.Field));

// Set the Action value
if (String.valueOf(cHistory.Field) == 'created') { // on Creation
tempHistory.action = 'Created.';
}
else if(cHistory.OldValue != null && cHistory.NewValue == null){ // when deleting a value from a field
// Format the Date and if there's an error, catch it and re
try {
tempHistory.action = 'Deleted ' + Date.valueOf(cHistory.OldValue).format() + ' in <b>' + fieldLabel + '</b>.';
} catch (Exception e){
tempHistory.action = 'Deleted ' + String.valueOf(cHistory.OldValue) + ' in <b>' + fieldLabel + '</b>.';
}
}
else{ // all other scenarios
String fromText = '';
if (cHistory.OldValue != null) {
try {
fromText = ' from ' + Date.valueOf(cHistory.OldValue).format();
} catch (Exception e) {
fromText = ' from ' + String.valueOf(cHistory.OldValue);
}
}

String toText = '';
if (cHistory.OldValue != null) {
try {
toText = Date.valueOf(cHistory.NewValue).format();
} catch (Exception e) {
toText = String.valueOf(cHistory.NewValue);
}
}
if(toText != '')
tempHistory.action = 'Changed <b>' + fieldLabel + '</b>' + fromText + ' to <b>' + toText + '</b>.';
else
tempHistory.action = 'Changed <b>' + fieldLabel;
}

// Add to the list
histories.add(tempHistory);
}
}

return histories;
}

// Function to return Field Label of a Case field given a Field API name
public Static String returnFieldLabel(String fieldName)
{
if(CaseHistoriesComponentController.CaseFieldmap.containsKey(fieldName))
return CaseHistoriesComponentController.CaseFieldmap.get(fieldName).getDescribe().getLabel();
else
{
for(Schema.PicklistEntry pickList : fieldPicklistValues)
{
if(pickList.getValue() == fieldName)
{
if(pickList.getLabel() != null)
return pickList.getLabel();
else
return pickList.getValue();
}
}
}
return '';
}
// Inner Class to store the detail of the case histories
public class cHistories {

public String theDate {get; set;}
public String who {get; set;}
public Id userId {get; set;}
public String action {get; set;}
}
}

  Let me know your views on the code or if you have any questions