開発ツール

LWC Local Developmentを試してみた

  • 2020.05.23

概要 SalesforceのLightning Web Component(LWC)をローカルサーバーで動かせる機能がBeta版でリリースされていたので、どんなものかを触って確かめてみました。 準備 Local Dev Server用のCLIをインストール 最終的にはSalesforce CLIのパッケージに含まれるようですが、現在はBeta版なので含まれていないので、個別にインストールする必要があります。 組織の認証 Devhub組織と認証して、Scratch組織を作成しておきます。どうやら接続先はSandboxではなくScratch組織である必要があるみたいです。この辺は結構前に書いた記事ですが、下記をご参照ください。 Salesforce DXの基礎の基礎https://qiita.com/yhayashi30/items/80dd868f2e15aac67072 ローカルサーバーを起動 下記のコマンドを実行することでnode.jsがローカルサーバーを起動してくれます。 また、VSCodeのコマンドパレットで下記を実行して操作することもできます。 起動して開くSFDX: Open Local Development Server 起動SFDX: Start Local Development Server 停止SFDX: Stop Local Development Server 表示(選択したLWCのソースコードを右クリック)Preview Lightning Web Components in VS Code これで準備ができたので、localhostにアクセスすると画面が表示されるはずです。 http://localhost:3333/ 特徴 ローカルのLWCを画面描画 最初、localhostにアクセスすると自分のローカルプロジェクトに含まれているLWCがリンクでリスト表示されます。 リンクをクリックすると、LWCがローカルサーバー上で表示されます。また、画面右上にある”View in VS Code”のボタンを押下すると、画面で表示しているLWCのソースコード をVS Code上で表示してくれます。VS Code上でLWCのソースを修正すると即時にローカルサーバーにデプロイが行われて画面が最新化されるようになっているようです。 コンパイルチェックしてくれる 今までSalesforceの開発ではSandboxやScratch組織にソースコードをアップロードしないとコンパイルのチェックはできませんでしたが、ローカルサーバーを使う事でLWCの構文チェックを行ってくれて、どこでエラーが発生しているかを表示してくれます。ちなみにエラー画面は下記のようなイメージで、どこでエラーが起きているかやエラーメッセージも表示されます。 データ表示 LWCはローカルサーバーで動いているのですが、Apexの処理は接続しているScratch組織上で実行するようになっているので、組織のデータを検索したり、登録/更新することも可能なようです。 参考 Local Development (Beta)https://developer.salesforce.com/tools/vscode/en/lwc/localdev Announcing LWC Local Development Betahttps://developer.salesforce.com/blogs/2019/10/announcing-lwc-local-development-beta.html

VS CodeのOrg Browserという機能

  • 2019.09.23

概要 Salesforceのソースコードベースの開発を行う際には、VSCodeとその拡張機能(Extension)を使用しますが、その中にOrg Browserという便利な機能が追加されていたので紹介したいと思います。Org Browserを使用すると、manifest file(package.xml)を作成せずにSandbox等の組織からローカルにソールコードを取得することができます。 VSCodeの基本設定やSalesforceのExtensionについてはこちらに記載していますので、本記事では割愛します。 使用方法 SFDXプロジェクトを作成する VSCodeのコマンドパレットでSFDX: Create Project with Manifestを実行してSFDXプロジェクトを作成します。 接続対象の組織を認証する VSCodeのコマンドパレットでSFDX: Authorize an Orgを実行して対象組織の認証により接続を行います。認証するとVSCodeの一番左のアイコンにSalesforceマークが表示されます。こちらが、Org Browserの機能となります。 対象のメタデータを選択 Salesforceマークを選択すると、接続した組織のメタデータの一覧が表示されます。その中からローカルのプロジェクトにダウンロードしたいメタデータを選び、ボタンを押すとダウンロードされます。 ダウンロードしたファイルは、ソース形式でデフォルトでは下記のパスに格納されます。sfdx project > force-app > main > default これでソースコードによる開発をVSCode上で容易に行うことができます。これまでは、package.xmlを作成しないと対象のメタデータをダウンロードできかったのと比較すると非常に簡単になったと思います。 ちなみに、package.xmlの作成方法については、公式のExtensionではありませんが、下記の記事に記載しているものを使用すればVSCodeのUIベースで作成することもできます。 参考 Org Browserhttps://developer.salesforce.com/tools/vscode/articles/user-guide/org-browser

本番組織へのソース形式でのデプロイ

  • 2019.08.27

概要 本記事はSalesforceにおけるリリースにおいて、CLIを使用する場合にソース形式(メタデータ形式ではなく)で直接、本番組織へデプロイする方法を記載します。これまで(Spring’19以前)もSandboxへはソース形式でもデプロイすることができましたが、本番組織には一度メタデータ形式に変換したのちにデプロイする必要がありました。Summer’19からは、一度クイックリリースでテストを実行したのちに、そこで発行されるジョブIDを元にデプロイをすることができるようになったようです。 リリース方法(コマンド) まずは、クイックリリースでテストを実行してコードカバー率が要件を満たしていることを確認します。 上記のコマンドでSuccessとなった後に、実行した際に発行されているジョブIDを用いてデプロイを行います。 以上でリリース完了となります。 まとめ いちいちメタデータ形式への変換が不要となったので、個人的にはこちらの方が便利かなと思っています。 参考 本番組織へのアプリケーションのリリースhttps://developer.salesforce.com/docs/atlas.ja-jp.sfdx_dev.meta/sfdx_dev/sfdx_dev_build_mdapi_production.htm 任意の組織に対する開発https://developer.salesforce.com/docs/atlas.ja-jp.220.0.sfdx_dev.meta/sfdx_dev/sfdx_dev_develop_any_org.htm source Commandshttps://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_force_source.htm#cli_reference_deploy

Salesforce CLIを整理してみた

  • 2019.06.02

概要 本記事は、Salesforce CLIで使用可能なコマンドを整理したものとなります。筆者が気になったコマンドついては、個別に実行してどのような結果となるかを試してみました。ただし、これらのコマンドは毎リリースで仕様が更新されているので最新情報は下記のURLで確認してください。https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference.htmなお、本記事に記載の情報は、summer’19(Ver46)時点のものとなります。 コマンド整理 alias Commands alias:list CLIのコマンドで使用できる別名をリスト表示 alias:set CLIのコマンドで使用できる別名を設定 sfdx force:alias:listローカルで使用しているユーザIDに対する別名をリストで確認することができます。sfdx force:alias:set YourAlias=username@example.com別名を設定することもできます。 apex Commands apex:class:create Apexクラスの作成 apex:execute Apexクラスの実行 apex:log:get 最後のデバックログを取得 apex:log:list デバックログIDのリストを表示 apex:log:tail ターミナルでデバックログのテイルを有効化 apex:test:report 特定のテストを実行した結果を表示 apex:test:run Apexのテストを実行 apex:trigger:create Apexトリガーの作成 sfdx force:apex:class:create -n sfdxCliApexTest -d ./classes/クラス名とローカルのディレクトリを指定してApexクラスを作成します。 sfdx force:apex:execute -f ./classes/sfdxCliApexTest.clsローカルのApexクラスをファイルを実行することができます。 sfdx force:apex:log:list auth Commands auth:jwt:grant JWTフローで組織へ認証 auth:list 認証済の接続情報をリストで表示 auth:logout 認証済みの組織からログアウト auth:sfdxurl:store SFDXの認証URLを使用して組織へ認証 auth:web:login ブラウザのログイン画面経由で認証 sfdx force:auth:web:login -a <別名> -r <インスタンスURL>通常のWEBのログイン画面でユーザID、パスワードで認証できます。 sfdx force:auth:listローカルでSalesforce組織に対して認証済の接続情報をリストで表示します。 config Commands config:get デフォルトのスクラッチ組織/DebHub/インスタンスURLの設定を取得 config:list CLIのための設定変数をリストで表示 config:set CLIのためのLocalとGlobalの設定変数を更新 sfdx force:config:listローカルでCLIのための設定変数をリストで表示します。 data Commands data:bulk:delete CSVファイルのレコードリストをバッチで削除 data:bulk:status BulkAPIのJob/バッチステータスをポーリング data:bulk:upsert BulkAPIによるUPSERTのJobかバッチを作成 data:record:create レコードをINSERT data:record:delete 単一レコードをDELETE data:record:get 単一レコードを表示 data:record:update 単一レコードをUPDATE data:soql:query SOQLを実行 data:tree:export sObjectとツリーフォーマット(json)で組織からデータをエクスポート data:tree:import sObjectとツリーフォーマット(json)で組織へデータをインポート sfdx force:data:record:update -s Account -i 0017F00000ezMN3QAM -v “Name=GenePoint-Update”-sでオブジェクト名、-iでID、-vで更新カラムと値を引数で渡すことでUPDATEできる sfdx force:data:record:update -s Account -w “Name=’GenePoint'” -v “Name=’GenePoint-Update'”-wでWHERE句のように条件を指定することもできる sfdx force:data:soql:query -q “SELECT Id, Name FROM Account”SOQLを実行して結果を表示する sfdx force:data:tree:export -q “SELECT Id, Name FROM Account”SOQLを実行してjson形式でデータをエクスポートする doc Commands doc:commands:display コマンドのヘルプを表示 doc:commands:list コマンドのリスト表示 sfdx force:doc:commands:listforce名前空間のCLIコマンドを全て一覧で表示 lightning Commands lightning:app:create Lightningアプリケーションを作成 lightning:component:create AuraコンポーネントかLWCの枠を作成 lightning:event:create Lightningイベントの枠を作成 lightning:interface:create Lightningインターフェースの枠を作成 lightning:lint Auraコンポーネントコードに対して静的解析、または「lint」ツールを実行 lightning:test:create Lightningテストを作成 lightning:test:install Lightning Testing Serviceに非管理パッケージを組織にインストール lightning:test:run Auraコンポーネントのテストを実行 limits Commands limits:api:display APIコールやイベントの制限について最大数と残数を表示 sfdx force:limits:api:display mdapi Commands mdapi:convert メタデータAPIで取得したメタデータをDXプロジェクトで利用できるソース形式に変換 mdapi:deploy 作成、更新したコンポーネントを組織にデプロイ mdapi:deploy:cancel 非同期のデプロイをキャンセル mdapi:deploy:report 非同期のメタデータのデプロイ状況をチェック mdapi:describemetadata 組織で有効なメタデータタイプを表示 mdapi:listmetadata 特定のメタデータタイプのプロパティを表示 mdapi:retrieve 対象の組織からメタデータをxmlファイルのZipを取得 mdapi:retrieve:report 非同期のメタデータの取得状況をチェック sfdx force:mdapi:describemetadata sfdx force:mdapi:listmetadata -m CustomObject org Commands org:clone (Beta) 設定ファイルかkey-valueのペアで指定された値を使ってSandbox組織をクローン org:create 設定ファイルかkey-valueのペアで指定された値を使ってSandbox組織かスクラッチ組織を作成 org:delete スクラッチ組織を削除 org:display 対象の組織の説明を表示 org:list CLIで作成したもしくは、認証した組織をリスト表示 org:open ブラウザで組織を表示 org:shape:create […]

VSCodeでSalesforceのPackage.xmlを作成

  • 2019.05.17

概要 本記事では、VSCodeのExtensionを使うことでSalesforceの対象組織のメタデータを抽出するのに必要となるPackage.xmlを作成する方法を記載します。 Extension 使用するExtensionは下記になります。なので、まずはこれをVSCodeにインストールします。Salesforce Package.xml Generator Extension for VS Codehttps://marketplace.visualstudio.com/items?itemName=VignaeshRamA.sfdx-package-xml-generator Usage SFDXのプロジェクトを作成 コマンドパレット(Cmd+Shift+P)を開き、 SFDX: Create Project with Manifestを実行します。下記のように空のプロジェクトが作成されます。 SFDXで対象の組織を認証 コマンドパレット(Cmd+Shift+P)を開き、 SFDX: Authorize an Orgを実行します。ProductionかSandboxかを選択するとログイン画面遷移するので、ログインIDとパスワードでログインを実施します。下記のOAuthの認可画面で許可することで、VSCodeから組織の情報にアクセスできるようになります。 package.xmlを作成 コマンドパレット(Cmd+Shift+P)を開き、SFDX Package.xml Generator: Choose Metadata Componentsを実行します。Eclipse Force.com IDEと同じような感じの下記の画面が表示されるので必要なメタデータを選択して、Update Package.xmlを押下することでpackage.xmlが更新されます。 package.xmlを元にメタデータを取得 コマンドパレット(Cmd+Shift+P)を開き、SFDX: Retrieve Source in Manifest from Orgを実行します。 まとめ Force.com IDEと同じようにPackage.xmlを作成することがVSCodeでできるようになったのはとても良いと思いました。ただ、公式ではないので実務での使用には注意が必要そうです。 参考 Org Development Model with VS Codehttps://forcedotcom.github.io/salesforcedx-vscode/articles/user-guide/org-development-model Github(vignaesh01/sfdx-package-generator)https://github.com/vignaesh01/sfdx-package-generator

VSCodeを用いたSalesforce開発で使用するExtension

  • 2019.03.05

VSCodeを用いたSalesforce開発で使用するExtension 従来のSalesforceのApexやVisualforceの開発では、Force.com IDE(Eclipse)やMavensMate(SublineやAtom)がローカルの開発環境として使用されていました。現時点(2019年3月)でこれからの開発環境は、VSCodeのExtensionを用いるのが標準となります。本記事では、VSCodeでSalesforceの公式のExtensionについて紹介します。 ソースコード VSCodeのExtesionは、OSSとなっておりGitHubに公開されております。 https://github.com/forcedotcom/salesforcedx-vscode Salesforce Extension Pack 結論からいうと、Salesforceの公式のExtensionは、いくつかありますがこれをインストールすると他の7つのExtensionもインストールされます。 https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode VSCodeの設定(事前準備) ・Salesforce CLIを下記のリンクの手順で導入する。 https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup ・A Salesforce DX project でローカルプロジェクトを作成する。 https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_workspace_setup.htm ・Java 8 Platform, Standard Edition Development Kitを導入する。 また、以下の手順でVSCodeで必要な設定の手順を実施します。 Command+,(カンマ)で設定を開く Apexで検索して、ユーザー設定(settings.json)を開く echo `/usr/libexec/java_home -v 1.8`でJAVA_HOMEのパスを調べる “salesforcedx-vscode-apex.java.home”: “Java_HOMEのパス” ・Visual Studio Code v1.26 or laterが必要となる。 使い方 Salesforce Extension Packに含まれる7つのExtensionの使い方は、下記のサイトにまとめられています。 https://developer.salesforce.com/tools/vscode それぞれのExtension Salesforce Extension Packに含まれるExtesionは、以下となります。 Salesforce CLI Integration https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-core Apex https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-apex Apex Interactive Debugger https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-apex-debugger Apex Replay Debugger https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-apex-replay-debugger Aura Components https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-lightning Visualforce https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-visualforce Lightning Web Components https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode-lwc