{"id":6353,"date":"2017-11-12T22:59:28","date_gmt":"2017-11-12T22:59:28","guid":{"rendered":"http:\/\/www.jitendrazaa.com\/blog\/?p=6353"},"modified":"2017-12-12T23:33:36","modified_gmt":"2017-12-12T23:33:36","slug":"use-metadata-api-with-salesforce-dx","status":"publish","type":"post","link":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/use-metadata-api-with-salesforce-dx\/","title":{"rendered":"Use Metadata API with Salesforce DX"},"content":{"rendered":"<p style=\"text-align: justify;\">If you have existing VCS which stores metadata information about your Salesforce instance in old format, dependent on package.xml and you want to use\u00a0<strong><a href=\"https:\/\/www.jitendrazaa.com\/blog\/tag\/sfdx\/\">Salesforce DX<\/a>\u00a0<\/strong>then this blog post is for you. As you might already know,\u00a0<strong>Salesforce DX\u00a0<\/strong>does not need package.xml and can automatically detect changes in your Salesforce instance, therefore new Salesforce DX project format is different. In this blog post we will see, how Salesforce DX can be used without enabling <strong>Developer Hub<\/strong> and using Salesforce DX with normal Salesforce instances.<\/p>\n<p>There are two solution to this problem<\/p>\n<ol>\n<li style=\"text-align: justify;\">Keep using old Project format and use\u00a0<strong>Metadata API\u00a0<\/strong>to retrieve and deploy<\/li>\n<li style=\"text-align: justify;\">Convert old project format to\u00a0<strong>Salesforce DX\u00a0<\/strong>project Format<\/li>\n<\/ol>\n<p><!--more--><\/p>\n<p style=\"text-align: justify;\">First step is to authenticate your normal Salesforce org. For this, you don&#8217;t need to purchase license for Salesforce DX. You can refer <a href=\"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/getting-started-with-salesforce-dx-salesforce-developer-experience\/\">this blog post for common Salesforce DX commands<\/a>. First command we would use is\u00a0<strong>login\u00a0<\/strong>command.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsfdx force:auth:web:login --setalias jzaa1\r\n<\/pre>\n<p style=\"text-align: justify;\">Above command will open browser window to authenticate Salesforce instance. This authenticated Salesforce instance can be referred as jzaa1 in other Salesforce DX commands.<\/p>\n<h5>Use Salesforce DX with Metadata API to retrieve components<\/h5>\n<p>Below command is used to retrieve component from Salesforce using metadata API by Salesforce DX<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsfdx force:mdapi:retrieve -r .\/mdAPIZip -u jzaa1 -k src\/package.xml\r\n<\/pre>\n<p>where<\/p>\n<ul>\n<li>-u : Which Salesforce Org to be used by Salesforce DX<\/li>\n<li>-r : Where zip file should be saved<\/li>\n<li>-k : List of components to be retrieved using package.xml<\/li>\n<\/ul>\n<h5>Use Salesforce DX with Metadata API to deploy components<\/h5>\n<p style=\"text-align: justify;\">Below command can be used to deploy component in regular Salesforce instance where\u00a0<strong>Developer Hub\u00a0<\/strong>is not enabled using Metadata API and Salesforce DX<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsfdx force:mdapi:deploy -c -f ..\/mdAPIZip\/unpackaged.zip -u jzaa1 -w 10\r\nor\r\nsfdx force:mdapi:deploy -c -d ..\/mdAPIZip\/unpackaged -u jzaa1 -w 10\r\n<\/pre>\n<p>where<\/p>\n<ul>\n<li>-u : Which Salesforce Org to be used by Salesforce DX<\/li>\n<li>-f : Zip file location containing metadata and package.xml<\/li>\n<li>-c : Check only flag, Package would be validates only<\/li>\n<li>-w : Wait time in minute for operation to be completed<\/li>\n<li>-d : Folder location of non-zipped files, with package.xml in root<\/li>\n<\/ul>\n<h5>Convert old project structure to Salesforce DX format<\/h5>\n<p>Lets see, how old project created using ANT Migration toolkit or Force.com IDE can be converted to Salesforce DX format<\/p>\n<p>First we need to create a blank Salesforce DX project with the help of below command, where -n is name of Salesforce Dx project<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsfdx force:project:create -n MdAPIDemo\r\n<\/pre>\n<p>Now, navigate to MdAPIDemo folder<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ncd MdAPIDemo\r\n<\/pre>\n<p>Its time to run last command<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsfdx force:mdapi:convert -r ..\/mdAPIZip\/unpackaged\r\n<\/pre>\n<p>Where<\/p>\n<ul>\n<li>-r : root directory, containing metadata API folder<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" title=\"Use Metadata API with Salesforce DX\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/12WcMzjs0lw?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>How to use SalesforceDX to deploy metadata in Sandboxes or Non-Scratch Salesforce instances<\/p>\n","protected":false},"author":1,"featured_media":6354,"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":[262,294,414,415],"class_list":["post-6353","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-salesforce","tag-ant-migration-tool","tag-continuous-integration","tag-salesforce-dx","tag-sfdx"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/11\/Use-Metadata-API-or-Package.xml-with-SFDX.png?fit=1920%2C1080&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":6062,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/getting-started-with-salesforce-dx-salesforce-developer-experience\/","url_meta":{"origin":6353,"position":0},"title":"Most Frequently used SFDX Commands","author":"Jitendra","date":"May 25, 2017","format":false,"excerpt":"Introduction and basics of Salesforce Developer Experience (Salesforce DX) with source code and Video tutorials","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce Developer Experience - SFDX","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/05\/sfdx.jpg-large.jpg?fit=1024%2C512&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/05\/sfdx.jpg-large.jpg?fit=1024%2C512&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/05\/sfdx.jpg-large.jpg?fit=1024%2C512&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2017\/05\/sfdx.jpg-large.jpg?fit=1024%2C512&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":6499,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/using-salesforcedx-sfdx-with-non-scratch-orgs\/","url_meta":{"origin":6353,"position":1},"title":"Using SalesforceDX (SFDX) with non Scratch Orgs","author":"Jitendra","date":"June 24, 2018","format":false,"excerpt":"How to use SalesforceDX (SFDX) with Sandbox, Developer and Production Orgs","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Use SFDX with non scratch Orgs","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2018\/06\/Screen-Shot-2018-06-24-at-9.08.53-PM.png?fit=1200%2C645&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2018\/06\/Screen-Shot-2018-06-24-at-9.08.53-PM.png?fit=1200%2C645&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2018\/06\/Screen-Shot-2018-06-24-at-9.08.53-PM.png?fit=1200%2C645&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2018\/06\/Screen-Shot-2018-06-24-at-9.08.53-PM.png?fit=1200%2C645&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2018\/06\/Screen-Shot-2018-06-24-at-9.08.53-PM.png?fit=1200%2C645&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6606,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/build-a-salesforce-dx-plugin-in-15-minutes-dreamforce-2018\/","url_meta":{"origin":6353,"position":2},"title":"Build a Salesforce DX Plugin in 15 Min","author":"Jitendra","date":"September 14, 2018","format":false,"excerpt":"My Dreamforce Session to create a Salesforce DX plugin in 15 minutes","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce DX Plugin Structure","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2018\/09\/Salesforce-DX-Plugin-Structure.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":6951,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/mastering-visual-studio-and-salesforce-dx\/","url_meta":{"origin":6353,"position":3},"title":"Mastering Visual Studio and Salesforce DX","author":"Jitendra","date":"January 14, 2020","format":false,"excerpt":"3.5 hours of video to become Master on using and navigating Visual Studio, Need of scratch org and building modular application using Unlocked Packages","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Salesforce DX on Udemy","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/01\/Salesforce-DX-on-Udemy.png?fit=1200%2C693&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/01\/Salesforce-DX-on-Udemy.png?fit=1200%2C693&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/01\/Salesforce-DX-on-Udemy.png?fit=1200%2C693&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/01\/Salesforce-DX-on-Udemy.png?fit=1200%2C693&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2020\/01\/Salesforce-DX-on-Udemy.png?fit=1200%2C693&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":31310,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/salesforce-mcp-server-for-claude-code-mcp-clients-setup\/","url_meta":{"origin":6353,"position":4},"title":"Salesforce MCP Server for Claude Code &amp; MCP Clients: Setup Guide 2026","author":"Jitendra Zaa","date":"January 30, 2026","format":false,"excerpt":"Master Salesforce MCP Server setup for Claude Code and other MCP clients. Step-by-step guide covering DX MCP Server, OAuth setup, hosted servers, and mcp-remote configuration.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/ai\/"},"img":{"alt_text":"Salesforce MCP Server for Claude Code & MCP Clients - Complete Developer Guide 2026","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2026\/01\/salesforce-mcp-server-claude-code-guide-featured.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2026\/01\/salesforce-mcp-server-claude-code-guide-featured.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2026\/01\/salesforce-mcp-server-claude-code-guide-featured.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2026\/01\/salesforce-mcp-server-claude-code-guide-featured.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2026\/01\/salesforce-mcp-server-claude-code-guide-featured.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":6930,"url":"https:\/\/www.jitendrazaa.com\/blog\/salesforce\/install-manage-package-in-scratch-org-using-salesforce-dx\/","url_meta":{"origin":6353,"position":5},"title":"Install Manage Package in Scratch Org using Salesforce DX","author":"Jitendra","date":"December 27, 2019","format":false,"excerpt":"Install CPQ, Field Service Lightning, B2B Commerce cloud in Scratch Org using SFDX Command","rel":"","context":"In &quot;Salesforce&quot;","block_context":{"text":"Salesforce","link":"https:\/\/www.jitendrazaa.com\/blog\/category\/salesforce\/"},"img":{"alt_text":"Install Manage Package using SFDX in Scratch Org","src":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2019\/12\/Install-Manage-Package-using-SFDX-in-Scratch-Org.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2019\/12\/Install-Manage-Package-using-SFDX-in-Scratch-Org.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2019\/12\/Install-Manage-Package-using-SFDX-in-Scratch-Org.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2019\/12\/Install-Manage-Package-using-SFDX-in-Scratch-Org.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jitendrazaa.com\/blog\/wp-content\/uploads\/2019\/12\/Install-Manage-Package-using-SFDX-in-Scratch-Org.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/6353","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=6353"}],"version-history":[{"count":6,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/6353\/revisions"}],"predecessor-version":[{"id":6372,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/posts\/6353\/revisions\/6372"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media\/6354"}],"wp:attachment":[{"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/media?parent=6353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/categories?post=6353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jitendrazaa.com\/blog\/wp-json\/wp\/v2\/tags?post=6353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}