Skip to content

Instantly share code, notes, and snippets.


Chris Peterson capeterson

View GitHub Profile
public static List<Object> getFieldValues(List<SObject> data, String fieldName){
List<Object> results = new List<Object>();
for(SObject record:data){
return results;
capeterson / Invoice_PostAction.trigger
Created Aug 22, 2012
FinancialForce Posting via checkbox
View Invoice_PostAction.trigger
trigger Invoice_PostAction on c2g__codaInvoice__c (after insert, after update) {
List<c2g.CODAAPICommon.Reference> toPost = new List<c2g.CODAAPICommon.Reference>();
if( document.Action_PostDocument__c == true ){
if(document.c2g__invoiceStatus__c != 'In Progress'){
System.debug(LoggingLevel.Warn,'Cannot post invoice, invoice is '+document.c2g__invoiceStatus__c);
c2g.CODAAPICommon.Reference ref = new c2g.CODAAPICommon.Reference(); =;
capeterson / gist:2955412
Created Jun 19, 2012
Dynamic SOQL + var binding
View gist:2955412
Set<String> names = new Set<String>{'Me','Myself','I'};
String query = 'SELECT id, name FROM User WHERE LastName IN :names';
List<sObject> objs = Database.query(query);
View TransactionTest.cls
private class TransactionTest{
static void test(){
String companyName = 'Company 1';
c2g__codaCompany__c company = [SELECT id, name FROM c2g__codaCompany__c WHERE name = :companyName];
User usr = new User(alias = 'standt',
capeterson / LolEnums.cls
Created Jun 7, 2012
Replication of an issue with enum quality after summer12 salesforce upgrade.
View LolEnums.cls
global class LolEnums implements Database.batchable<sObject>, Database.Stateful{
public enum Places {FIRST, SECOND, THIRD}
public Places val;
global Database.QueryLocator start(Database.BatchableContext bc) {
val = Places.FIRST;
return Database.getQueryLocator('SELECT id FROM User');
global void execute(Database.BatchableContext BC, List<sObject> work){
capeterson / Component_Query.cls
Created Feb 28, 2012
Visualforce Query Component. Particularly useful for visualforce email templates.
View Component_Query.cls
global with sharing class Component_Query {
global String queryString {get; set;}
global List<sObject> results {get{
List<sObject> result = Database.Query(queryString);
return result;
} set; }
private static testmethod void contactTest(){
Contact c = new Contact(lastName = 'apex test contact');
insert c;
capeterson / gist:1857114
Created Feb 18, 2012
PushTopic deactivate
View gist:1857114
String pushTopicId = '0IFD0000000008jOAA';
PushTopic pt = [SELECT Id FROM PushTopic WHERE Id = :pushTopicId];
pt.Id = pushTopicId;
pt.IsActive = false;
View gist:1642180
public static Schema.SObjectType getObjectType(id subject){
if(subject == null)
return null;
Schema.SObjectType result;
string target = subject;
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
string keyPrefix;
for(Schema.SObjectType describe: gd.values() ){
keyPrefix = describe.getDescribe().getKeyPrefix();
capeterson / gist:1630454
Created Jan 18, 2012
apex:repeat indexes in visualforce pages
View gist:1630454
<apex:actionFunction name="removeItem" action="{!removeItem}" rerender="theForm">
<apex:param name="rowIndex" value="" />
<apex:pageBlockTable var="index" value="{!memberIndexes}">
<apex:column width="18">
<apex:image value="{!URLFOR($Resource.RemoveItem)}" title="Remove Family Member" width="16" onClick="removeItem({!index});" />
<apex:repeat var="field" value="{!$ObjectType.Person__c.FieldSets.NewFamily}">
<apex:column >
<apex:facet name="header">{!field.label}</apex:facet>
View RecordTypeDescribe.cls
* Simple wrapper class to represent a record type sObject and RecordTypeInfo object all in one.
* This object needs to be used in any ui-facing record type operations going forward
* in order to support record type label overrides. See:
* @author cpeterson
global with sharing class RecordTypeDescribe {
private static Map<String,Map<id,RecordTypeDescribe>> cache {
if(cache == null)