Skip to content

Instantly share code, notes, and snippets.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:sf="http://soap.sforce.com/2006/04/metadata" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/sf:Package/sf:types/sf:members[following-sibling::sf:name='CustomApplication' and starts-with(text(), 'standard__')]"/>
@stefangoor
stefangoor / empty.package.xslt
Created April 30, 2015 23:00
An XSLT file to create an empty package.xml from an existing package.xml file
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:sf="http://soap.sforce.com/2006/04/metadata" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/sf:Package/sf:types"/>
@stefangoor
stefangoor / build.xml
Created April 30, 2015 10:25
A target to reset the org content
...
<target name="reset.content" depends="retrieve.all.content,reset.triggers,reset.classes,reset.formulas,reset.pages,reset.components">
<delete>
<fileset dir="${temp.dir}" includes="**${file.separator}type.metadata,**${file.separator}subtype.metadata"/>
</delete>
<sf:deploy username="${sf.username}" password="${sf.password}" serverurl="https://login.salesforce.com" deployRoot="${temp.dir}" allowMissingFiles="true"/>
</target>
...
@stefangoor
stefangoor / build.xml
Created April 30, 2015 08:37
A target for resetting formulas in custom fields on Salesforce objects
...
<target name="reset.formulas">
<property name="temp.dir" value="temp"/>
<xslt failOnNoResources="false" destdir="${temp.dir}" style="xslt${file.separator}reset.formulas.xslt" extension=".reset" useImplicitFileset="false" force="true">
<fileset dir="${temp.dir}" includes="objects${file.separator}*.object">
<containsregexp expression="&lt;formula&gt;.*&lt;/formula&gt;" multiline="true"/>
</fileset>
</xslt>
<move todir="${temp.dir}">
<globmapper from="*.reset" to="*.object"/>
@stefangoor
stefangoor / reset.formulas.xslt
Created April 30, 2015 08:34
The XSLT file for reseting formulas on custom fields
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:sf="http://soap.sforce.com/2006/04/metadata" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/sf:CustomObject/sf:fields[sf:type='Percent' or sf:type='Number' or sf:type='Currency']/sf:formula/text()">
@stefangoor
stefangoor / build.xml
Created April 30, 2015 08:12
Targets for resetting Visualforce pages and components
...
<target name="reset.pages">
<property name="temp.dir" value="temp"/>
<copy todir="${temp.dir}" overwrite="true">
<fileset dir="${temp.dir}" includes="pages${file.separator}*.page"/>
<filterchain>
<headfilter lines="1"/>
<tokenfilter>
<replaceregex pattern=".*" replace="&lt;apex:page\/&gt;"/>
</tokenfilter>
@stefangoor
stefangoor / build.xml
Created April 28, 2015 10:12
A target to set formulas to return simple values to remove dependencies...
...
<target name="reset.formulas">
<property name="temp.dir" value="temp"/>
<xslt failOnNoResources="false" destdir="${temp.dir}" style="xslt${file.separator}reset.formulas.xslt" extension=".reset" useImplicitFileset="false" force="true">
<fileset dir="${temp.dir}" includes="objects${file.separator}*.object">
<containsregexp expression="&lt;formula&gt;.*&lt;/formula&gt;" multiline="true"/>
</fileset>
</xslt>
<move todir="${temp.dir}">
<globmapper from="*.reset" to="*.object"/>
@stefangoor
stefangoor / build.xml
Created April 28, 2015 09:16
A target to clear classes
...
<target name="reset.classes">
<property name="temp.dir" value="temp"/>
<copy todir="${temp.dir}" overwrite="true">
<fileset dir="${temp.dir}" includes="classes${file.separator}*.cls"/>
<filterchain>
<tokenfilter>
<replaceregex pattern="@RestResource\s*\([^\)]*\)" replace=""/>
</tokenfilter>
<stripjavacomments/>
@stefangoor
stefangoor / build.xml
Created April 28, 2015 08:51
A target to reset triggers
...
<target name="reset.triggers">
<property name="temp.dir" value="temp"/>
<copy todir="${temp.dir}" overwrite="true">
<fileset dir="${temp.dir}" includes="triggers${file.separator}*.trigger"/>
<filterchain>
<prefixlines prefix=" "/>
<stripjavacomments/>
<striplinebreaks/>
<tokenfilter>
@stefangoor
stefangoor / build.xml
Created April 27, 2015 22:49
Target to retrieve all content from an org
...
<target name="retrieve.all.content" depends="retrieve.all.metadata">
<property name="temp.dir" value="temp"/>
<property name="package.header" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;${line.separator}&lt;Package xmlns=&quot;http://soap.sforce.com/2006/04/metadata&quot;&gt;"/>
<property name="package.footer" value="&lt;version&gt;30.0&lt;/version&gt;${line.separator}&lt;/Package&gt;"/>
<replaceregexp match="\*+[^\*]+Manageable State\:\s+installed[^\*]+\*+" replace="" flags="mg">
<fileset dir="${temp.dir}" includes="**${file.separator}type.metadata,**${file.separator}subtype.metadata"/>
</replaceregexp>
<tempfile property="all.package.xml" prefix="all.types.package." suffix=".xml" destdir="${temp.dir}" deleteonexit="true"/>
<concat destfile="${all.package.xml}">