{"id":5935,"date":"2017-03-20T19:58:57","date_gmt":"2017-03-20T19:58:57","guid":{"rendered":"http:\/\/www.jitendrazaa.com\/blog\/?p=5935"},"modified":"2017-03-29T22:10:31","modified_gmt":"2017-03-29T22:10:31","slug":"continuous-integration-ci-in-salesforce-using-team-foundation-server-tfs-video","status":"publish","type":"post","link":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-ci-in-salesforce-using-team-foundation-server-tfs-video\/","title":{"rendered":"Continuous Integration (CI) in Salesforce using Team Foundation Server (TFS) &#8211; Video"},"content":{"rendered":"<p style=\"text-align: justify;\">I have already written some\u00a0<strong><a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/continuous-integration\/\">Continuous Integration (CI)<\/a><\/strong> posts for Salesforce previously using different tools like Jenkins. In this blog post we will go through steps to use <strong>Microsoft Team Foundation Server (TFS)<\/strong> to set up\u00a0<strong>Continuous Integration.<\/strong><\/p>\n<p style=\"text-align: justify;\">We can either use cloud based <strong>Team foundation Server (TFS)<\/strong> or locally installed on network. For ease, we would be using cloud based TFS for this blog post.<\/p>\n<h3 style=\"text-align: justify;\"><strong>Step 1: Creating developer account on VisualStudio Online<\/strong><\/h3>\n<p style=\"text-align: justify;\">Navigate to\u00a0<a href=\"https:\/\/www.visualstudio.com\/\">https:\/\/www.visualstudio.com\/<\/a> and choose <em>Get Started for free<\/em> in <em>Visual Studio Team Services<\/em> section. You may need to create a new Microsoft developer account, if you don&#8217;t have it already.<\/p>\n<h3 style=\"text-align: justify;\"><strong>Step 2: Using TFS as source code repository<\/strong><\/h3>\n<p style=\"text-align: justify;\">Once we are able to login to TFS, lets start by creating a code repository. That&#8217;s right, you don&#8217;t need separate <a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/git\/\">Bitbucket or Github<\/a> account to save your code\/metadata unlike in <a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/jenkins\/\">Jenkins<\/a>. So, our start with TFS is really good and impressive till this point \ud83d\ude42 . Wizard to create new project is self explanatory and would look like below image<\/p>\n<figure id=\"attachment_5936\" aria-describedby=\"caption-attachment-5936\" style=\"width: 693px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Visual-Studio-Team-Foundation-Server-New-Project.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-5936 size-full\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Visual-Studio-Team-Foundation-Server-New-Project.png?resize=693%2C576&#038;ssl=1\" alt=\"Visual Studio Team Foundation Server - New Project Screen\" width=\"693\" height=\"576\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Visual-Studio-Team-Foundation-Server-New-Project.png?w=693&amp;ssl=1 693w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Visual-Studio-Team-Foundation-Server-New-Project.png?resize=300%2C249&amp;ssl=1 300w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/a><figcaption id=\"caption-attachment-5936\" class=\"wp-caption-text\">Visual Studio Team Foundation Server &#8211; New Project Screen<\/figcaption><\/figure>\n<p><!--more--><\/p>\n<p style=\"text-align: justify;\">Once new Project is created in Team Foundation Server, we can use any git client, like tortoise git to save code. For authentication purpose, we can either use normal username password flow or generate SSH key and use that key for authentication. This <a href=\"https:\/\/www.youtube.com\/watch?v=xmSoXqiMZo4\">youtube video<\/a> or <a href=\"https:\/\/www.jitendrazaa.com\/blog\/others\/tips\/getting-started-with-git-and-bitbucket-in-5-minutes-with-tortoisegit\/\">blog post<\/a> will help you to generate SSH key, if its something new to you. Once key is generated, we would need to save it on TFS so that it can validate authenticity of user.<\/p>\n<p>If you think you are little bit lost here, don&#8217;t worry :). I have posted video as well at the end of this blog post, showcasing everything in detail.<\/p>\n<h3>Step 3 : Create &amp; test ANT deployment script on local system<\/h3>\n<p>If you have visited this article, chances are high that you are <a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/ant-migration-tool\/\">well aware about ANT script<\/a> to deploy metadata into Salesforce. If not, no worries, I got you covered here as well. <a href=\"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-migration-tool-ant\/\">This blog post will serve a purpose of guide and key to fantasy world of ANT migration toolkit<\/a>.<\/p>\n<p>Lets create a\u00a0<em>build.properties<\/em> file, which will have all of your credentials and important information about deployment<\/p>\n<p><strong>build.properties<\/strong><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# build.properties \r\nsfSandbox.serverurl = https:\/\/test.salesforce.com\r\nsfPRO.serverurl = https:\/\/login.salesforce.com\r\n\r\nsfdc.cb.df14.username=Salesforceusername\r\nsfdc.cb.df14.password=Salesforcepassword\r\nsfdc.cb.df14.retrieveTarget=src\r\nsfdc.cb.df14.unpackaged=src\\\\package.xml\r\nsfdc.cb.df14.retrieveMessage = Script to retrieve metadata from Salesforce\r\n\r\nsfdc.cb.df15.username=Salesforceusername\r\nsfdc.cb.df15.password=Salesforcepassword\r\nsfdc.cb.df15.retrieveTarget=src\r\nsfdc.cb.df15.unpackaged=src\\\\package.xml\r\nsfdc.cb.df15.retrieveMessage = Script to retrieve metadata from Salesforce\r\n\r\n\r\nsfdcJarFile=ant-salesforce.jar \r\n<\/pre>\n<p><strong>build.xml<\/strong><\/p>\n<pre class=\"brush: xml; highlight: [6]; title: ; notranslate\" title=\"\">\r\n&lt;project name=&quot;Deployment Scripts&quot; default=&quot;deploy&quot; basedir=&quot;.&quot; xmlns:sf=&quot;antlib:com.salesforce&quot;&gt;\r\n \t   \r\n    &lt;property file=&quot;build.properties&quot;\/&gt;  \r\n\t\r\n\t&lt;target name=&quot;df14&quot;&gt; \t\r\n\t&lt;taskdef resource=&quot;com\/salesforce\/antlib.xml&quot; uri=&quot;antlib:com.salesforce&quot; classpath=&quot;${sfdcJarFile}&quot;\/&gt;\r\n\t\t\t\t\r\n\t\t&lt;echo message=&quot;${sfdc.cb.df14.username}&quot;\/&gt; \r\n\t\t&lt;sf:retrieve username=&quot;${sfdc.cb.df14.username}&quot; password=&quot;${sfdc.cb.df14.password}&quot; serverurl=&quot;${sfPRO.serverurl}&quot; retrieveTarget=&quot;${sfdc.cb.df14.retrieveTarget}&quot; unpackaged=&quot;${sfdc.cb.df14.unpackaged}&quot; \/&gt; \r\n\t&lt;\/target&gt;  \r\n\t\r\n\t&lt;target name=&quot;deploy&quot;&gt;\r\n\t&lt;taskdef resource=&quot;com\/salesforce\/antlib.xml&quot; uri=&quot;antlib:com.salesforce&quot; classpath=&quot;${sfdcJarFile}&quot;\/&gt;\r\n\t\t\t\t\r\n\t\t&lt;sf:deploy username=&quot;${sfdc.cb.df15.username}&quot; password=&quot;${sfdc.cb.df15.password}&quot; serverurl=&quot;${sfPRO.serverurl}&quot; deployRoot=&quot;src&quot; maxPoll=&quot;1000&quot; testLevel=&quot;NoTestRun&quot; checkOnly=&quot;false&quot; pollWaitMillis=&quot;10000&quot; rollbackOnError=&quot;true&quot;\/&gt;\r\n\t&lt;\/target&gt; \r\n\t\r\n&lt;\/project&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">Important difference to notice above is that how Salesforce jar is referred. In some situations where we have access to system, we simply put address of jar file of <a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/ant-migration-tool\/\">Salesforce migration toolkit<\/a> in classpath. However in this scenario, as we are using cloud based solution for <strong>Continuous Integration<\/strong>, we need to refer jar file location relative to code base. Therefore while pushing <em>build.properties<\/em> and <em>build.xml<\/em> as a code in git, we would need to push\u00a0<em><span style=\"text-decoration: underline;\">ant-salesforce.jar<\/span><\/em> file as well.<\/p>\n<p>Once all above settings are in place, try to run command<\/p>\n<pre>ANT df14 deploy<\/pre>\n<p style=\"text-align: justify;\">Target <em>df14<\/em> will retrieve source code from one Salesforce instance and would deploy same code to <em>df15<\/em> instance in our example.<\/p>\n<h3 style=\"text-align: justify;\">Step 4 : New Build definition in Team Foundation Server<\/h3>\n<p style=\"text-align: justify;\">In this step, we will create New build definition informing TFS which ANT target to invoke.<\/p>\n<p>Navigate to <strong>Build &amp; Release | New definition | Build | Ant<\/strong><\/p>\n<figure id=\"attachment_5942\" aria-describedby=\"caption-attachment-5942\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-5942\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition.png?resize=840%2C660&#038;ssl=1\" alt=\"Team Foundation Server (TFS) - New Build definition\" width=\"840\" height=\"660\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition.png?resize=1024%2C804&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition.png?resize=300%2C236&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition.png?resize=768%2C603&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition.png?w=1109&amp;ssl=1 1109w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-5942\" class=\"wp-caption-text\">Team Foundation Server (TFS) &#8211; New Build definition<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">In next screen, we would need to select repository. It has few options like Github, some remote Git repository or SVN. As we have already created Git project in TFS itself, we have selected that. Next option we have is to choose a\u00a0Git branch. It is possible that we need nightly build on one branch and hourly build on some other code base branch. So to address these kind of situation, we can have multiple builds in same project with different branches.<\/p>\n<figure id=\"attachment_5943\" aria-describedby=\"caption-attachment-5943\" style=\"width: 749px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5943\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?resize=749%2C832&#038;ssl=1\" alt=\"Team Foundation Server (TFS) - New Build definition - Select repository\" width=\"749\" height=\"832\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?w=749&amp;ssl=1 749w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-Select-repository.png?resize=270%2C300&amp;ssl=1 270w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/a><figcaption id=\"caption-attachment-5943\" class=\"wp-caption-text\">Team Foundation Server (TFS) &#8211; New Build definition &#8211; Select repository<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Next screen would be to add build steps of ANT. In our example, we have already specified default target however you can add ANT target depending on requirements. Once we save below screen, we are all set to test our Continuous Integration project using Microsoft&#8217;s Team Foundation Server.<\/p>\n<figure id=\"attachment_5944\" aria-describedby=\"caption-attachment-5944\" style=\"width: 840px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-5944\" src=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?resize=840%2C487&#038;ssl=1\" alt=\"Team Foundation Server (TFS) - New Build definition - add build steps\" width=\"840\" height=\"487\" srcset=\"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?resize=1024%2C594&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?resize=300%2C174&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?resize=768%2C445&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?resize=1200%2C696&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/03\/Team-Foundation-Server-TFS-New-Build-definition-add-build-steps.png?w=1233&amp;ssl=1 1233w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption id=\"caption-attachment-5944\" class=\"wp-caption-text\">Team Foundation Server (TFS) &#8211; New Build definition &#8211; add build steps<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Below video explains everything we discussed in this post. Please don&#8217;t forget to drop your feedback on this post.<\/p>\n<p><iframe loading=\"lazy\" title=\"Set Up Continuous Integration using Team Foundation Server for Salesforce\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/D4y_sAHQAug?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Step by step guide to set up Continuous Integration (CI) for Salesforce using Team Foundation Server (TFS) with video tutorial<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"jz_research_post":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9],"tags":[294,383,384,212],"class_list":["post-5935","post","type-post","status-publish","format-standard","hentry","category-salesforce","tag-continuous-integration","tag-team-foundation-server","tag-tfs","tag-video-tutorial"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":6341,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-vs-continuous-delivery-vs-continuous-deployment\/","url_meta":{"origin":5935,"position":0},"title":"Continuous Integration vs. Continuous Delivery vs. Continuous Deployment","author":"Jitendra","date":"November 11, 2017","format":false,"excerpt":"Difference between Continuous Integration vs. Continuous Delivery vs. Continuous Deployment","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Continuous Integration vs. Continuous Delivery vs. Continuous Deployment","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration-vs.-Continuous-Delivery-vs.-Continuous-Deployment.png?fit=1002%2C766&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration-vs.-Continuous-Delivery-vs.-Continuous-Deployment.png?fit=1002%2C766&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration-vs.-Continuous-Delivery-vs.-Continuous-Deployment.png?fit=1002%2C766&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Continuous-Integration-vs.-Continuous-Delivery-vs.-Continuous-Deployment.png?fit=1002%2C766&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4331,"url":"https:\/\/www.jitendrazaa.com\/blog\/uncategorized\/using-cctray-to-monitor-continuous-integration-setup-using-jenkins-for-salesforce-video-tutorial\/","url_meta":{"origin":5935,"position":1},"title":"Using CCTray to monitor continuous integration setup using Jenkins for Salesforce | Video Tutorial","author":"Jitendra","date":"March 23, 2015","format":false,"excerpt":"In previous article, I\u00a0have explained that\u00a0how to use Jenkins to setup Continuous integration for Salesforce. Now, once Jenkins is up and its doing its job to build Salesforce changes. Next task is to monitor build result. We already setup post deployment task by creating chatter message to notify everyone about\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"CCTray Build Server custom HTTP URL","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/CCTray-Build-Server-custom-HTTP-URL.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":5595,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/dynamically-remove-xml-content-from-metadata-before-salesforce-deployment-using-xmltask-video\/","url_meta":{"origin":5935,"position":2},"title":"Dynamically remove XML content from metadata before Salesforce deployment using xmlTask &#8211; Video","author":"Jitendra","date":"August 18, 2016","format":false,"excerpt":"Example - automatically remove listview before deployment","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Using XMLTask in ANT for Salesforce Deployment","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2016\/08\/2016-07-15.png?fit=922%2C519&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4584,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-in-salesforce-using-flosum-appexchange\/","url_meta":{"origin":5935,"position":3},"title":"Continuous Integration in Salesforce using Flosum AppExchange","author":"Jitendra","date":"June 22, 2015","format":false,"excerpt":"Native Force.com solution for Continuous Integration using AppExchange product Flosum","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Flosum AppExchange","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/06\/Flosum-AppExchange.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":6360,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/import-and-export-records-using-salesforce-dx\/","url_meta":{"origin":5935,"position":4},"title":"Import and Export Records using Salesforce DX","author":"Jitendra","date":"November 13, 2017","format":false,"excerpt":"Using Salesforce DX to Export and Import records into regular Salesforce Instances without dependency on developer hub org","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Import and Export Records using SalesforceDx","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Import-and-Export-Records-using-SalesforceDx.png?fit=1167%2C347&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Import-and-Export-Records-using-SalesforceDx.png?fit=1167%2C347&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Import-and-Export-Records-using-SalesforceDx.png?fit=1167%2C347&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Import-and-Export-Records-using-SalesforceDx.png?fit=1167%2C347&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Import-and-Export-Records-using-SalesforceDx.png?fit=1167%2C347&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4276,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/continuous-integration-in-salesforce-using-jenkins-and-git-video-tutorial\/","url_meta":{"origin":5935,"position":5},"title":"Continuous integration in Salesforce Using Jenkins and Git | Video Tutorial","author":"Jitendra","date":"March 23, 2015","format":false,"excerpt":"As your Salesforce Organization undergoes heavy customization and frequent builds, moving changes from one Sandbox to other sandboxes starts taking longer time and effort. Also, in normal Salesforce project, there are chances that you will have minimum three sandboxes likely Developer Sandbox, QA Sandbox and UAT Sandbox. After some time\u2026","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce - Jenkins Git Polling Log","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2015\/03\/Salesforce-Jenkins-Git-Polling-Log.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/5935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/comments?post=5935"}],"version-history":[{"count":9,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/5935\/revisions"}],"predecessor-version":[{"id":5948,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/5935\/revisions\/5948"}],"wp:attachment":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media?parent=5935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/categories?post=5935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/tags?post=5935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}