Skip to content

Instantly share code, notes, and snippets.

View martyychang's full-sized avatar

Marty Chang martyychang

View GitHub Profile
User Event Type Constant User Event Type Value Entry Point Handler Method Name
CREATE create beforeSubmit() createBeforeSubmit()
EDIT edit beforeSubmit() editBeforeSubmit()
XEDIT xedit afterSubmit() xeditAfterSubmit()
@martyychang
martyychang / beautifyDealhub.js
Created August 24, 2021 00:11
Make the DealHub.io interface more developer-friendly for editing conditional answers and other attributes.
var sheets = document.styleSheets;
var neatSheet = null;
/* Find the default style to edit */
for (i = 0; i < sheets.length; i++) {
if (sheets[i].title === null) {
neatSheet = sheets[i];
}
}
@martyychang
martyychang / combine_csv.py
Created August 23, 2020 19:24
Combine multiple CSV files into a single CSV file
# https://blog.softhints.com/how-to-merge-multiple-csv-files-with-python/
# https://www.techbeamers.com/pandas-merge-csv-files/
import os, glob
import pandas as pdlib
path = "/Users/mchang/Desktop/Salesforce/Account/1598097614646/"
list_of_files = glob.glob(os.path.join(path, "data_*.csv"))
# Consolidate all CSV files into one object
result_obj = pdlib.concat([pdlib.read_csv(file) for file in list_of_files])
@martyychang
martyychang / listsobjectfields.py
Created January 31, 2020 17:40
List all field labels and field names for an object
import csv
import os
import xml.etree.ElementTree as ET
FIELDS_SUBDIR = 'fields'
METADATA_NAMESPACE = 'http://soap.sforce.com/2006/04/metadata'
OBJECTS_DIR = 'force-app/main/default/objects'
namespaces = {
'': METADATA_NAMESPACE
@martyychang
martyychang / batch-create-records.js
Created January 24, 2020 16:28
Expected input objects for Salesforce "batch create records" and "batch update records" actions in Tray.io
// You can reference the input variables using input.NAME
exports.step = function(input) {
return _.map(input.rows, function(row) {
// Please note that the format of this object is different
// from the format for the "Batch update records" operation.
return [
{
"key": "Role__c",
"value": row.role
@martyychang
martyychang / SobjectQueryGenerator.cls
Last active October 5, 2020 14:22
Generate Salesforce SELECT * query, Postgres CREATE TABLE statement and database-conf.xml content for a given object.
public class SobjectQueryGenerator {
private List<Schema.DescribeFieldResult> fieldDescList;
private Schema.DescribeSObjectResult sobjectDesc;
public SobjectQueryGenerator(Schema.DescribeSObjectResult sobjectDesc, Boolean includeCalculated) {
this.sobjectDesc = sobjectDesc;
this.fieldDescList = new List<Schema.DescribeFieldResult>();
for (Schema.SObjectField eachField : this.sobjectDesc.fields.getMap().values()) {
Schema.DescribeFieldResult eachDfr = eachField.getDescribe();
@martyychang
martyychang / .bash_profile
Created October 29, 2018 12:29
Better Git integration with Terminal on Mac OS X
# Git shell
# https://gist.github.com/trey/2722934
source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWCOLORHINTS=true
export PS1='\[\033[0;36m\]\u@\h\[\033[0;35m\]:\[\033[0;33m\]\w\[\033[0;37m\]$(__git_ps1)\[\033[0m\]\n\$ '
@martyychang
martyychang / listObjectFields.java
Last active October 8, 2018 19:13
Generate a list of all fields and data types for a given object and send the metadata in CSV format via email
// README: This is the only line you need to edit (generally speaking)
// This is the object for which I want to extract the field describes.
// Running this script will send the resulting field list to your user's email,
// with the fields as an attached CSV file.
Schema.DescribeSObjectResult objectDescribe = Schema.SObjectType.OpportunityLineItem;
/**
* Wrapper class to return CSV rows
*/
public class FieldCsvWriter {
@martyychang
martyychang / check.sh
Last active December 28, 2018 14:01
Trailblazer .bin
# Check to require a username to be [given as argument][1]
#
# [1]: https://stackoverflow.com/questions/6482377/check-existence-of-input-argument-in-a-bash-shell-script
if [ -z "$1" ]; then
echo ERROR: Username argument required!
# [terminate and indicate error][3]
#
# [3]: https://stackoverflow.com/questions/4381618/exit-a-script-on-error
exit 1
@martyychang
martyychang / .gitignore
Created July 17, 2017 12:26
MavensMate project init
# MavensMate
config/
# Sublime Text
*.sublime*