{"id":4524,"date":"2024-04-13T16:32:57","date_gmt":"2024-04-13T08:32:57","guid":{"rendered":"http:\/\/www.ponybai.com\/?p=4524"},"modified":"2023-12-31T16:46:10","modified_gmt":"2023-12-31T08:46:10","slug":"%e6%b2%99%e7%9b%92","status":"publish","type":"post","link":"http:\/\/www.ponybai.com\/?p=4524","title":{"rendered":"\u6c99\u76d2"},"content":{"rendered":"\n<p>\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n<p>Salesforce \u63d0\u4f9b\u6c99\u76d2\u548c\u4e00\u7ec4\u90e8\u7f72\u5de5\u5177\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5c06\u81ea\u5b9a\u4e49\u548c\u5f00\u53d1\u5de5\u4f5c\u4e0e\u751f\u4ea7\u73af\u5883\u9694\u79bb\u5f00\u6765\uff0c\u76f4\u5230 \u4f60\u5df2\u51c6\u5907\u597d\u90e8\u7f72\u66f4\u6539\u3002<\/li>\n\n\n\n<li>\u9488\u5bf9\u751f\u4ea7\u6570\u636e\u548c\u7528\u6237\u7684\u526f\u672c\u6d4b\u8bd5\u66f4\u6539\u3002<\/li>\n\n\n\n<li>\u63d0\u4f9b\u57f9\u8bad\u73af\u5883\u3002<\/li>\n\n\n\n<li>\u5c06\u5355\u4e2a\u66f4\u6539\u534f\u8c03\u5230\u4e00\u4e2a\u90e8\u7f72\u5230\u751f\u4ea7\u4e2d\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4f20\u7edf\u4e0a\uff0c\u60a8\u6216\u60a8\u7684\u7ba1\u7406\u5458\u901a\u8fc7 \u8bbe\u7f6e UI\u3002\u4f46\u662f\u6211\u4eec\u610f\u8bc6\u5230\uff0c\u8bb8\u591a\u5f00\u53d1\u4eba\u5458\u5e0c\u671b\u80fd\u591f\u521b\u5efa\u548c\u7ba1\u7406\u4ed6\u4eec\u7684 \u4ee5\u7f16\u7a0b\u65b9\u5f0f\u5f00\u53d1\u548c\u6d4b\u8bd5\u73af\u5883\uff0c\u5e76\u81ea\u52a8\u6267\u884c\u5176 CI \u6d41\u7a0b\u3002 \u501f\u52a9 Salesforce CLI\uff0c\u60a8\u53ef\u4ee5\u540c\u65f6\u505a\u5230\u8fd9\u4e24\u70b9\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6c99\u76d2\u5728\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u751f\u547d\u5468\u671f\u4e2d\u5904\u4e8e\u4ec0\u4e48\u4f4d\u7f6e\uff1f<\/h2>\n\n\n\n<p>\u60a8\u4f7f\u7528\u7684\u5f00\u53d1\u6a21\u578b\u51b3\u5b9a\u4e86\u60a8\u5728\u54ea\u4e9b\u9636\u6bb5\u4f7f\u7528\u6c99\u76d2\u3002\u67e5\u770b\u66f4\u591a \u6709\u5173\u6211\u4eec\u7684\u5f00\u53d1\u6a21\u578b\u4ee5\u53ca\u6c99\u76d2\u9002\u5408\u7684\u4f4d\u7f6e\u7684\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u786e\u5b9a\u9002\u5408\u7684\u5e94\u7528\u7a0b\u5e8f\u751f\u547d\u5468\u671f\u6a21\u578b \u4f60\uff08Trailhead\uff09\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6388\u6743\u751f\u4ea7\u7ec4\u7ec7<\/strong><br>JWT \u548c\u57fa\u4e8e Web \u7684\u6d41\u9700\u8981\u5177\u6709\u6c99\u76d2\u8bb8\u53ef\u8bc1\u7684\u751f\u4ea7\u7ec4\u7ec7\uff0c\u800c\u4e0d\u662f\u5f00\u53d1\u4eba\u5458\u4e2d\u5fc3\u3002\u4f46\u662f\uff0c\u5982\u679c\u4f60\u7684\u751f\u4ea7\u7ec4\u7ec7\u4e5f\u662f\u5f00\u53d1\u4eba\u5458\u4e2d\u5fc3\u7ec4\u7ec7\uff0c\u5219\u6ca1\u5173\u7cfb\u3002<\/li>\n\n\n\n<li><strong>\u521b\u5efa\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6<\/strong><br>\u5728\u4f7f\u7528 Salesforce CLI \u521b\u5efa\u6c99\u76d2\u4e4b\u524d\uff0c\u8bf7\u5728\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6\u4e2d\u5b9a\u4e49\u6c99\u76d2\u7684\u914d\u7f6e\u3002\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6\u662f\u6c99\u76d2\u7684\u84dd\u56fe\u3002\u60a8\u53ef\u4ee5\u4e3a\u5728\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u4f7f\u7528\u7684\u6bcf\u79cd\u6c99\u76d2\u7c7b\u578b\u521b\u5efa\u4e0d\u540c\u7684\u5b9a\u4e49\u6587\u4ef6\u3002<\/li>\n\n\n\n<li>\u521b\u5efa\u3001\u514b\u9686\u6216\u5220\u9664\u6c99\u76d2 \u521b\u5efa\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u6216\u8bad\u7ec3\u7684<strong>\u6c99\u76d2<\/strong><br>\u3002\u514b\u9686\u6c99\u76d2\u4ee5\u5c06\u5176\u6570\u636e\u548c\u5143\u6570\u636e\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u6c99\u76d2\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u6388\u6743\u60a8\u7684\u751f\u4ea7\u7ec4\u7ec7<\/h2>\n\n\n\n<p>JWT \u548c\u57fa\u4e8e Web \u7684\u6d41\u7a0b\u9700\u8981\u5177\u6709\u6c99\u76d2\u8bb8\u53ef\u8bc1\u7684\u751f\u4ea7\u7ec4\u7ec7\uff0c\u800c\u4e0d\u662f\u5f00\u53d1\u4eba\u5458 \u67a2\u7ebd\u3002\u4f46\u662f\uff0c\u5982\u679c\u4f60\u7684\u751f\u4ea7\u7ec4\u7ec7\u4e5f\u662f\u5f00\u53d1\u4eba\u5458\u4e2d\u5fc3\u7ec4\u7ec7\uff0c\u5219\u6ca1\u5173\u7cfb\u3002<\/p>\n\n\n\n<p>\u4f7f\u7528\u57fa\u4e8e JWT \u7684\u6d41\u7a0b\u6388\u6743\u7ec4\u7ec7\u548c\u4f7f\u7528\u57fa\u4e8e Web \u7684\u6d41\u7a0b\u6388\u6743\u7ec4\u7ec7\u4e2d\u7684\u793a\u4f8b\u662f\u9488\u5bf9\u7684 \u8d70\u5411 Scratch \u7ec4\u7ec7\u3002\u8bf7\u6309\u7167\u4ee5\u4e0b\u63d0\u793a\u6210\u529f\u6388\u6743\u60a8\u7684\u751f\u4ea7\u7ec4\u7ec7\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8bf7\u52a1\u5fc5\u5728&nbsp;sfdx-project.json&nbsp;\u6587\u4ef6\u4e2d\u4f7f\u7528 for\u3002 \u6216\u8005\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u4e0a\u6307\u5b9a URL\u3002\u6b64\u503c\u5c06\u8986\u76d6\u60a8\u7684\u767b\u5f55 URL \u5728&nbsp;sfdx-project.json&nbsp;\u6587\u4ef6\u4e2d\u6307\u5b9a\u3002<kbd>https:\/\/login.salesforce.com<\/kbd><samp>sfdcLoginUrl<\/samp><samp>org login jwt &#8211;instance-url<\/samp><\/li>\n\n\n\n<li>\u8fd0\u884c\u547d\u4ee4\u65f6\u6307\u5b9a\u751f\u4ea7\u7ec4\u7ec7\u7684\u7528\u6237\u540d\u3002\u65e0\u9700\u6307\u5b9a Dev Hub \u6216 \u6307\u793a\u9ed8\u8ba4\u7684 Dev Hub\u3002<samp>org login jwt<\/samp><\/li>\n\n\n\n<li>JWT \u6388\u6743\u6d41\u7a0b\u8981\u6c42\u60a8\u521b\u5efa\u8fde\u63a5\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u5f53\u4f60 \u521b\u5efa\u8fde\u63a5\u7684\u5e94\u7528\uff0c\u767b\u5f55\u5230\u751f\u4ea7\u7ec4\u7ec7\uff0c\u800c\u4e0d\u662f\u5f00\u53d1\u4eba\u5458\u4e2d\u5fc3\u7ec4\u7ec7\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u521b\u5efa\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6<\/h2>\n\n\n\n<p>\u5728\u4f7f\u7528 Salesforce CLI \u521b\u5efa\u6c99\u76d2\u4e4b\u524d\uff0c\u8bf7\u5728 \u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6\u3002\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6\u662f\u6c99\u76d2\u7684\u84dd\u56fe\u3002\u60a8\u53ef\u4ee5 \u4e3a\u5f00\u53d1\u4e2d\u4f7f\u7528\u7684\u6bcf\u79cd\u6c99\u76d2\u7c7b\u578b\u521b\u5efa\u4e0d\u540c\u7684\u5b9a\u4e49\u6587\u4ef6 \u8fc7\u7a0b\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6c99\u76d2\u914d\u7f6e\u503c<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u9009\u62e9<\/th><th>\u5fc5\u586b\uff1f<\/th><th>\u63cf\u8ff0<\/th><\/tr><\/thead><tbody><tr><td>apexClassId<\/td><td>\u4e0d<\/td><td>\u5bf9 Apex \u7c7b\u7684 ID \u7684\u5f15\u7528\uff0c\u8be5\u7c7b\u5728 \u6c99\u76d2\u3002\u5141\u8bb8\u60a8\u5728\u6c99\u76d2\u4e0a\u6267\u884c\u4e1a\u52a1\u903b\u8f91\uff0c\u4ee5\u4fbf\u4e3a\u6c99\u76d2\u505a\u597d\u51c6\u5907 \u7528\u3002<\/td><\/tr><tr><td>\u81ea\u52a8\u6fc0\u6d3b<\/td><td>\u4e0d<\/td><td>\u5982\u679c \uff0c\u60a8\u53ef\u4ee5\u6fc0\u6d3b\u6c99\u76d2 \u7acb\u5373\u5237\u65b0\u3002<samp>true<\/samp><\/td><\/tr><tr><td>copyArchived\u6d3b\u52a8<\/td><td>\u4e0d<\/td><td>\u4ec5\u9650\u5b8c\u6574\u6c99\u76d2\u3002\u5982\u679c\u60a8\u7684\u7ec4\u7ec7\u5df2\u8d2d\u4e70\uff0c\u5219\u6b64\u5b57\u6bb5\u53ef\u89c1 \u7528\u4e8e\u590d\u5236\u6c99\u76d2\u7684\u5b58\u6863\u6d3b\u52a8\u7684\u9009\u9879\u3002\u8981\u83b7\u53d6\u6b64\u9009\u9879\uff0c\u8bf7\u8054\u7cfb Salesforce \u5ba2\u6237\u652f\u6301\u3002<\/td><\/tr><tr><td>copyChatter<\/td><td>\u4e0d<\/td><td>\u5982\u679c \uff0c\u5219\u590d\u5236\u5b58\u6863\u7684 Chatter \u6570\u636e \u5230\u6c99\u76d2\u3002<samp>true<\/samp><\/td><\/tr><tr><td>\u63cf\u8ff0<\/td><td>\u4e0d<\/td><td>\u6c99\u76d2\u7684\u63cf\u8ff0\uff081000 \u4e2a\u6216\u66f4\u5c11\u5b57\u7b26\uff09\uff0c\u53ef\u5e2e\u52a9\u60a8 \u5c06\u5176\u4e0e\u5176\u4ed6\u6c99\u76d2\u533a\u5206\u5f00\u6765\u3002<\/td><\/tr><tr><td>\u5386\u53f2\u5929\u6570<\/td><td>\u4e0d<\/td><td>\u4ec5\u9650\u5b8c\u6574\u6c99\u76d2\u3002\u8868\u793a\u5bf9\u8c61\u5386\u53f2\u8bb0\u5f55\u7684\u5929\u6570 \u590d\u5236\u5230\u6c99\u76d2\u4e2d\u3002\u53d6\u503c\u8303\u56f4\uff1a-1\uff0c\u8868\u793a\u6240\u6709\u53ef\u7528\u5929\u65700 \uff08\u9ed8\u8ba4\uff091020306090120150180<\/td><\/tr><tr><td>\u8bb8\u53ef\u8bc1\u7c7b\u578b<\/td><td>\u662f\uff08\u7528\u4e8e\u6c99\u76d2\u521b\u5efa\uff09<\/td><td>\u6709\u6548\u503c\u4e3a \u3001 \u3001 \u548c \u3002<samp>Developer<\/samp><samp>Developer_Pro<\/samp><samp>Partial<\/samp><samp>Full<\/samp><\/td><\/tr><tr><td>\u6c99\u76d2\u540d\u79f0<\/td><td>\u662f\u7684<\/td><td>\u7528\u4e8e\u6807\u8bc6\u6c99\u76d2\u7684\u552f\u4e00\u5b57\u6bcd\u6570\u5b57\u5b57\u7b26\u4e32\uff0810 \u4e2a\u5b57\u7b26\u6216\u66f4\u5c11\uff09\u3002 \u5728\u5220\u9664\u6c99\u76d2\u7684\u8fc7\u7a0b\u4e2d\uff0c\u60a8\u65e0\u6cd5\u91cd\u590d\u4f7f\u7528\u540d\u79f0\u3002<\/td><\/tr><tr><td>\u6e90SandboxName<\/td><td>\u662f\uff08\u7528\u4e8e\u6c99\u76d2\u514b\u9686\uff09<\/td><td>\u8981\u514b\u9686\u7684\u6c99\u76d2\u7684\u540d\u79f0\u3002<\/td><\/tr><tr><td>\u6a21\u677f Id<\/td><td>\u662f\uff08\u9002\u7528\u4e8e\u90e8\u5206\u6c99\u76d2\uff09<\/td><td>\u5bf9\u4e8e\u5b8c\u6574\u6c99\u7bb1\u662f\u53ef\u9009\u7684\u3002\u4e0d\u9002\u7528\u4e8e Developer \u548c Developer Pro \u6c99\u76d2\u3002\u5bf9\u7531 15 \u4e2a\u5b57\u7b26\u6807\u8bc6\u7684\u6c99\u76d2\u6a21\u677f\u7684\u5f15\u7528 \u67e5\u770b\u65f6 URL \u4e2d\u4ee5 \u5f00\u5934\u7684 ID \u6d4f\u89c8\u5668\u4e2d\u7684\u6c99\u76d2\u6a21\u677f\u3002\u6c99\u76d2\u6a21\u677f\u5141\u8bb8\u60a8\u9009\u62e9\u54ea\u4e9b\u5bf9\u8c61 \u5728\u6c99\u76d2\u4e2d\u590d\u5236\u3002<samp>1ps<\/samp><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u6ce8\u610f<\/p>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u5728\u5b9a\u4e49\u6587\u4ef6\u4e2d\u6307\u5b9a\u5176\u4e2d\u4e4b\u4e00\uff0c\u4f46\u4e0d\u80fd\u540c\u65f6\u6307\u5b9a\u4e24\u8005\u3002<samp>licenseType<\/samp><samp>sourceSandboxName<\/samp><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u793a\u4f8b\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6<\/h2>\n\n\n\n<p>\u5c3d\u7ba1\u60a8\u53ef\u4ee5\u5c06\u6c99\u76d2\u5b9a\u4e49\u6587\u4ef6\u653e\u5728\u4efb\u4f55\u4f4d\u7f6e\uff0c\u4f46\u6211\u4eec\u5efa\u8bae\u5c06\u5176\u4fdd\u7559\u5728&nbsp;\u914d\u7f6e\u76ee\u5f55\u4e2d\u7684 Salesforce DX \u9879\u76ee\u3002\u547d\u540d \u6587\u4ef6\u4e2d\uff0c\u6211\u4eec\u5efa\u8bae\u63d0\u4f9b\u4ee5 sandbox-def.json \u7ed3\u5c3e\u7684\u63cf\u8ff0\u6027\u540d\u79f0\uff0c\u4f8b\u5982&nbsp;developer-sandbox-def.json\u3002<\/p>\n\n\n\n<p>\u4e0b\u9762\u662f\u7528\u4e8e\u521b\u5efa\u6c99\u76d2\u7684\u793a\u4f8b\u5b9a\u4e49\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n     \"sandboxName\": \"dev1\",\n     \"licenseType\": \"Developer\"\n}<\/code><\/pre>\n\n\n\n<p>\u4e0b\u9762\u662f\u7528\u4e8e\u514b\u9686\u6c99\u76d2\u7684\u793a\u4f8b\u5b9a\u4e49\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n     \"sandboxName\": \"dev1clone\",\n     \"sourceSandboxName\": \"dev1\"\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u521b\u5efa\u3001\u514b\u9686\u6216\u5220\u9664\u6c99\u76d2<\/h2>\n\n\n\n<p>\u521b\u5efa\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u6216\u8bad\u7ec3\u7684\u6c99\u76d2\u3002\u514b\u9686\u8981\u590d\u5236\u7684\u6c99\u76d2 \u5176\u6570\u636e\u548c\u5143\u6570\u636e\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u6c99\u76d2\u3002<\/p>\n\n\n\n<p>\u5728\u521b\u5efa\u6216\u514b\u9686\u6c99\u76d2\u4e4b\u524d\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528\u6e05\u5355\u6587\u4ef6\u521b\u5efa Salesforce DX \u9879\u76ee\u3002<\/li>\n\n\n\n<li>\u6388\u6743\u7ed9\u5177\u6709\u53ef\u7528\u6c99\u76d2\u8bb8\u53ef\u8bc1\u7684\u751f\u4ea7\u7ec4\u7ec7\u3002<\/li>\n\n\n\n<li>\u521b\u5efa\u6c99\u7bb1\u5b9a\u4e49\u6587\u4ef6\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e3a\u4ec0\u4e48\u6211\u4eec\u5efa\u8bae\u4f7f\u7528\u522b\u540d<\/h2>\n\n\n\n<p>\u521b\u5efa\u6216\u514b\u9686\u6c99\u76d2\u65f6\uff0c \u6c99\u76d2\u4e2d\u751f\u6210\u7684\u7528\u6237\u540d\u57fa\u4e8e\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u5b58\u5728\u7684\u7528\u6237\u540d\uff0c\u6216\u8005 \u6c99\u76d2\u3002\u7528\u6237\u540d\u770b\u8d77\u6765\u50cf\u7535\u5b50\u90ae\u4ef6\u5730\u5740\uff0c\u4f8b\u5982 .\u5982\u679c\u751f\u6210\u7684\u7528\u6237\u540d\u4e0d\u662f\u552f\u4e00\u7684\uff0c\u6211\u4eec\u4f1a\u5728\u524d\u9762\u6dfb\u52a0\u4e00\u4e9b \u5b57\u7b26\u548c\u6570\u5b57\u6dfb\u52a0\u5230\u7528\u6237\u540d\u4e2d\u3002\u4fee\u6539\u540e\u7684\u7528\u6237\u540d\u7c7b\u4f3c\u4e8e \u3002<samp>username@company.com.dev1<\/samp><samp><strong>00x7Vq<\/strong>username@company.com.dev1<\/samp><\/p>\n\n\n\n<p>\u53ef\u4ee5\u60f3\u8c61\uff0c \u8bb0\u4f4f\u8fd9\u4e9b\u7528\u6237\u540d\u53ef\u80fd\u5177\u6709\u6311\u6218\u6027\uff0c\u5c24\u5176\u662f\u5f53\u60a8\u6709\u591a\u4e2a\u6c99\u76d2\u65f6 \u7ba1\u7406\u3002\u522b\u540d\u662f\u7ba1\u7406\u548c\u8ddf\u8e2a\u7ec4\u7ec7\u7684\u6709\u6548\u65b9\u6cd5\uff0c\u6211\u4eec\u8ba4\u4e3a\u5b83\u662f\u6700\u597d\u7684 \u5b9e\u8df5\u3002\u56e0\u6b64\uff0c\u5f53\u60a8\u53d1\u51fa\u9700\u8981\u7528\u6237\u540d\u7684\u547d\u4ee4\u65f6\uff0c\u4f7f\u7528\u60a8\u53ef\u4ee5 \u8bb0\u4f4f\u53ef\u4ee5\u52a0\u5feb\u901f\u5ea6\u3002\u5982\u679c\u60a8\u5728\u521b\u5efa\u6c99\u76d2\u65f6\u672a\u8bbe\u7f6e\u522b\u540d\uff0c\u5219 \u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a \u540e\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf alias set MyDevSandbox username@company.com.dev1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u521b\u5efa\u6c99\u76d2<\/h2>\n\n\n\n<p>\u53ef\u9009\uff1a\u521b\u5efa\u6c99\u7bb1\u5b9a\u4e49\u6587\u4ef6<\/p>\n\n\n\n<p>\u5f53\u60a8\u521b\u5efa\u4e00\u4e2a \u6c99\u76d2\uff0cSalesforce \u5c06\u5143\u6570\u636e\u548c\u53ef\u9009\u6570\u636e\u4ece\u60a8\u7684\u751f\u4ea7\u7ec4\u7ec7\u590d\u5236\u5230 \u6c99\u76d2\u7ec4\u7ec7\u3002\u4f7f\u7528\u8be5\u6807\u5fd7\u6307\u5b9a\u751f\u4ea7\u7ec4\u7ec7\u7684\u7528\u6237\u540d\u6216\u522b\u540d\u3002<samp>&#8211;target-org<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org create sandbox --target-org prodOrg --definition-file config\/dev-sandbox-def.json --alias MyDevSandbox --set-default --wait 30<\/code><\/pre>\n\n\n\n<p>\u8fd9 \u547d\u4ee4\u8981\u6c42\u60a8\u786e\u8ba4\u6c99\u7bb1\u914d\u7f6e\uff0c\u7136\u540e\u5c06\u4fe1\u606f\u663e\u793a\u4e3a\u6c99\u7bb1 \u6b63\u5728\u521b\u5efa\u4e2d\u3002<\/p>\n\n\n\n<p>\u65d7\u5e1c \u8868\u793a\u6b64\u6c99\u76d2\u662f\u6240\u6709 CLI \u547d\u4ee4\u7684\u9ed8\u8ba4\u7ec4\u7ec7\u3002\u5982\u679c\u60a8\u6b63\u5728\u4f7f\u7528 \u591a\u4e2a\u7ec4\u7ec7\uff0c\u5e76\u4e14\u60a8\u4e0d\u5e0c\u671b\u6b64\u7ec4\u7ec7\u6210\u4e3a\u9ed8\u8ba4\u503c\uff0c\u8bf7\u6392\u9664\u6b64\u6807\u5fd7\u3002<samp>&#8211;set-default<\/samp><\/p>\n\n\n\n<p>\u76f4\u63a5 \u5b9a\u4e49\u6240\u9700\u7684\u6c99\u76d2\u9009\u9879\uff0c\u6216\u8986\u76d6\u6c99\u76d2\u5b9a\u4e49\u4e2d\u5b9a\u4e49\u7684\u503c \u6587\u4ef6\uff0c\u5219\u5728\u547d\u4ee4\u4e0a\u6307\u5b9a\u9002\u5f53\u7684\u6807\u5fd7 \u7ebf\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org create sandbox --name FullSbx --license-type=Full --target-org prodOrg --alias MyFullSandbox --wait 30<\/code><\/pre>\n\n\n\n<p>\u63d0\u793a<\/p>\n\n\n\n<p>\u7531\u4e8e\u6c99\u76d2\u662f\u5728\u961f\u5217\u4e2d\u5904\u7406\u7684\uff0c\u56e0\u6b64\u6c99\u76d2\u521b\u5efa\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981 \u6bd4\u9ed8\u8ba4\u7b49\u5f85\u65f6\u95f4 6 \u5206\u949f\u957f\u3002\u6211\u4eec\u5efa\u8bae\u5c06\u8f83\u5927\u7684\u503c\u8bbe\u7f6e\u4e3a \uff0c\u4f8b\u5982 30 \u5206\u949f\u3002<samp>&#8211;wait<\/samp><\/p>\n\n\n\n<p>\u521b\u4f5c\u591a\u957f\u65f6\u95f4 \u6d41\u7a0b\u9700\u8981\u53d6\u51b3\u4e8e\u751f\u4ea7\u7ec4\u7ec7\u7684\u89c4\u6a21\u548c\u590d\u6742\u6027\u3002\u60a8\u4f1a\u770b\u5230\u72b6\u6001\u6d88\u606f \u53d1\u5e03\u5230 \u8f93\u51fa\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sandbox Create... \u28fe 00:28:00 until timeout. 26%\n Field         Value                        \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n Id            0GR1Q888800HORuWAO           \n SandboxName   dev11                        \n Status        Processing                   \n LicenseType   DEVELOPER                    \n SandboxInfoId 0GQ1Q000009999mWAO           \n Created Date  2023-10-17T21:42:49.000+0000 \n CopyProgress  26%                          \n SandboxOrg    00DP0099993zEZj              \n---------------------\nSandbox Create Stages\n\u2713 - Pending\n\u2026 - Processing\n\u2026 - Activating\n\u2026 - Authenticating<\/code><\/pre>\n\n\n\n<p>\u7b49\u5f85\u671f\u7ed3\u675f\u540e\uff0c\u60a8\u53ef\u4ee5\u6267\u884c\u547d\u4ee4\u67e5\u770b\u6c99\u7bb1\u521b\u5efa\u8fc7\u7a0b\u7684\u72b6\u6001\u3002\u5982\u679c\u6c99\u76d2\u662f \u5728\u7b49\u5f85\u65f6\u95f4\u5185\u521b\u5efa\uff0cSalesforce CLI \u4f1a\u81ea\u52a8\u5728\u6c99\u76d2\u4e2d\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\u548c \u6c99\u76d2\u5c06\u663e\u793a\u5728\u547d\u4ee4\u7684\u8f93\u51fa\u4e2d\u3002 \u56e2\u961f\u6210\u5458\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u547d\u4ee4\u5e76\u63d0\u4f9b\u5176\u7528\u6237\u540d\u548c\u5bc6\u7801\u6765\u5411\u6c99\u76d2\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002<samp>org resume sandbox<\/samp><samp>org list<\/samp><samp>org web login<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org web login --instance-url https:\/\/test.salesforce.com<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u514b\u9686\u6c99\u76d2<\/h2>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u901a\u8fc7\u514b\u9686\u73b0\u6709\u6c99\u76d2\u6765\u521b\u5efa\u6c99\u76d2\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u751f\u4ea7\u7ec4\u7ec7 \u4f5c\u4e3a\u60a8\u7684\u6765\u6e90\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u4e00\u7ec4\u6570\u636e\u548c\u5143\u6570\u636e\u81ea\u5b9a\u4e49\u6c99\u76d2\u6765\u8282\u7701\u65f6\u95f4\uff0c\u5e76\u4e14 \u7136\u540e\u590d\u5236\u5b83\u3002\u4f7f\u7528 \u6807\u5fd7\u6307\u5b9a \u73b0\u6709\u6c99\u7bb1\u540d\u79f0\u548c\u6807\u5fd7\u66f4\u6539\u4e3a \u65b0\u7684\u6c99\u76d2\u3002\u8fd9\u4e24\u4e2a\u6c99\u7bb1\u90fd\u5fc5\u987b\u4e0e\u6307\u5b9a\u7684\u751f\u4ea7\u7ec4\u7ec7\u76f8\u5173\u8054\uff0c\u8be5\u7ec4\u7ec7\u5fc5\u987b \u5305\u542b\u6c99\u76d2\u8bb8\u53ef\u8bc1\u3002\uff08\u6807\u5fd7\uff09\u3002<samp>&#8211;clone<\/samp><samp>&#8211;name<\/samp><samp>&#8211;target-org<\/samp><\/p>\n\n\n\n<p>\u6c99\u76d2\u514b\u9686\u7b80\u5316\u4e86 \u5e94\u7528\u7a0b\u5e8f\u751f\u547d\u5468\u671f\u3002\u60a8\u53ef\u4ee5\u4e3a\u6bcf\u79cd\u7c7b\u578b\u7684\u5de5\u4f5c\u8bbe\u7f6e\u6c99\u76d2\uff0c\u4f8b\u5982\u5f00\u53d1\u3001 \u6d4b\u8bd5\u548c\u6682\u5b58\u3002\u60a8\u7684\u540c\u4e8b\u53ef\u4ee5\u8f7b\u677e\u514b\u9686\u5355\u4e2a\u6c99\u76d2\uff0c\u800c\u4e0d\u662f\u5171\u4eab \u4e00\u4e2a\u6c99\u76d2\uff0c\u8e29\u7740\u5bf9\u65b9\u7684\u811a\u8dbe\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org create sandbox --clone ExistingSandbox --name NewClonedSandbox --target-org prodOrg --alias MyDevSandbox --set-default --wait 30<\/code><\/pre>\n\n\n\n<p>\u63d0\u793a<\/p>\n\n\n\n<p>\u7531\u4e8e\u6c99\u76d2\u662f\u5728\u961f\u5217\u4e2d\u5904\u7406\u7684\uff0c\u56e0\u6b64\u6c99\u76d2\u514b\u9686\u8fc7\u7a0b\u53ef\u4ee5 \u82b1\u8d39\u7684\u65f6\u95f4\u6bd4\u9ed8\u8ba4\u7684 6 \u5206\u949f\u7b49\u5f85\u65f6\u95f4\u957f\u3002\u6211\u4eec\u5efa\u8bae\u5c06\u8f83\u5927\u7684\u503c\u8bbe\u7f6e\u4e3a \uff0c\u4f8b\u5982 30 \u5206\u949f\u3002<samp>&#8211;wait<\/samp><\/p>\n\n\n\n<p>\u7b49\u5f85\u671f\u7ed3\u675f\u540e\uff0c\u60a8\u53ef\u4ee5\u6267\u884c\u547d\u4ee4\u67e5\u770b\u6c99\u7bb1\u514b\u9686\u8fc7\u7a0b\u7684\u72b6\u6001\u3002\u5982\u679c\u6c99\u76d2\u662f \u5728\u7b49\u5f85\u65f6\u95f4\u5185\u514b\u9686\u540e\uff0cCLI \u4f1a\u81ea\u52a8\u5728\u6c99\u76d2\u4e2d\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\u800c \u6c99\u76d2\u5c06\u663e\u793a\u5728\u547d\u4ee4\u7684\u8f93\u51fa\u4e2d\u3002\u56e2\u961f \u6210\u5458\u53ef\u4ee5\u901a\u8fc7\u8fd0\u884c\u547d\u4ee4\u5e76\u63d0\u4f9b\u5176\u7528\u6237\u540d\u548c\u5bc6\u7801\u6765\u5bf9\u6c99\u76d2\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002<samp>org resume sandbox<\/samp><samp>org list<\/samp><samp>org web login<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org web login --instance-url https:\/\/test.salesforce.com<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u68c0\u67e5\u6c99\u76d2\u72b6\u6001<\/h2>\n\n\n\n<p>\u521b\u5efa\u6216\u514b\u9686\u6c99\u76d2\u53ef\u80fd\u9700\u8981\u591a\u6b21 \u7eaa\u8981\u3002\u5982\u679c\u547d\u4ee4\u8d85\u65f6\uff0c\u5b83\u4f1a\u663e\u793a\u4e00\u4e2a\u4f5c\u4e1a ID\uff0c\u60a8\u53ef\u4ee5\u5c06\u8be5 ID \u4f20\u9012\u7ed9\u547d\u4ee4\u4ee5\u62a5\u544a\u521b\u5efa\u6216\u514b\u9686 \u5730\u4f4d\u3002\u5f53\u6c99\u76d2\u51c6\u5907\u5c31\u7eea\u65f6\uff0c\u6b64\u547d\u4ee4\u8fd8\u4f1a\u5411 \u6c99\u76d2\u3002<samp>org resume sandbox<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org resume sandbox --job-id 0GR1888880000HORuWAO --target-org prodOrg<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u547d\u4ee4\u8d85\u65f6\uff0c\u5219 \u672a\u8bbe\u7f6e\u522b\u540d\u3002\u4f46\u662f\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u8bbe\u7f6e\uff1a<samp>org create sandbox<\/samp><samp>alias set<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf alias set MyDevSandbox username@company.com.dev1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u6253\u5f00\u6c99\u76d2<\/h2>\n\n\n\n<p>\u6c99\u76d2\u51c6\u5907\u5c31\u7eea\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a\u5176\u7528\u6237\u540d\u6216\u522b\u540d\u6765\u6253\u5f00\u5b83\u3002\u4f46\u662f\uff0c\u60a8 \u4e0d\u5fc5\u63d0\u4f9b\u5176\u5bc6\u7801\uff0c\u56e0\u4e3a CLI \u4f1a\u7ba1\u7406 \u4f60\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org open --target-org MyDevSandbox<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5220\u9664\u6c99\u76d2<\/h2>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u4f7f\u7528 Salesforce CLI \u5220\u9664\u6c99\u76d2\uff0c\u65e0\u8bba \u60a8\u5728\u672c\u5730\u521b\u5efa\u4e86\u5b83\uff0c\u6216\u8005\u8bb0\u5f55\u4e86\u5b83 \u4f7f\u7528\u547d\u4ee4\u6dfb\u52a0\u5230\u73b0\u6709\u6c99\u7bb1\u4e2d\u3002\u60a8\u5fc5\u987b \u4e4b\u524d\u8fd8\u767b\u5f55\u8fc7\u5305\u542b\u6c99\u76d2\u8bb8\u53ef\u8bc1\u7684\u751f\u4ea7\u7ec4\u7ec7\u3002<samp>org create sandbox<\/samp><samp>org login<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org delete sandbox --target-org MyDevSandbox<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e0b\u4e00\u4e2a\uff1a<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5c06\u5143\u6570\u636e\u4ece\u6c99\u76d2\u68c0\u7d22\u5230\u672c\u5730 DX \u9879\u76ee\u3002<\/li>\n\n\n\n<li>\u76f4\u63a5\u5728\u6c99\u76d2\u4e2d\u8fdb\u884c\u5f00\u53d1\uff0c\u7136\u540e\u68c0\u7d22\u5bf9\u672c\u5730 DX \u7684\u66f4\u6539 \u9879\u76ee\u3002<\/li>\n\n\n\n<li>\u5c06\u672c\u5730\u66f4\u6539\u90e8\u7f72\u5230\u6c99\u76d2\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u8ddf\u8e2a\u9879\u76ee\u548c\u7ec4\u7ec7\u4e4b\u95f4\u7684\u66f4\u6539<\/h2>\n\n\n\n<p>\u4f7f\u7528\u6e90\u8ddf\u8e2a\u6765\u8ddf\u8e2a\u672c\u5730\u9879\u76ee\u4e0e\u4e34\u65f6\u7ec4\u7ec7\u4e4b\u95f4\u7684\u66f4\u6539\uff0c\u6216\u8005 \u521b\u5efa\u3001\u66f4\u65b0\u6216\u5220\u9664\u6e90\u4ee3\u7801\u65f6\u7684\u6c99\u76d2\u3002<\/p>\n\n\n\n<p>\u6e90\u8ddf\u8e2a\u5bf9\u7ec4\u7ec7\u6ca1\u6709\u76f4\u63a5\u5f71\u54cd;\u5b83\u4ec5\u5f71\u54cd\u60a8\u7684\u672c\u5730\u73af\u5883\u3002 \u5177\u4f53\u800c\u8a00\uff0cSalesforce CLI \u4f1a\u68c0\u67e5\u672c\u5730\u914d\u7f6e\u6587\u4ef6\u4ee5\u786e\u5b9a\u60a8\u662f\u5426\u5177\u6709 \u4e3a\u7279\u5b9a\u7ec4\u7ec7\u542f\u7528\u6e90\u8ddf\u8e2a\u3002\u5982\u679c\u6709\uff0c\u5219\u6e90\u8ddf\u8e2a\u64cd\u4f5c\u662f \u5728\u5904\u7406\u7ec4\u7ec7\u65f6\u6267\u884c\uff0c\u4f8b\u5982\u4f7f\u7528\u547d\u4ee4\u3002<samp>project deploy start<\/samp><\/p>\n\n\n\n<p>\u4e0d\u5e26\u6807\u5fd7\u7684\u547d\u4ee4 \u5728\u672c\u5730\u9879\u76ee\u548c\u76ee\u6807\u7ec4\u7ec7\u4e4b\u95f4\u90e8\u7f72\u6216\u68c0\u7d22\u6240\u6709\u66f4\u6539\u7684\u6e90\u3002\u67e5\u770b\u66f4\u591a \u7cbe\u7ec6\u63a7\u5236\uff0c\u4f7f\u7528\u6807\u5fd7\u6307\u5b9a\u7279\u5b9a\u7684\u5143\u6570\u636e\u7ec4\u4ef6\u3001\u5305\u76ee\u5f55\u6216 \u8981\u90e8\u7f72\u6216\u68c0\u7d22\u7684\u6e05\u5355\u6587\u4ef6\u3002\u6b64\u793a\u4f8b\u68c0\u7d22 Apex \u7c7b\uff1a<samp>project deploy|retrieve start<\/samp><samp>MyFabClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project retrieve start --metadata ApexClass:MyFabClass<\/code><\/pre>\n\n\n\n<p>\u9664\u4e86\u5217\u51fa\u60a8\u6240\u505a\u7684\u66f4\u6539\u5916\uff0c\u6e90\u8ddf\u8e2a\u8fd8\u53ef\u4ee5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u81ea\u52a8\u8ddf\u8e2a\u5bf9\u5143\u6570\u636e\u7ec4\u4ef6\u7684\u66f4\u6539\uff0c\u4f7f\u60a8\u514d\u4e8e\u8ddf\u8e2a\u5b83\u4eec \u624b\u52a8\u5730\u3002<\/li>\n\n\n\n<li>\u67e5\u770b\u5176\u4ed6\u5f00\u53d1\u4eba\u5458\u90e8\u7f72\u5230\u6c99\u76d2\u7684\u66f4\u6539\u3002<\/li>\n\n\n\n<li>\u90e8\u7f72\u6216\u68c0\u7d22\u66f4\u6539\u7684\u6e90\u3002<\/li>\n\n\n\n<li>\u8bc6\u522b\u5e76\u89e3\u51b3\u672c\u5730\u9879\u76ee\u4e0e\u4e34\u65f6\u7ec4\u7ec7\u6216\u6c99\u76d2\u4e4b\u95f4\u7684\u51b2\u7a81 \u5728\u90e8\u7f72\u6216\u68c0\u7d22\u6e90\u4e4b\u524d\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u8981\u67e5\u770b\u54ea\u4e9b\u5143\u6570\u636e\u7ec4\u4ef6\u652f\u6301\u6e90\u8ddf\u8e2a\uff0c\u8bf7\u67e5\u770b\u00a0\u5143\u6570\u636e\u8986\u76d6\u7387\u62a5\u544a\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u7ba1\u7406\u7ec4\u7ec7\u7684<\/strong><br>\u6e90\u8ddf\u8e2a \u4ec5\u5f53\u76ee\u6807\u7ec4\u7ec7\u5141\u8bb8\u65f6\uff0c\u6e90\u8ddf\u8e2a\u624d\u6709\u6548\u3002\u4e0d\u7528\u62c5\u5fc3\uff0c\u60a8\u4ecd\u7136\u53ef\u4ee5\u5728\u7ec4\u7ec7\u4e4b\u95f4\u90e8\u7f72\u6216\u68c0\u7d22\u5143\u6570\u636e\uff0c\u800c\u65e0\u9700\u8fdb\u884c\u6e90\u8ddf\u8e2a\u3002\u4f46\u662f\u8fd9\u4e9b\u547d\u4ee4\u4e0d\u4f1a\u68c0\u67e5\u51b2\u7a81\uff0c\u60a8\u5fc5\u987b\u4f7f\u7528\u9002\u5f53\u7684\u6807\u5fd7\uff08\u5982 \u6216 \uff09\u51c6\u786e\u6307\u5b9a\u8981\u90e8\u7f72\u6216\u68c0\u7d22\u7684\u5185\u5bb9\u3002<samp>&#8211;source-dir&#8211;metadata<\/samp><\/li>\n\n\n\n<li><strong>\u9884\u89c8\u6e90\u8ddf\u8e2a<\/strong><br>\u6807\u8bc6\u7684\u66f4\u6539 \u8981\u67e5\u770b\u672c\u5730\u9879\u76ee\u4e0e\u76ee\u6807\u7ec4\u7ec7\u4e4b\u95f4\u7684\u66f4\u6539\uff0c\u8bf7\u5bfc\u822a\u5230\u8981\u67e5\u770b\u5176\u66f4\u6539\u7684\u9879\u76ee\u76ee\u5f55\u3002\u7136\u540e\u8fd0\u884c\u5176\u4e2d\u4e00\u4e2a\u9884\u89c8\u547d\u4ee4\uff0c\u8be5\u547d\u4ee4\u663e\u793a\u9879\u76ee\u4e2d\u53ef\u90e8\u7f72\u5230\u7ec4\u7ec7\u7684\u672c\u5730\u66f4\u6539\uff0c\u6216\u53ef\u68c0\u7d22\u7684\u7ec4\u7ec7\u66f4\u6539\u3002<\/li>\n\n\n\n<li><strong>\u90e8\u7f72\u548c\u68c0\u7d22\u6e90\u8ddf\u8e2a<\/strong><br>\u6807\u8bc6\u7684\u66f4\u6539 \u521b\u5efa Salesforce \u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u901a\u5e38\u540c\u65f6\u4f7f\u7528\u4f4e\u4ee3\u7801\u548c\u4e13\u4e1a\u4ee3\u7801\u6280\u672f\u3002\u4f4e\u4ee3\u7801\u7684\u4e00\u4e2a\u793a\u4f8b\u662f\u4f7f\u7528 Setup \u76f4\u63a5\u5728\u7ec4\u7ec7\u4e2d\u521b\u5efa\u81ea\u5b9a\u4e49\u5bf9\u8c61\u3002pro-code \u7684\u4e00\u4e2a\u793a\u4f8b\u662f\u4f7f\u7528 IDE\uff08\u5982 VS Code\uff09\u5728\u672c\u5730\u9879\u76ee\u4e2d\u521b\u5efa Apex \u7c7b\u3002\u5728\u60a8\u5de5\u4f5c\u65f6\uff0c\u6e90\u8ddf\u8e2a\u4f1a\u8bc6\u522b\u66f4\u6539\uff0c\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u4f7f\u7ec4\u7ec7\u4e2d\u7684\u8fdc\u7a0b\u5143\u6570\u636e\u4e0e\u672c\u5730\u9879\u76ee\u4e2d\u7684\u6e90\u4fdd\u6301\u540c\u6b65\u3002<\/li>\n\n\n\n<li>\u89e3\u51b3\u672c\u5730\u9879\u76ee<strong>\u4e0e\u7ec4\u7ec7<\/strong><br>\u4e4b\u95f4\u7684\u51b2\u7a81 \u6700\u4f73\u505a\u6cd5\u662f\uff0c\u5982\u679c\u672c\u5730\u9879\u76ee\u6216\u7ec4\u7ec7\u4e2d\u7684\u7ec4\u4ef6\u5b58\u5728\u51b2\u7a81\uff0c\u8bf7\u5728\u7ee7\u7eed\u64cd\u4f5c\u4e4b\u524d\u89e3\u51b3\u8fd9\u4e9b\u51b2\u7a81\u3002\u60a8\u53ef\u4ee5\u624b\u52a8\u89e3\u51b3\u51b2\u7a81\uff0c\u4e5f\u53ef\u4ee5\u7528\u7ec4\u4ef6\u7684\u4e00\u4e2a\u7248\u672c\u8986\u76d6\u53e6\u4e00\u4e2a\u7248\u672c\u3002\u4ec5\u5f53\u60a8\u786e\u5b9a\u65b0\u7248\u672c\u662f\u8981\u4f7f\u7528\u7684\u7248\u672c\u65f6\uff0c\u624d\u8986\u76d6\u66f4\u6539\u3002<\/li>\n\n\n\n<li><strong>\u901a\u8fc7\u67e5\u8be2 SourceMember \u5bf9\u8c61\u83b7\u53d6\u66f4\u6539\u4fe1\u606f<\/strong>\u00a0\u82e5\u8981\u4e86\u89e3\u6709\u5173\u5f00\u53d1\u4eba\u5458\u7ec4\u7ec7\u4e2d\u6e90\u8ddf\u8e2a\u66f4\u6539\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u67e5\u8be2 SourceMember Tooling API \u5bf9\u8c61<br>\uff0c\u4ee5\u4e86\u89e3\u8fdb\u884c\u4e86\u54ea\u4e9b\u66f4\u6539\u4ee5\u53ca\u8c01\u8fdb\u884c\u4e86\u66f4\u6539\u3002Salesforce CLI \u4f7f\u7528 SourceMember \u5bf9\u8c61\u6765\u67e5\u770b\u7ec4\u7ec7\u4e2d\u7684\u66f4\u6539\uff0c\u4f5c\u4e3a\u5176\u6e90\u8ddf\u8e2a\u529f\u80fd\u7684\u4e00\u90e8\u5206\u3002<\/li>\n\n\n\n<li>\u6700\u4f73\u505a\u6cd5 \u9075\u5faa\u8fd9\u4e9b<strong>\u6700\u4f73\u505a\u6cd5<\/strong><br>\uff0c\u5145\u5206\u5229\u7528\u6e90\u8ddf\u8e2a\u3002<\/li>\n\n\n\n<li>\u6e90\u8ddf\u8e2a\u7684\u6027\u80fd\u6ce8\u610f\u4e8b\u9879 \u6e90\u8ddf\u8e2a\u6267\u884c\u989d\u5916\u7684\u529f\u80fd\u6765\u786e\u5b9a\u5bf9<strong>\u6e90\u8ddf\u8e2a<\/strong><br>\u7ec4\u4ef6\u7684\u66f4\u6539\uff0c\u4f8b\u5982\u8fd0\u884c\u66f4\u591a\u67e5\u8be2\u548c\u7b49\u5f85 SourceMember \u5de5\u5177 API \u5bf9\u8c61\u5728\u90e8\u7f72\u540e\u66f4\u65b0\u3002\u56e0\u6b64\uff0c\u5728\u5904\u7406\u5927\u4e2d\u578b\u9879\u76ee\u65f6\uff0c\u67d0\u4e9b\u547d\u4ee4\u53ef\u80fd\u9700\u8981\u66f4\u957f\u7684\u65f6\u95f4\u624d\u80fd\u8fd0\u884c\u3002\u5982\u679c\u60a8\u6b63\u5728\u5904\u7406\u5c0f\u578b\u9879\u76ee\uff0c\u60a8\u4e0d\u4f1a\u6ce8\u610f\u5230\u4efb\u4f55\u901f\u5ea6\u53d8\u6162\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ba1\u7406\u7ec4\u7ec7\u7684\u6e90\u8ddf\u8e2a<\/h2>\n\n\n\n<p>\u6e90\u8ddf\u8e2a\u4ec5\u5728\u76ee\u6807\u7ec4\u7ec7\u5141\u8bb8\u7684\u60c5\u51b5\u4e0b\u624d\u8d77\u4f5c\u7528\u3002\u522b\u62c5\u5fc3\uff0c\u4f60\u4ecd\u7136\u53ef\u4ee5 \u5728\u4e0d\u8fdb\u884c\u6e90\u8ddf\u8e2a\u7684\u60c5\u51b5\u4e0b\u5c06\u5143\u6570\u636e\u90e8\u7f72\u5230\u7ec4\u7ec7\u6216\u4ece\u7ec4\u7ec7\u68c0\u7d22\u5143\u6570\u636e\u3002\u4f46\u662f\u547d\u4ee4 \u4e0d\u8981\u68c0\u67e5\u51b2\u7a81\uff0c\u5e76\u4e14\u5fc5\u987b\u51c6\u786e\u6307\u5b9a\u8981\u90e8\u7f72\u6216\u68c0\u7d22\u7684\u5185\u5bb9 \u4f7f\u7528\u9002\u5f53\u7684\u6807\u5fd7\uff0c\u4f8b\u5982 \u6216 .<\/p>\n\n\n\n<p><samp>&#8211;source-dir<\/samp><samp>&#8211;metadata<\/samp><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u652f\u6301\u6e90\u8ddf\u8e2a\u7684\u7ec4\u7ec7\u7248\u672c<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Developer Edition \u7ec4\u7ec7\u3001\u751f\u4ea7\u7ec4\u7ec7\u3001\u90e8\u5206\u590d\u5236\u6c99\u7bb1\u548c\u5b8c\u6574 \u6c99\u76d2 &#8211; \u4e0d\u652f\u6301\u6e90\u8ddf\u8e2a\u3002<\/li>\n\n\n\n<li>Developer \u548c Developer Pro \u6c99\u76d2 &#8211; \u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u652f\u6301\u6e90\u8ddf\u8e2a \u5176\u5173\u8054\u7684\u751f\u4ea7\u7ec4\u7ec7\u5df2\u542f\u7528\u6e90\u8ddf\u8e2a\u3002<\/li>\n\n\n\n<li>\u4e34\u65f6\u7ec4\u7ec7 &#8211; \u59cb\u7ec8\u652f\u6301\u6765\u6e90\u8ffd\u8e2a\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ba1\u7406\u65b0\u7ec4\u7ec7\u4e2d\u7684\u6e90\u8ddf\u8e2a<\/h2>\n\n\n\n<p>Scratch Orgs \u6709\u6e90\u4ee3\u7801 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u542f\u7528\u8ddf\u8e2a\u3002\u5bf9\u4e8e Developer \u548c Developer Pro \u6c99\u76d2\uff0c\u6e90 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u53ea\u8981\u5176\u5173\u8054\u7684\u751f\u4ea7\u7ec4\u7ec7\u5177\u6709 \u5df2\u542f\u7528\u6e90\u8ddf\u8e2a\u3002<\/p>\n\n\n\n<p>\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\uff0c\u60a8\u53ef\u4ee5\u9009\u62e9\u9000\u51fa\u6765\u6e90\u8ddf\u8e2a \u901a\u8fc7\u6307\u5b9a\u547d\u4ee4\u7684\u6807\u5fd7\u6765\u521b\u5efa\u4e34\u65f6\u7ec4\u7ec7\u6216\u6c99\u7bb1\u3002\u6b64\u6807\u5fd7\u4ec5\u5f71\u54cd\u60a8\u7684\u672c\u5730 \u914d\u7f6e\uff0c\u800c\u4e0d\u662f\u7ec4\u7ec7\u672c\u8eab\u3002Salesforce CLI \u5c06\u672c\u5730\u914d\u7f6e\u9009\u9879\u8bbe\u7f6e\u4e3a \u5411\u7ec4\u7ec7\u63d0\u4f9b\u6388\u6743\u4fe1\u606f\u3002\u5982\u679c\u60a8\u6ce8\u9500\u7ec4\u7ec7\uff0c\u7136\u540e\u91cd\u65b0\u767b\u5f55 \u540c\u6837\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f1a\u518d\u6b21\u542f\u7528\u6e90\u8ddf\u8e2a\u3002<samp>&#8211;no-track-source<\/samp><samp>org create scratch|sandbox<\/samp><samp>trackSource: false<\/samp><\/p>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u521b\u5efa \u5177\u6709\u6e90\u4ee3\u7801\u8ddf\u8e2a\u529f\u80fd\u7684 Scratch \u7ec4\u7ec7 \u7981\u7528\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org create scratch --target-dev-hub=MyHub --definition-file config\/project-scratch-def.json --no-track-source<\/code><\/pre>\n\n\n\n<p>\u8fd9\u662f \u6c99\u76d2 \u4f8b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org create sandbox --definition-file config\/dev-sandbox-def.json --target-org prodOrg --no-track-source<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ba1\u7406\u73b0\u6709\u7ec4\u7ec7\u4e2d\u7684\u6e90\u8ddf\u8e2a<\/h2>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u65b9\u5f0f\u66f4\u6539\u73b0\u6709\u4e34\u65f6\u7ec4\u7ec7\u6216\u6c99\u76d2\u662f\u5426\u5141\u8bb8\u6e90\u8ddf\u8e2a \u8fd9\u4e24\u4e2a\u547d\u4ee4\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><samp>org enable tracking<\/samp>\uff1a\u5141\u8bb8 Salesforce CLI \u4ee5\u8ddf\u8e2a\u9879\u76ee\u4e0e\u7ec4\u7ec7\u4e4b\u95f4\u6e90\u6587\u4ef6\u4e2d\u7684\u66f4\u6539\u3002<\/li>\n\n\n\n<li><samp>org disable tracking<\/samp>\uff1a\u963b\u6b62 Salesforce CLI \u4ece\u8ddf\u8e2a\u9879\u76ee\u548c \u7ec4\u7ec7\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u6b64\u793a\u4f8b\u8bf4\u660e\u5982\u4f55\u5728\u5177\u6709\u522b\u540d\u7684\u7ec4\u7ec7\u4e2d\u542f\u7528\u6e90\u8ddf\u8e2a;\u5982\u679c\u7ec4\u7ec7 \u4e0d\u652f\u6301\u8ddf\u8e2a\uff0c\u4f8b\u5982\u5b8c\u6574\u6c99\u76d2\u3002<samp>mySandbox<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org enable tracking --target-org mySandbox<\/code><\/pre>\n\n\n\n<p>\u5047\u8bbe\u60a8\u6709\u4e00\u4e2a\u7528\u4e8e\u96c6\u6210\u6d4b\u8bd5\u7684\u6c99\u76d2\uff0c\u5e76\u4e14\u60a8\u5e0c\u671b \u5c06\u6e90\u90e8\u7f72\u5230\u5b83\uff0c\u4f46\u4e0d\u8981\u7b49\u5f85\u8ddf\u8e2a\u64cd\u4f5c\u3002\u6b64\u793a\u4f8b\u6f14\u793a\u5982\u4f55 \u5728\u5177\u6709\u522b\u540d\u7684\u7ec4\u7ec7\u4e0a\u7981\u7528\u6e90\u8ddf\u8e2a\uff1a<samp>mySandbox<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf org disable tracking --target-org mySandbox<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u9884\u89c8\u6e90\u8ddf\u8e2a\u6807\u8bc6\u7684\u66f4\u6539<\/h2>\n\n\n\n<p>\u8981\u67e5\u770b\u672c\u5730\u9879\u76ee\u4e0e\u76ee\u6807\u7ec4\u7ec7\u4e4b\u95f4\u7684\u66f4\u6539\uff0c\u8bf7\u5bfc\u822a\u5230\u9879\u76ee \u8981\u67e5\u770b\u5176\u66f4\u6539\u7684\u76ee\u5f55\u3002\u7136\u540e\u8fd0\u884c\u5176\u4e2d\u4e00\u4e2a\u9884\u89c8\u547d\u4ee4\uff0c\u8be5\u547d\u4ee4\u663e\u793a \u9879\u76ee\u4e2d\u53ef\u4ee5\u90e8\u7f72\u5230\u7ec4\u7ec7\u7684\u672c\u5730\u66f4\u6539\uff0c\u4e5f\u53ef\u4ee5\u662f\u7ec4\u7ec7\u66f4\u6539 \u53ef\u4ee5\u68c0\u7d22\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5728\u7ec8\u7aef\u6216\u547d\u4ee4\u7a97\u53e3\u4e2d\uff0c\u5bfc\u822a\u5230\u9879\u76ee\u76ee\u5f55\u3002\u5728\u6b64\u793a\u4f8b\u4e2d\uff0c \u76ee\u5f55\u540d\u4e3a MyProject\u3002<code>cd \/Users\/joe\/dx-projects\/MyProject<\/code><\/li>\n\n\n\n<li>\u82e5\u8981\u67e5\u770b\u9879\u76ee\u548c\u7ec4\u7ec7\u4e4b\u95f4\u7684\u66f4\u6539\uff0c\u8bf7\u8fd0\u884c\u9879\u76ee<samp>\u90e8\u7f72\u9884\u89c8\u7248<\/samp>\u6216<samp>\u9879\u76ee \u68c0\u7d22\u9884\u89c8<\/samp>\u547d\u4ee4\u3002\u5305\u62ec &#8212;<samp>target-org<\/samp>&nbsp;\u6807\u5fd7\u4ee5\u6307\u5b9a\u4e34\u65f6\u7ec4\u7ec7\u6216\u6c99\u7bb1\u7684\u7528\u6237\u540d\u6216\u522b\u540d \u8981\u4e0e\u672c\u5730\u9879\u76ee\u8fdb\u884c\u6bd4\u8f83\u3002\u5728\u6b64\u793a\u4f8b\u4e2d\uff0c\u8be5\u547d\u4ee4\u663e\u793a \u53ef\u4ee5\u4f7f\u7528\u522b\u540d&nbsp;<samp>DevSandbox<\/samp>&nbsp;\u90e8\u7f72\u5230\u6c99\u76d2\u7684\u672c\u5730\u66f4\u6539\u3002<code>sf project deploy preview --target-org DevSandbox<\/code>\u540c\u6837\uff0c\u6b64\u793a\u4f8b\u663e\u793a\u6c99\u76d2\u4e2d\u53ef\u68c0\u7d22\u7684\u8fdc\u7a0b\u66f4\u6539 \u8fd4\u56de\u5230\u672c\u5730\u9879\u76ee\u3002<code>sf project retrieve preview --target-org DevSandbox<\/code>\u8be5\u547d\u4ee4\u63a5\u53d7 \u3001 \u3001 \u548c\u6807\u5fd7\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u5b83\u4eec\u6765\u9884\u89c8\u66f4\u591a\u5185\u5bb9 \u7cbe\u7ec6\u90e8\u7f72\u3002\u6b64\u793a\u4f8b\u4ec5\u9884\u89c8\u5143\u6570\u636e\u7684\u90e8\u7f72\uff1a<samp>project deploy preview<\/samp><samp>&#8211;metadata<\/samp><samp>&#8211;source-dir<\/samp><samp>&#8211;manifest<\/samp><samp>ApexClass<\/samp><code>sf project deploy preview --metadata ApexClass --target-org DevSandbox<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u6b64\u793a\u4f8b\u8f93\u51fa\u663e\u793a \u5bf9 Apex \u7c7b\u8fdb\u884c\u4e86\u5c40\u90e8\u66f4\u6539\uff0c\u5e76\u4e14 WidgetObject__c\u53ef\u4ee5\u90e8\u7f72\u5230\u7ec4\u7ec7\u7684\u81ea\u5b9a\u4e49\u5bf9\u8c61\u3002<samp>project deploy preview<\/samp><samp>WidgetClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy preview --target-org DevSandbox\n\nNo conflicts found.\n\nNo files will be deleted.\n\nWill Deploy &#91;2] files.\n Type         Fullname        Path                                                                           \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n ApexClass    WidgetClass     force-app\/main\/default\/classes\/WidgetClass.cls-meta.xml                        \n CustomObject WidgetObject__c force-app\/main\/default\/objects\/WidgetObject__c\/WidgetObject__c.object-meta.xml \n\nNo files were ignored. Update your .forceignore file if you want to ignore certain files.<\/code><\/pre>\n\n\n\n<p>\u6b64\u793a\u4f8b\u8f93\u51fa\u663e\u793a \u5bf9 Apex \u7c7b\u8fdb\u884c\u4e86\u8fdc\u7a0b\u66f4\u6539\uff0c\u5e76\u4e14 GizmoObject__c\u53ef\u4ee5\u4ece\u7ec4\u7ec7\u68c0\u7d22\u5230\u672c\u5730\u7684\u81ea\u5b9a\u4e49\u5bf9\u8c61\uff08\u53ca\u5176\u5e03\u5c40\uff09 \u9879\u76ee\u3002\u8f93\u51fa\u8fd8\u663e\u793a\u9879\u76ee\u548c\u7ec4\u7ec7\u4e4b\u95f4\u6ca1\u6709\u51b2\u7a81\u3002<samp>project retrieve preview<\/samp><samp>GizmoClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project retrieve preview --target-org DevSandbox\n\nNo conflicts found.\n\nNo files will be deleted.\n\nWill Retrieve &#91;3] files.\n Type         Fullname                          Path \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500 \n Layout       GizmoObject__c-GizmoObject Layout      \n CustomObject GizmoObject__c                         \n ApexClass    GizmoClass                             \n\nIgnored &#91;2] files. These files won't retrieve because they're ignored by your .forceignore file.\n Type    Fullname                            Path \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500 \n Profile Admin                                    \n Profile B2B Reordering Portal Buyer Profile<\/code><\/pre>\n\n\n\n<p>\u9884\u89c8\u547d\u4ee4\u4f7f\u7528\u5305\u542b\u4e09\u5217\u7684\u66f4\u6539\u4fe1\u606f\u8868\uff1aType\u3001Fullname \u548c \u8def\u5f84\u3002\u6bcf\u884c\u4ee3\u8868\u4e00\u4e2a\u66f4\u6539\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><dfn>Type<\/dfn>&nbsp;\u662f\u5df2\u66f4\u6539\u7ec4\u4ef6\u7684\u5143\u6570\u636e\u7c7b\u578b\u3002\u5b83\u63cf\u8ff0\u4e86\u7ec4\u4ef6\u7684\u5185\u5bb9 \u662f\uff0c\u4f8b\u5982 Apex \u7c7b\u6216\u81ea\u5b9a\u4e49\u5bf9\u8c61\u3002<\/li>\n\n\n\n<li><dfn>Fullname<\/dfn>&nbsp;\u662f\u7ec4\u4ef6\u7684 API \u540d\u79f0\u3002<\/li>\n\n\n\n<li><dfn>\u8def\u5f84<\/dfn>\u662f\u7ec4\u4ef6\u5728\u672c\u5730\u9879\u76ee\u4e2d\u7684\u4f4d\u7f6e\u3002\u5982\u679c\u4e3a\u7a7a\uff0c\u5219 \u7ec4\u4ef6\u5728\u672c\u5730\u9879\u76ee\u4e2d\u4e0d\u5b58\u5728\u3002\u5f53\u7a7a\u767d\u65f6\uff0c\u901a\u5e38\u610f\u5473\u7740\u7ec4\u4ef6\u662f \u5b58\u5728\u4e8e\u7ec4\u7ec7\u4e2d\uff0c\u4f46\u4e0d\u5b58\u5728\u4e8e\u672c\u5730\u9879\u76ee\u4e2d\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u5982\u679c\u6e90\u8ddf\u8e2a\u672a\u68c0\u6d4b\u5230\u4efb\u4f55\u66f4\u6539\uff0c\u5219\u9884\u89c8\u547d\u4ee4\u5c06\u8fd4\u56de\u4e00\u6761\u8bed\u53e5 \u8c1a\u8bed\u3002<samp>No results found<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>=== Source Status\nNo results found<\/code><\/pre>\n\n\n\n<p>\u5728\u672c\u5730\u9879\u76ee\u548c\u7ec4\u7ec7\u4e2d\u9884\u89c8\u6e90\u4e2d\u7684\u66f4\u6539\u540e\uff0c\u5373\u53ef \u90e8\u7f72\u6216\u68c0\u7d22\u5e76\u89e3\u51b3\u6f5c\u5728\u51b2\u7a81\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u90e8\u7f72\u548c\u68c0\u7d22\u6e90\u8ddf\u8e2a\u6807\u8bc6\u7684\u66f4\u6539<\/h2>\n\n\n\n<p>\u521b\u5efa Salesforce \u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u901a\u5e38\u540c\u65f6\u4f7f\u7528\u4f4e\u4ee3\u7801\u548c\u4e13\u4e1a\u4ee3\u7801 \u6280\u672f\u3002\u4f4e\u4ee3\u7801\u7684\u4e00\u4e2a\u793a\u4f8b\u662f\u4f7f\u7528 Setup \u76f4\u63a5\u5728\u7ec4\u7ec7\u4e2d\u521b\u5efa\u81ea\u5b9a\u4e49\u5bf9\u8c61\u3002 pro-code \u7684\u4e00\u4e2a\u793a\u4f8b\u662f\u4f7f\u7528 IDE\uff08\u5982 VS\uff09\u5728\u672c\u5730\u9879\u76ee\u4e2d\u521b\u5efa Apex \u7c7b \u6cd5\u5178\u3002\u5728\u60a8\u5de5\u4f5c\u65f6\uff0c\u6e90\u8ddf\u8e2a\u4f1a\u8bc6\u522b\u66f4\u6539\uff0c\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u5c06\u8fdc\u7a0b\u5143\u6570\u636e\u4fdd\u7559\u5728 \u7ec4\u7ec7\u4e0e\u672c\u5730\u9879\u76ee\u4e2d\u7684\u6e90\u540c\u6b65\u3002<\/p>\n\n\n\n<p>\u8be5\u8fc7\u7a0b\u662f\u8fed\u4ee3\u7684\u3002\u9996\u5148\uff0c\u9884\u89c8\u8fdc\u7a0b\u548c\u672c\u5730\u66f4\u6539\u3002\u5982\u679c\u5b58\u5728\u51b2\u7a81\uff0c \u4f60\u89e3\u51b3\u5b83\u4eec\u3002\u73b0\u5728\uff0c\u60a8\u5fc5\u987b\u786e\u4fdd\u8fd9\u4e9b\u66f4\u6539\u540c\u65f6\u5b58\u5728\u4e8e\u7ec4\u7ec7\u548c\u672c\u5730 \u9879\u76ee\u3002\u56e0\u6b64\uff0c\u60a8\u53ef\u4ee5\u68c0\u7d22\u5230\u672c\u5730\u9879\u76ee\u7684\u8fdc\u7a0b\u66f4\u6539\uff0c\u7136\u540e\u5c06\u5b83\u4eec\u63a8\u9001\u5230 \u6e90\u4ee3\u7801\u7ba1\u7406\u5b58\u50a8\u5e93\uff0c\u4ee5\u786e\u4fdd\u6e90\u4ee3\u7801\u7ba1\u7406\u7cfb\u7edf\u5305\u542b\u6240\u6709\u66f4\u6539 \u5e76\u4e14\u662f\u5386\u53f2\u771f\u76f8\u7684\u6e90\u6cc9\u3002\u5c06\u672c\u5730\u66f4\u6539\uff08\u5982 Apex \u4ee3\u7801\uff09\u90e8\u7f72\u5230 \u7ec4\u7ec7\uff0c\u4ee5\u4fbf\u60a8\u53ef\u4ee5\u9a8c\u8bc1\u548c\u6d4b\u8bd5\u5b83\u3002\u4f60\u4e0d\u65ad\u8fed\u4ee3\u8fd9\u4e2a\u8fc7\u7a0b\uff0c\u76f4\u5230\u4f60 \u5b8c\u6210 Salesforce \u5e94\u7528\u7a0b\u5e8f\u7684\u5f00\u53d1\u3002<\/p>\n\n\n\n<p>\u8981\u4e86\u89e3\u6e90\u8ddf\u8e2a\u7684\u5b9e\u9645\u6548\u679c\uff0c\u8ba9\u6211\u4eec\u770b\u4e00\u4e9b\u793a\u4f8b\u3002<\/p>\n\n\n\n<p>\u5047\u8bbe\u60a8\u8fd0\u884c\u5e76\u770b\u5230\u8fdc\u7a0b \u53d8\u5316\u3002<samp>project retrieve preview<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project retrieve preview --target-org DevSandbox\n\nNo conflicts found.\n\nNo files will be deleted.\n\nWill Retrieve &#91;3] files.\n Type         Fullname                          Path \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500 \n Layout       GizmoObject__c-GizmoObject Layout      \n CustomObject GizmoObject__c                         \n ApexClass    GizmoClass                             \n\nIgnored &#91;2] files. These files won't retrieve because they're ignored by your .forceignore file.\n Type    Fullname                            Path \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500 \n Profile Admin                                    \n Profile B2B Reordering Portal Buyer Profile<\/code><\/pre>\n\n\n\n<p>\u4f7f\u7528\u547d\u4ee4\u5c06\u7ec4\u7ec7\u4e2d\u7684\u66f4\u6539\u68c0\u7d22\u5230\u672c\u5730\u9879\u76ee\u3002\u73b0\u5728\u7ec4\u4ef6\u5df2\u5728\u672c\u5730\u521b\u5efa\uff0c \u201c\u8def\u5f84\u201d\u5217\u5177\u6709\u4e00\u4e2a\u503c\uff0c\u5b83\u5305\u542b\u9ed8\u8ba4\u5305\u76ee\u5f55\u3002<samp>project retrieve start<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project retrieve start --target-org DevSandbox\nPreparing retrieve request... \u28df Sending request to org\nPreparing retrieve request... Succeeded\n\nRetrieved Source\n=========================================================================================================================================\n| State   Name                              Type         Path                                                                             \n| \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n| Created GizmoClass                        ApexClass    force-app\/main\/default\/classes\/GizmoClass.cls                                    \n| Created GizmoClass                        ApexClass    force-app\/main\/default\/classes\/GizmoClass.cls-meta.xml                           \n| Created GizmoObject__c                    CustomObject force-app\/main\/default\/objects\/GizmoObject__c\/GizmoObject__c.object-meta.xml     \n| Created GizmoObject__c-GizmoObject Layout Layout       force-app\/main\/default\/layouts\/GizmoObject__c-GizmoObject Layout.layout-meta.xml<\/code><\/pre>\n\n\n\n<p>\u68c0\u7d22\u6e90\u540e\uff0c\u518d\u6b21\u8fd0\u884c\u3002\u73b0\u5728\uff0c\u6e90\u8ddf\u8e2a\u62a5\u544a\u6ca1\u6709\u53ef\u68c0\u7d22\u7684\u5185\u5bb9\u3002<samp>project retrieve preview<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project retrieve preview \n\nNo conflicts found.\n\nNo files will be deleted.\n\nNo files will be retrieved.\n\nIgnored &#91;2] files. These files won't retrieve because they're ignored by your .forceignore file.\n Type    Fullname                            Path \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500 \n Profile Admin                                    \n Profile B2B Reordering Portal Buyer Profile<\/code><\/pre>\n\n\n\n<p>\u73b0\u5728\u8ba9\u6211\u4eec\u770b\u4e00\u4e0b\u90e8\u7f72\u3002\u8981\u9884\u89c8\u672c\u5730\u66f4\u6539\uff0c\u8bf7\u8fd0\u884c \u3002<samp>project deploy preview<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy preview --target-org DevSandbox\n\nNo conflicts found.\n\nNo files will be deleted.\n\nWill Deploy &#91;2] files.\n Type         Fullname        Path                                                                           \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n ApexClass    WidgetClass     force-app\/main\/default\/classes\/WidgetClass.cls-meta.xml                        \n CustomObject WidgetObject__c force-app\/main\/default\/objects\/WidgetObject__c\/WidgetObject__c.object-meta.xml \n\nNo files were ignored. Update your .forceignore file if you want to ignore certain files.<\/code><\/pre>\n\n\n\n<p>\u7136\u540e\u90e8\u7f72\u672c\u5730\u66f4\u6539\u3002\u90e8\u7f72\u5230\u6c99\u76d2\u540e\uff0c\u5176\u4ed6\u4f7f\u7528 \u6c99\u76d2\u53ef\u4ee5\u770b\u5230\u60a8\u7684\u66f4\u6539\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy start --target-org DevSandbox\nDeploying v59.0 metadata to test-ikspctiorkzs@example.com using the v59.0 SOAP API.\nDeploy ID: 0Af8D00000pNmKySAK\nStatus: Succeeded | \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 2\/2 Components (Errors:0) | 0\/0 Tests (Errors:0)\n\nDeployed Source\n=====================================================================================================================\n| State   Name            Type         Path                                                                           \n| \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n| Created WidgetClass     ApexClass    force-app\/main\/default\/classes\/WidgetClass.cls                                 \n| Created WidgetClass     ApexClass    force-app\/main\/default\/classes\/WidgetClass.cls-meta.xml                        \n| Created WidgetObject__c CustomObject force-app\/main\/default\/objects\/WidgetObject__c\/WidgetObject__c.object-meta.xml<\/code><\/pre>\n\n\n\n<p>\u518d\u6b21\u8fd0\u884c\u3002<samp>project deploy preview<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy preview\n\nNo conflicts found.\n\nNo files will be deleted.\n\nNo files will be deployed.\n\nNo files were ignored. Update your .forceignore file if you want to ignore certain files.<\/code><\/pre>\n\n\n\n<p>\u8be5\u547d\u4ee4\u62a5\u544a\u6ca1\u6709\u8981\u90e8\u7f72\u7684\u5185\u5bb9\uff0c\u6307\u793a\u60a8\u7684\u672c\u5730\u9879\u76ee\u548c\u7ec4\u7ec7 \u662f\u540c\u6b65\u7684\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4f7f\u7528\u6e90\u8ddf\u8e2a\u68c0\u7d22\u5bf9\u914d\u7f6e\u6587\u4ef6\u7684<strong>\u66f4\u6539 \u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u7684\u884c\u4e3a\u4e0e\u6e90\u8ddf\u8e2a<\/strong><br>\u7565\u6709\u4e0d\u540c\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u6e90\u8ddf\u8e2a\u68c0\u7d22\u5bf9\u914d\u7f6e\u6587\u4ef6\u7684\u66f4\u6539<\/h2>\n\n\n\n<p>\u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u7684\u884c\u4e3a\u4e0e\u6e90\u8ddf\u8e2a\u7565\u6709\u4e0d\u540c\u3002<\/p>\n\n\n\n<p>\u91cd\u8981<\/p>\n\n\n\n<p>\u901a\u5e38\uff0c\u6211\u4eec\u5efa\u8bae\u60a8\u4f7f\u7528\u6743\u9650\u96c6\u800c\u4e0d\u662f \u914d\u7f6e \u6587\u4ef6\u3002\u914d\u7f6e\u6587\u4ef6\u5728\u7ec4\u7ec7\u4e4b\u95f4\u4e0d\u4e00\u81f4\uff0c\u68c0\u7d22\u5230\u7684\u6e90\u6587\u4ef6\u548c \u90e8\u7f72\u53d6\u51b3\u4e8e\u7ec4\u7ec7\u7c7b\u578b\u3001\u8ddf\u8e2a\u72b6\u6001\u548c\u64cd\u4f5c\u4e2d\u7684\u5176\u4ed6\u5143\u6570\u636e\u3002\u5982\u679c \u60a8\u51b3\u5b9a\u7ee7\u7eed\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\uff0c\u6211\u4eec\u5efa\u8bae\u60a8\u5728\u90e8\u7f72\u6216 \u901a\u8fc7\u5c06\u5b83\u4eec\u6dfb\u52a0\u5230\u6587\u4ef6\u4e2d\u8fdb\u884c\u68c0\u7d22\u3002<samp>.forceignore<\/samp><\/p>\n\n\n\n<p>\u5982\u679c\u6ca1\u6709\u6e90\u8ddf\u8e2a\uff0c\u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u53ea\u4f1a\u8fd4\u56de\u4e00\u4e9b\u914d\u7f6e\u6587\u4ef6\u4fe1\u606f\u3002 \u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u5c06\u8fd4\u56de\u4e0e\u6307\u5b9a\u5176\u4ed6\u9879\u76ee\u76f8\u5173\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u76f8\u5173\u4fe1\u606f \u5728\u6587\u4ef6\u4e2d\u3002<samp>package.xml<\/samp><\/p>\n\n\n\n<p>\u4f8b\u5982\uff0c\u4f7f\u7528\u6b64\u6587\u4ef6\u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u5c06\u8fd4\u56de\u5e10\u6237\u4e0aMyCustomField__c\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7684\u914d\u7f6e\u6587\u4ef6\u6743\u9650 \u5bf9\u8c61\u3002<samp>package.xml<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;Package xmlns=\"http:\/\/soap.sforce.com\/2006\/04\/metadata\"&gt;\n &lt;types&gt;\n  &lt;members&gt;Account.MyCustomField__c&lt;\/members&gt;\n  &lt;name&gt;CustomField&lt;\/name&gt;\n &lt;\/types&gt;\n &lt;types&gt;\n  &lt;members&gt;*&lt;\/members&gt;\n  &lt;name&gt;Profile&lt;\/name&gt;\n &lt;\/types&gt;\n &lt;version&gt;50.0&lt;\/version&gt;\n&lt;\/Package&gt;<\/code><\/pre>\n\n\n\n<p>\u901a\u8fc7\u6e90\u8ddf\u8e2a\uff0c\u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u4f1a\u8fd4\u56de\u4e0e\u4efb\u4f55\u5185\u5bb9\u76f8\u5173\u7684\u914d\u7f6e\u6587\u4ef6\u4fe1\u606f \u6587\u4ef6\u4e2d\u6307\u5b9a\u7684 else \u52a0\u4e0a any \u901a\u8fc7\u6e90\u8ddf\u8e2a\u8ddf\u8e2a\u7ec4\u4ef6\u3002\u8fd9\u5305\u62ec\u66f4\u6539\u7684\u4efb\u4f55\u5b9e\u4f53 \u5b58\u5728\u4e8e\u672c\u5730\u9879\u76ee\u548c\u7ec4\u7ec7\u4e4b\u95f4\u3002<samp>package.xml<\/samp><\/p>\n\n\n\n<p>\u4f8b\u5982\uff0c\u5047\u8bbe\u60a8\u5728 Opportunity \u5bf9\u8c61\u4e0a\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3a OppCustomField__c \u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5 \u5728\u672c\u5730\u73af\u5883\u4e2d\u3002\u6e90\u8ddf\u8e2a\u68c0\u6d4b\u5230\u66f4\u6539\u5e76\u62a5\u544a\u5b83\u3002\u73b0\u5728\u60a8\u68c0\u7d22 \u914d\u7f6e\u6587\u4ef6\u4f7f\u7528\u4e0e\u4ee5\u4e0b\u60c5\u51b5\u76f8\u540c\u7684\u6587\u4ef6 \u6e90\u8ddf\u8e2a\u5df2\u5173\u95ed\u3002<samp>package.xml<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;Package xmlns=\"http:\/\/soap.sforce.com\/2006\/04\/metadata\"&gt;\n &lt;types&gt;\n  &lt;members&gt;Account.MyCustomField__c&lt;\/members&gt;\n  &lt;name&gt;CustomField&lt;\/name&gt;\n &lt;\/types&gt;\n &lt;types&gt;\n  &lt;members&gt;*&lt;\/members&gt;\n  &lt;name&gt;Profile&lt;\/name&gt;\n &lt;\/types&gt;\n &lt;version&gt;50.0&lt;\/version&gt;\n&lt;\/Package&gt;<\/code><\/pre>\n\n\n\n<p>\u5373\u4f7f\u6587\u4ef6\u6ca1\u6709\u5f15\u7528 OppCustomField__c\uff0c\u7531\u4e8e\u6e90\u8ddf\u8e2a\u6b63\u5728\u8ddf\u8e2a\u65b0\u7684\u81ea\u5b9a\u4e49\u5b57\u6bb5\uff0c\u56e0\u6b64\u60a8\u7684\u68c0\u7d22 \u8fd4\u56de Account \u5bf9\u8c61\u4e0aMyCustomField__c\u81ea\u5b9a\u4e49\u5b57\u6bb5\u7684\u914d\u7f6e\u6587\u4ef6\u6743\u9650 \u4ee5\u53ca Opportunity \u5bf9\u8c61\u4e0a\u7684OppCustomField__c\u3002<samp>package.xml<\/samp><\/p>\n\n\n\n<p>\u6709\u5173\u68c0\u7d22\u914d\u7f6e\u6587\u4ef6\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u5143\u6570\u636e API \u4e2d\u7684\u914d\u7f6e\u6587\u4ef6\u5143\u6570\u636e\u7c7b\u578b\u00a0\u5f00\u53d1\u4eba\u5458\u6307\u5357\u3002<\/p>\n\n\n\n<p>\u6ce8\u610f<\/p>\n\n\n\n<p>\u5c3d\u7ba1\u6e90\u68c0\u7d22\u4e0d\u5305\u62ec\u6587\u4ef6\uff0c\u4f46\u68c0\u7d22\u8bf7\u6c42\u4f1a\u8fd4\u56de\u4e0e \u6e90\u8ddf\u8e2a\u3002<samp>package.xml<\/samp><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u89e3\u51b3\u672c\u5730\u9879\u76ee\u4e0e\u7ec4\u7ec7\u4e4b\u95f4\u7684\u51b2\u7a81<\/h2>\n\n\n\n<p>\u6700\u4f73\u505a\u6cd5\u662f\uff0c\u5982\u679c\u672c\u5730\u9879\u76ee\u6216 \u7ec4\u7ec7\uff0c\u5728\u7ee7\u7eed\u524d\u8fdb\u4e4b\u524d\u89e3\u51b3\u5b83\u4eec\u3002\u60a8\u53ef\u4ee5\u624b\u52a8\u89e3\u51b3\u51b2\u7a81\uff0c\u4e5f\u53ef\u4ee5\u8986\u76d6\u51b2\u7a81 \u4e00\u4e2a\u7ec4\u4ef6\u7684\u7248\u672c\u4e0e\u53e6\u4e00\u4e2a\u7ec4\u4ef6\u3002\u4ec5\u5f53\u60a8\u786e\u5b9a\u65b0\u7684 version \u662f\u60a8\u8981\u4f7f\u7528\u7684\u7248\u672c\u3002<\/p>\n\n\n\n<p>\u5047\u8bbe\u4f60\u8dd1\u6b65\u5e76\u770b\u5230\u51b2\u7a81 \u672c\u5730\u9879\u76ee\u4e0e\u7ec4\u7ec7\u4e2d\u7684\u66f4\u6539\u3002\u4f8b\u5982\uff0c\u6b64\u547d\u4ee4\u8f93\u51fa\u663e\u793a\u5177\u6709\u51b2\u7a81\u7684\u66f4\u6539\uff0c\u4f46\u5df2\u51c6\u5907\u597d\u90e8\u7f72\u3002<samp>project deploy preview<\/samp><samp>WidgetClass<\/samp><samp>GizmoClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy preview --target-org DevSandbox\n\nConflicts &#91;1]. Run the command with the --ignore-conflicts flag to override.\n Type      Fullname    Path                                                    \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n ApexClass WidgetClass force-app\/main\/default\/classes\/WidgetClass.cls-meta.xml \n\nNo files will be deleted.\n\nWill Deploy &#91;1] files.\n Type      Fullname   Path                                                   \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n ApexClass GizmoClass force-app\/main\/default\/classes\/GizmoClass.cls-meta.xml \n\nNo files were ignored. Update your .forceignore file if you want to ignore certain files.<\/code><\/pre>\n\n\n\n<p>\u5982\u679c\u60a8\u5c1d\u8bd5\u5b9e\u9645\u90e8\u7f72\u6e90\uff0cSalesforce CLI \u4f1a\u518d\u6b21\u62a5\u544a\u51b2\u7a81\u5e76\u505c\u6b62 \u5b8c\u6210\u65f6\u7684\u64cd\u4f5c\u3002\u8fd0\u884c \u65f6\u4f1a\u770b\u5230\u7c7b\u4f3c\u7684\u51b2\u7a81\u6d88\u606f\u3002\u82e5\u8981\u6210\u529f\u90e8\u7f72\u6216\u68c0\u7d22\uff0c\u8bf7\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a \u9996\u5148\u89e3\u51b3\u51b2\u7a81\uff0c\u7136\u540e\u7528 \u5df2\u89e3\u6790\u7684\u6587\u4ef6\u3002\u8ba9\u6211\u4eec\u770b\u770b\u8fd9\u662f\u5982\u4f55\u5de5\u4f5c\u7684\u3002<samp>project retrieve preview<\/samp><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8986\u76d6\u51b2\u7a81\u7684\u66f4\u6539<\/h2>\n\n\n\n<p>\u5982\u679c\u60a8\u786e\u5b9a\u672c\u5730\u7248\u672c\u662f\u6b63\u786e\u7684\uff0c\u8bf7\u8986\u76d6 \u7ec4\u7ec7\uff0c\u5728\u4ee5\u4e0b\u60c5\u51b5\u4e0b\u5305\u542b\u6807\u5fd7 \u90e8\u7f72\u3002\u5728\u6211\u4eec\u7684\u4f8b\u5b50\u4e2d\uff0c\u56e0\u4e3a\u53ea\u6709 \u51b2\u7a81\u7684\u66f4\u6539\uff0c\u8ba9\u6211\u4eec\u9996\u5148\u90e8\u7f72\u8be5\u7ec4\u4ef6\u4ee5\u6d88\u9664\u51b2\u7a81\u548c \u7136\u540e\u7a0d\u540e\u90e8\u7f72\u65e0\u51b2\u7a81\u7684\u6e90\u3002<samp>&#8211;ignore-conflicts<\/samp><samp>WidgetClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy start --metadata ApexClass:WidgetClass --ignore-conflicts --target-org DevSandbox<\/code><\/pre>\n\n\n\n<p>DevSandbox \u7ec4\u7ec7\u73b0\u5728\u5177\u6709\u4e0e\u672c\u5730\u9879\u76ee\u4e2d\u76f8\u540c\u7684\u7248\u672c\u3002\u518d\u6b21\u8fd0\u884c\u65f6\uff0c\u770b\u4e0d\u5230\u4efb\u4f55\u51b2\u7a81\u7684\u66f4\u6539 \u6d88\u606f\u3002<samp>WidgetClass<\/samp><samp>project deploy preview<\/samp><\/p>\n\n\n\n<p>\u4f46\u662f\uff0c\u5982\u679c\u60a8\u786e\u5b9a\u7ec4\u7ec7\u4e2d\u7684\u7248\u672c\u662f\u6b63\u786e\u7684\uff0c\u5219\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u8986\u76d6\u672c\u5730\u526f\u672c \u68c0\u7d22 DevSandbox \u7ec4\u7ec7\u7248\u672c\uff0c\u540c\u65f6\u5ffd\u7565\u51b2\u7a81\u3002<samp>WidgetClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project retrieve start --metadata ApexClass:WidgetClass --ignore-conflicts --target-org DevSandbox<\/code><\/pre>\n\n\n\n<p>\u60a8\u7684\u672c\u5730\u9879\u76ee\u73b0\u5728\u5177\u6709\u4e0e\u7ec4\u7ec7\u4e2d\u76f8\u540c\u7684\u7248\u672c\u3002<samp>WidgetClass<\/samp><\/p>\n\n\n\n<p>\u5e72\u5f97\u597d\uff0c\u4f60\u89e3\u51b3\u4e86\u51b2\u7a81\uff01\u73b0\u5728\uff0c\u65e0\u9700\u4efb\u4f55\u7279\u6b8a\u6807\u5fd7\u5373\u53ef\u8fd0\u884c\uff0c\u4ee5\u5b8c\u6210\u90e8\u7f72\u548c\u4efb\u4f55\u5176\u4ed6\u65b0\u7684\u672c\u5730\u6e90\u3002<samp>project deploy start<\/samp><samp>GizmoClass<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project deploy start --target-org DevSandbox\nDeploying v59.0 metadata to test-ikspctiorkzs@example.com using the v59.0 SOAP API.\nDeploy ID: 0Af8D00000pNtEUSA0\nStatus: Succeeded | \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 1\/1 Components (Errors:0) | 0\/0 Tests (Errors:0)\n\nDeployed Source\n=====================================================================================\n| State   Name       Type      Path                                                   \n| \u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n| Created GizmoClass ApexClass force-app\/main\/default\/classes\/GizmoClass.cls          \n| Created GizmoClass ApexClass force-app\/main\/default\/classes\/GizmoClass.cls-meta.xml<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u901a\u8fc7\u67e5\u8be2 SourceMember \u5bf9\u8c61\u83b7\u53d6\u66f4\u6539\u4fe1\u606f<\/h2>\n\n\n\n<p>\u82e5\u8981\u8be6\u7ec6\u4e86\u89e3\u5f00\u53d1\u4eba\u5458\u7ec4\u7ec7\u4e2d\u7684\u6e90\u8ddf\u8e2a\u66f4\u6539\uff0c\u8bf7\u67e5\u8be2 SourceMember \u5de5\u5177 API \u5bf9\u8c61\uff0c\u7528\u4e8e\u627e\u51fa\u8fdb\u884c\u4e86\u54ea\u4e9b\u66f4\u6539\u4ee5\u53ca\u8c01\u8fdb\u884c\u4e86\u66f4\u6539\u3002Salesforce CLI \u4f7f\u7528 SourceMember \u5bf9\u8c61\uff0c\u4ee5\u67e5\u770b\u7ec4\u7ec7\u4e2d\u4f5c\u4e3a\u5176\u6e90\u8ddf\u8e2a\u7684\u4e00\u90e8\u5206\u6240\u505a\u7684\u66f4\u6539 \u529f\u80fd\u6027\u3002<\/p>\n\n\n\n<p>\u4f8b\u5982\uff0c\u901a\u8fc7\u8fd0\u884c\u7c7b\u4f3c \u8fd9\u3002\u5728\u6b64\u793a\u4f8b\u4e2d\uff0cDevSandbox \u662f\u6c99\u76d2\u7684\u7528\u6237\u540d\u6216\u522b\u540d\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf data query --query \"SELECT MemberName, MemberType, ChangedBy, RevisionCounter FROM SourceMember\" --use-tooling-api --target-org DevSandbox<\/code><\/pre>\n\n\n\n<p>\u8be5\u67e5\u8be2\u8fd4\u56de\u5143\u6570\u636e\u7ec4\u4ef6\u7684\u5217\u8868\u3002CHANGEDBY \u5217\u8fd4\u56de \u4e0a\u6b21\u66f4\u6539\u7ec4\u4ef6\u7684\u4eba\u5458\u3002REVISIONCOUNTER \u5217\u8fd4\u56de\u7ec4\u4ef6\u7684 \u4fee\u8ba2\u53f7\u3002Salesforce \u4f7f\u7528\u4fee\u8ba2\u8ba1\u6570\u5668\u6765\u786e\u5b9a\u54ea\u4e9b\u5b9e\u4f53\u5728 \u7ec4\u7ec7\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>MEMBERNAME                   MEMBERTYPE    CHANGEDBY        REVISIONCOUNTER\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nAccount.MyTextField__c       CustomField   0056g000000FDuZ  1\nContact.MyField__c           CustomField   0056g000000FDuZ  11\nAdmin                        Profile       0051k000002KW4R  54\nMyObj1__c-MyObj1 Layout      Layout        0051k000002KW4R  55\nAccount-Account Layout       Layout        0056g000000FDuZ  33\nContact-Contact Layout       Layout        0056g000000FDuZ  45\nMyObj1__c                    CustomObject  0051k000002KW4R  57\nTVRemoteControl              ApexClass     0056g000000FDuZ  53<\/code><\/pre>\n\n\n\n<p>\u60a8\u53ef\u4ee5\u4f7f\u7528\u6b64\u8f93\u51fa\u6765\u8fd0\u884c\u5176\u4ed6\u6709\u7528\u7684\u67e5\u8be2\u3002\u4f8b\u5982\uff0c\u8981\u83b7\u53d6 \u4e0a\u6b21\u66f4\u6539 Apex \u7c7b\u7684\u4eba\uff0c\u8fd0\u884c \u6b64\u67e5\u8be2\u5c06 ID \u4ece CHANGEDBY \u6620\u5c04\u5230\u7528\u6237\u540d\uff1a<samp>TVRemoteControl<\/samp><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf data query --query \"SELECT Id,Username,Name FROM User WHERE Id = '0056g000000FDuZ'\" --target-org DevSandbox<\/code><\/pre>\n\n\n\n<p>\u7ed3\u679c\u7c7b\u4f3c\u4e8e\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ID                  USERNAME                   NAME\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n0056g000000FDuZQAS  dev2@example.com.devsb1    Dev2<\/code><\/pre>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528 SourceMember \u5bf9\u8c61\u6765\u89e3\u51b3\u95ee\u9898\u3002\u4f8b\u5982\uff0c\u5047\u8bbe\u60a8\u66f4\u6539 \u7ec4\u7ec7\u4e2d\u7684\u5143\u6570\u636e\uff0c\u4f46\u66f4\u6539\u672a\u663e\u793a\u5728 OR \u4e2d\u3002\u68c0\u67e5 SourceMember \u7684\u5b57\u6bb5\u662f\u5426\u8bb0\u5f55\u4e86\u8be5\u5b57\u6bb5 \u5143\u6570\u636e\u7ec4\u4ef6\u6b63\u5728\u6b63\u786e\u9012\u589e\u3002<samp>project retrieve preview<\/samp><samp>project retrieve start<\/samp><samp>RevisionCounter<\/samp><\/p>\n\n\n\n<p>\u53e6\u4e00\u4e2a\u7528\u4f8b\u662f\u5c06\u6e90\u8ddf\u8e2a\u91cd\u7f6e\u56de\u7279\u5b9a\u7684\u4fee\u8ba2\u53f7\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sf project reset tracking --revision 30 --target-org DevSandbox<\/code><\/pre>\n\n\n\n<p>\u8b66\u544a<\/p>\n\n\n\n<p>\u547d\u4ee4 \u5220\u9664\u6216\u8986\u76d6\u6240\u6709\u73b0\u6709\u7684\u6e90\u8ddf\u8e2a\u6587\u4ef6\u3002\u4f7f\u7528\u65f6\u8981\u683c\u5916\u5c0f\u5fc3\u3002<samp>project reset tracking<\/samp><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6700\u4f73\u5b9e\u8df5<\/h2>\n\n\n\n<p>\u9075\u5faa\u8fd9\u4e9b\u6700\u4f73\u5b9e\u8df5\uff0c\u5145\u5206\u5229\u7528\u6e90\u8ddf\u8e2a\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5728\u5c06\u66f4\u6539\u90e8\u7f72\u5230 \u6c99\u76d2<\/h2>\n\n\n\n<p>\u8fd9\u79cd\u505a\u6cd5\u53ef\u5e2e\u52a9\u5176\u4ed6\u5f00\u53d1\u4eba\u5458\u5408\u5e76\u60a8\u7684\u66f4\u6539\u5e76\u4fc3\u8fdb \u534f\u4f5c\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528 Git \u7b49\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u67e5\u770b\u5143\u6570\u636e\u66f4\u6539\u5386\u53f2\u8bb0\u5f55<\/h2>\n\n\n\n<p>\u4f7f\u7528\u7248\u672c\u63a7\u5236\u7cfb\u7edf\uff0c\u60a8\u53ef\u4ee5\u5bf9\u66f4\u6539\u8fdb\u884c\u7248\u672c\u63a7\u5236\u3001\u8ddf\u8e2a\u66f4\u6539\u5386\u53f2\u8bb0\u5f55\u4ee5\u53ca \u5728\u5347\u7ea7\u5230\u5176\u4ed6\u73af\u5883\uff08\u5982\u6c99\u76d2\uff09\u4e4b\u524d\u67e5\u770b\u5143\u6570\u636e\u66f4\u6539\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8ba9\u6e90\u8ddf\u8e2a\u6587\u4ef6\u6062\u590d\u540c\u6b65<\/h2>\n\n\n\n<p>\u5982\u679c\u6e90\u8ddf\u8e2a\u611f\u5230\u56f0\u60d1\u5e76\u5f00\u59cb\u62a5\u544a\u4e0d\u51c6\u786e\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u547d\u4ee4\u6062\u590d\u540c\u6b65\u3002 \u4f7f\u7528\u54ea\u4e2a\u547d\u4ee4\u53d6\u51b3\u4e8e\u60a8\u6700\u4fe1\u4efb\u7684\u6e90\uff1a\u5982\u679c\u60a8\u4fe1\u4efb\u672c\u5730\u6e90\u6587\u4ef6\uff0c\u5e76\u4e14\u4fe1\u4efb \u7ec4\u7ec7\u3002\u5bf9\u4e8e\u4efb\u4e00\u547d\u4ee4\uff0c\u8bf7\u6307\u5b9a\u6807\u5fd7\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\u548c\u793a\u4f8b\uff0c\u8bf7\u53c2\u9605\u89e3\u51b3\u672c\u5730\u9879\u76ee\u4e0e\u7ec4\u7ec7\u4e4b\u95f4\u7684\u51b2\u7a81\u3002<samp>project deploy|retrieve startproject deploy startproject retrieve start&#8211;ignore-conflicts<\/samp><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6e90\u8ddf\u8e2a\u7684\u6027\u80fd\u6ce8\u610f\u4e8b\u9879<\/h2>\n\n\n\n<p>\u6e90\u8ddf\u8e2a\u6267\u884c\u989d\u5916\u7684\u529f\u80fd\u6765\u786e\u5b9a\u5bf9\u8ddf\u8e2a\u6e90\u7684\u66f4\u6539 \u7ec4\u4ef6\uff0c\u4f8b\u5982\u8fd0\u884c\u66f4\u591a\u67e5\u8be2\u5e76\u7b49\u5f85 SourceMember Tooling API \u5bf9\u8c61 \u90e8\u7f72\u540e\u66f4\u65b0\u3002\u56e0\u6b64\uff0c\u67d0\u4e9b\u547d\u4ee4\u5728\u4f7f\u7528 \u5927\u4e2d\u578b\u9879\u76ee\u3002\u5982\u679c\u4f60\u6b63\u5728\u5904\u7406\u5c0f\u9879\u76ee\uff0c\u4f60\u4e0d\u4f1a\u6ce8\u610f\u5230\u4efb\u4f55 \u51cf\u901f\u3002<\/p>\n\n\n\n<p>\u4e2d\u578b\u9879\u76ee\u5177\u6709 30 \u4e2a\u6216\u66f4\u591a\u7ec4\u4ef6\u6216 50 \u4e2a\u6216\u66f4\u591a\u6d4b\u8bd5\u3002\u4e00\u4e2a\u6709 25 \u4e2a\u7684\u9879\u76ee \u7ec4\u4ef6\u548c 51 \u9879\u6d4b\u8bd5\u88ab\u8ba4\u4e3a\u662f\u4e2d\u7b49\u7684\u3002<\/p>\n\n\n\n<p>\u5927\u578b\u9879\u76ee\u9700\u8981 600 \u4e2a\u6216\u66f4\u591a\u7ec4\u4ef6\u6216 150 \u4e2a\u6216\u66f4\u591a\u6d4b\u8bd5\u3002\u4e00\u4e2a\u6709 610 \u7684\u9879\u76ee \u7ec4\u4ef6\u548c 140 \u6b21\u6d4b\u8bd5\u88ab\u8ba4\u4e3a\u662f\u5927\u578b\u7684\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u9047\u5230\u957f\u65f6\u95f4\u8fd0\u884c\u7684\u547d\u4ee4\uff0c\u8bf7\u5c06\u9879\u76ee\u5206\u89e3\u4e3a\u8f83\u5c0f\u7684\u547d\u4ee4\u96c6 \u7ec4\u4ef6\uff0c\u5e76\u90e8\u7f72\u8f83\u5c0f\u7684\u96c6\u5408\u3002<\/p>\n\n\n\n<p>\u60a8\u8fd8\u53ef\u4ee5\u5728\u521b\u5efa\u4e34\u65f6\u7ec4\u7ec7\u6216\u6c99\u76d2\u65f6\u9009\u62e9\u9000\u51fa\u6e90\u8ddf\u8e2a\uff0c\u65b9\u6cd5\u662f\u6307\u5b9a \u547d\u4ee4\u7684\u6807\u5fd7\u3002\u6709\u5173\u7528\u4f8b\uff0c\u8bf7\u53c2\u9605\u6e90\u8ddf\u8e2a\u3002<samp>&#8211;no-track-sourceorg create scratch|sandbox<\/samp><\/p>\n\n\n\n<p>\u5982\u679c\u5728 DevOps Center \u4e2d\u521b\u5efa\u4e34\u65f6\u7ec4\u7ec7\u6216\u6c99\u76d2\u4ee5\u7528\u4f5c\u5f00\u53d1\u73af\u5883\uff0c \u4e0d\u8981\u7981\u7528\u6e90\u8ddf\u8e2a\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n","protected":false},"author":1,"featured_media":4526,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[343],"tags":[346],"class_list":["post-4524","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-salesforce-dx-","tag-346"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6c99\u76d2 - \u767d\u767d\u968f\u7b14<\/title>\n<meta name=\"description\" content=\"\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.ponybai.com\/?p=4524\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6c99\u76d2 - \u767d\u767d\u968f\u7b14\" \/>\n<meta property=\"og:description\" content=\"\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.ponybai.com\/?p=4524\" \/>\n<meta property=\"og:site_name\" content=\"\u767d\u767d\u968f\u7b14\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-13T08:32:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-31T08:46:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.ponybai.com\/wp-content\/uploads\/2024\/04\/sandbox.png\" \/>\n\t<meta property=\"og:image:width\" content=\"463\" \/>\n\t<meta property=\"og:image:height\" content=\"418\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ponybai\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"ponybai\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.ponybai.com\/?p=4524#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.ponybai.com\/?p=4524\"},\"author\":{\"name\":\"ponybai\",\"@id\":\"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883\"},\"headline\":\"\u6c99\u76d2\",\"datePublished\":\"2024-04-13T08:32:57+00:00\",\"dateModified\":\"2023-12-31T08:46:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.ponybai.com\/?p=4524\"},\"wordCount\":363,\"publisher\":{\"@id\":\"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883\"},\"keywords\":[\"\u6c99\u76d2\"],\"articleSection\":[\"Salesforce DX \u5f00\u53d1\u4eba\u5458\u6307\u5357\"],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.ponybai.com\/?p=4524\",\"url\":\"http:\/\/www.ponybai.com\/?p=4524\",\"name\":\"\u6c99\u76d2 - \u767d\u767d\u968f\u7b14\",\"isPartOf\":{\"@id\":\"http:\/\/www.ponybai.com\/#website\"},\"datePublished\":\"2024-04-13T08:32:57+00:00\",\"dateModified\":\"2023-12-31T08:46:10+00:00\",\"description\":\"\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002\",\"breadcrumb\":{\"@id\":\"http:\/\/www.ponybai.com\/?p=4524#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.ponybai.com\/?p=4524\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.ponybai.com\/?p=4524#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"http:\/\/www.ponybai.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6c99\u76d2\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.ponybai.com\/#website\",\"url\":\"http:\/\/www.ponybai.com\/\",\"name\":\"\u767d\u767d\u968f\u7b14\",\"description\":\"Salesforce\u5b98\u65b9\u8bb2\u5e08\",\"publisher\":{\"@id\":\"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.ponybai.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883\",\"name\":\"ponybai\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.ponybai.com\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.ponybai.com\/wp-content\/uploads\/2025\/03\/cropped-Ihsans-WeChatQR.jpg\",\"contentUrl\":\"http:\/\/www.ponybai.com\/wp-content\/uploads\/2025\/03\/cropped-Ihsans-WeChatQR.jpg\",\"width\":248,\"height\":248,\"caption\":\"ponybai\"},\"logo\":{\"@id\":\"http:\/\/www.ponybai.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/121.37.188.161\"],\"url\":\"http:\/\/www.ponybai.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u6c99\u76d2 - \u767d\u767d\u968f\u7b14","description":"\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.ponybai.com\/?p=4524","og_locale":"zh_CN","og_type":"article","og_title":"\u6c99\u76d2 - \u767d\u767d\u968f\u7b14","og_description":"\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002","og_url":"http:\/\/www.ponybai.com\/?p=4524","og_site_name":"\u767d\u767d\u968f\u7b14","article_published_time":"2024-04-13T08:32:57+00:00","article_modified_time":"2023-12-31T08:46:10+00:00","og_image":[{"width":463,"height":418,"url":"http:\/\/www.ponybai.com\/wp-content\/uploads\/2024\/04\/sandbox.png","type":"image\/png"}],"author":"ponybai","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"ponybai","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.ponybai.com\/?p=4524#article","isPartOf":{"@id":"http:\/\/www.ponybai.com\/?p=4524"},"author":{"name":"ponybai","@id":"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883"},"headline":"\u6c99\u76d2","datePublished":"2024-04-13T08:32:57+00:00","dateModified":"2023-12-31T08:46:10+00:00","mainEntityOfPage":{"@id":"http:\/\/www.ponybai.com\/?p=4524"},"wordCount":363,"publisher":{"@id":"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883"},"keywords":["\u6c99\u76d2"],"articleSection":["Salesforce DX \u5f00\u53d1\u4eba\u5458\u6307\u5357"],"inLanguage":"zh-Hans"},{"@type":"WebPage","@id":"http:\/\/www.ponybai.com\/?p=4524","url":"http:\/\/www.ponybai.com\/?p=4524","name":"\u6c99\u76d2 - \u767d\u767d\u968f\u7b14","isPartOf":{"@id":"http:\/\/www.ponybai.com\/#website"},"datePublished":"2024-04-13T08:32:57+00:00","dateModified":"2023-12-31T08:46:10+00:00","description":"\u6c99\u76d2\u662f Salesforce \u7ec4\u7ec7\u7684\u526f\u672c\uff0c\u53ef\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001 \u548c\u57f9\u8bad\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u751f\u4ea7\u7ec4\u7ec7\u4e2d\u7684\u6570\u636e\u548c\u5e94\u7528\u7a0b\u5e8f\u3002","breadcrumb":{"@id":"http:\/\/www.ponybai.com\/?p=4524#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.ponybai.com\/?p=4524"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.ponybai.com\/?p=4524#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"http:\/\/www.ponybai.com\/"},{"@type":"ListItem","position":2,"name":"\u6c99\u76d2"}]},{"@type":"WebSite","@id":"http:\/\/www.ponybai.com\/#website","url":"http:\/\/www.ponybai.com\/","name":"\u767d\u767d\u968f\u7b14","description":"Salesforce\u5b98\u65b9\u8bb2\u5e08","publisher":{"@id":"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.ponybai.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":["Person","Organization"],"@id":"http:\/\/www.ponybai.com\/#\/schema\/person\/935c7592c850c65e1e5eba4530dbf883","name":"ponybai","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.ponybai.com\/#\/schema\/person\/image\/","url":"http:\/\/www.ponybai.com\/wp-content\/uploads\/2025\/03\/cropped-Ihsans-WeChatQR.jpg","contentUrl":"http:\/\/www.ponybai.com\/wp-content\/uploads\/2025\/03\/cropped-Ihsans-WeChatQR.jpg","width":248,"height":248,"caption":"ponybai"},"logo":{"@id":"http:\/\/www.ponybai.com\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/121.37.188.161"],"url":"http:\/\/www.ponybai.com\/?author=1"}]}},"_links":{"self":[{"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/posts\/4524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4524"}],"version-history":[{"count":2,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/posts\/4524\/revisions"}],"predecessor-version":[{"id":4527,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/posts\/4524\/revisions\/4527"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=\/wp\/v2\/media\/4526"}],"wp:attachment":[{"href":"http:\/\/www.ponybai.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4524"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ponybai.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}