Posted at

Salesforceの本番組織からJSforce Metadata ToolsでApexクラスなどを削除する

More than 1 year has passed since last update.


Salesforceの本番組織からApexクラスなどを削除するのはかなり面倒

以下のような方法があるけど、めんどい。


  • Force.com IDEで削除(参考

  • Force.com Migration Toolで削除(参考

  • Workbenchで削除(参考


JSforce Metadata Toolsで削除する

node.jsのコマンドラインツールJSforce Metadata Toolsも上記方法と同じくMetadata APIを実行しているので、これを使っても削除できます。


1. JSforce Metadata Toolsインストール

$ npm install -g jsforce-metadata-tools


2. 以下のようなフォルダ構成でファイルを作ります

.

└── metadata
├── destructiveChanges.xml
└── package.xml


package.xml

<?xml version="1.0" encoding="UTF-8"?>

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<version>42.0</version>
</Package>

destructiveChanges.xmlに削除したいリソースを記載。


destructiveChanges.xml

<?xml version="1.0" encoding="UTF-8"?>

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>DeleteExample</members>
<name>ApexClass</name>
</types>
<types>
<members>DeleteExampleTrigger</members>
<name>ApexTrigger</name>
</types>
<version>42.0</version>
</Package>


3. 以下のコマンドを実行

$ jsforce-deploy -u <ユーザ名> -p <パスワード> -D ./metadata/ --rollbackOnError

以下のような結果が表示されれば成功です。組織に入って確認してみましょう。

Logged in as: <ユーザ名>

Deploying to server...

Deploy Succeeded.

Id: 0Af0000000XXXXXXX
Status: Succeeded
Success: true
Done: true
Number Component Errors; 0
Number Components Deployed: 2
Number Components Total: 2
Number Test Errors; 0
Number Tests Completed: 31
Number Tests Total: 31

Test Total Time: 8246


まとめ

他の方法より面倒じゃない…気がする