Salesforce Developers Japan Blog

アプリケーション開発をモダンに変える Salesforce DX

2017年7月20日に開催された、”アプリケーション開発をモダンに変える Salesforce DX” オンデマンド版を公開しました。
セッション資料&動画をこちらからご覧いただけます。

<セミナー時 Q&A>

Q: バージョン管理ですが、ソースコードだけでなくメタ情報(オブジェクトなど)も管理できるのでしょうか?

A: はい。オブジェクトやフィールド、アプリやタブ、プロセス定義などの情報もメタデータとしてXMLで管理されるので、
バージョン管理が可能です。


Q: シェルスクリプトなので自動化する場合、Salesforceへのログインなどの認証はどうするのでしょうか

A: SFDXコマンドは初回の認証を行うと、Salesforceへのアクセストークンやリフレッシュトークンを保持します。
そのため認証を何かしら(Webによるログイン、JWTなど)済ませておけば、それ以降は認証情報を入力しておく必要はありません。
また、スクラッチ組織も作成の段階で管理者ユーザのトークンをSFDXコマンドが保持しますので、ID/PWを入力せずとも自動化が可能です。


Q: force:org:open でエイリアスのみ指定すればパスワード無しでログインできるのは、パスワードがローカルに保存されているからでしょうか?

A:パスワード自体はローカルには保存されていません。リフレッシュトークンとアクセストークンがローカルに保存されています。


Q: スクラッチ環境は、Sandboxからも生成可能でしょうか。

A: 現状だと、スクラッチ組織は、本番環境もしくはDevHubが有効になったトライアル組織のみで作成が可能です。


Q: 個人取引先を有効にした組織も同じ手順で作れますか?

A:現状のバージョンでは個人取引先を有効化した組織を作る設定はありませんが、スクラッチ組織を作成する際の設定ファイルにオプションがあるので、今後はそちらで対応していく予定です。


Q: force:org:createするさい、force:org:listで2組織出ていましたが、どれが親組織として選択されるのですか?(どこかで定義していましたか?)

A: デフォルトのDev Hub組織がどの組織になるかは、 sfdx force:config にある defaultdevhubusername に設定されている値を参照しています。もしDev Hub組織をコマンド中に明示してなければ、デフォルトのDev Hub組織が使用されます。


Q: 本番環境をもっていないとき(DeveloperEditionだけもっているとき)にスクラッチ組織を作成したい場合はどうしたらよいでしょうか

A: DevHubが有効な30日トライアルがありますので、こちらからサインアップが可能です。
https://sfdc.co/DX-Trial-Org


Q: CLIでデータをインポートする時、主従や参照関係があるオブジェクトはどうインポートするのでしょうか?

A: CLIにあるsfdx force:data:tree:importコマンドは Sobject Tree Save APIを利用しておりますので、主従関係も含めたデータをインポートできます。


Q: CLIからのデータインポートは、スクラッチorg以外の組織(例えばDevHuv組織やSandbox組織)に対しても可能でしょうか?

A: はい。Sobject Tree Save APIはスクラッチ組織以外にも利用可能なAPIですので、DevHub組織やSandboxにも使用可能です。


Q: スクラッチ組織で作成したコードを本番環境へデプロイしたい場合はどうしたらよいでしょうか

A: 本番環境へのデプロイはMetadata APIを通して行います。詳しくはこちらをご覧ください。
https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_build_mdapi.htm


Q: ソースコードの管理について SalesforceDXでは「バージョン管理システム」にてソースコードが管理されていくかと思います。(いままで と これから の比較表より) 弊社は、パートナーとして複数のお客様(組織)の案件を担当させていただいています。 いままではソースコードを別環境にバックアップしていたので、複数組織のソースでもすぐに確認ができたのですが、「バージョン管理システム」になった場合、複数組織のソースコードを1つの「バージョン管理システム」にて管理することができるのでしょうか?

A: バージョン管理システムの運用方法に依存する話ではありますが、各組織ごとのソースコードで同一バージョン管理システム内(Githubなど)にそれぞれリポジトリを作成しておけば、変更管理に関しては個々のリポジトリで、検索やなどはリポジトリを横断して、といったことは可能です。


Q: Scratch Org以外の組織でも権限セットのアサインはできますか?その場合、付与されるのは認証を行ったシステム管理者ユーザでしょうか?

A: 権限セットのアサイン自体は裏側はメタデータAPIでやっておりますので可能です。権限セットが付与されるユーザは、認証を行ったユーザ自身となります。


Q: Force.com IDE 2は32bit版のリリース予定はありますか?

A: Salesforceとして32bitのEclipseを含んだスタンドアロン版を提供するかどうかは未定ですが、Eclipse.orgのサイトより32bit版のEclipseをダウンロードしてから、プラグインという形でForce.com IDEをインストールすることは可能です。


Q: バージョン管理にsvnの使用はできますか?

A: はい。将来的にHeroku PipleLineの機能など一部Githubに依存している機能などもあるあめ注意が必要ですが、salesforce CLIやスクラッチ組織の機能自体はバージョン管理システムに依存しませんので、Subversionでも利用可能です。


Q: Salesforce DX の登場で 、Salesforceの画面から作成されるsandboxの利用内は動作確認程度になるのでしょうか?

A: Sandboxには本番組織の構造をコピーしたり、一部/全部のデータをコピーしたりといった挙動をしますが、ソースコードからのビルドではないアプローチをとる場合には今後も有効です。どのような開発のアプローチをとるかは、開発チームの技術面への習熟度などに依存するので、都度最適なものを選択していくことになります。


Q: メタデータで管理できないものはありますか?(ローカルにダウンロードできないものはありますか?)

A:より多くの設定情報をメタデータで管理できるように進化していますが、現状一部メタデータでは管理されていないものもあります。また、ページレイアウトなどの情報も初回にsorce:pushすることはできますが、その後変更してもPullされることは無いといった制限が現状あります。


Q: 本番へのPushやPullの時のローカル環境は、gitのMasterブランチと差分を見る形が通常でしょうか。ブランチを指定して差分確認はできるでしょうか。

A: ローカルの開発環境本番環境との差分をみるには、Gitの運用次第となりますが通常であればMasterブランチが本番にリリースされているコードとなるはずなので、Masterと比較をするのが通常かと思われます。また、本番環境場でユーザによって何かしらのメタデータが変更された場合の差分に関しては、別途別のBranchなどを切ってPullをし、それをMasterへマージしなおす事も、場合によっては必要になるかもしれません。


Q: SalesforceDXやSalesforceCLIを利用すれば、 今までWeb上のGUIでしか確認できなかった内容にもアクセス出来ますでしょうか 例)使用ライセンス数、ディスク使用量 など

A: 組織の使用ライセンス数やディスク使用料というのは、本番環境固有の情報なので、Salesforce DXや Salesforce CLIでのアクセス対象となりません。


Q: スクラッチオルグには有効期限がありますが、開発中に勝手に削除されることはあるのでしょうか

A: スクラッチ組織の有効期限は通常7日です。分割可能なレベルの機能の改修を行うには十分な長さだと思われます。開発中は短いライフサイクルで、組織をスクラップ&ビルドで利用していくことをお勧めします。


Q: ProductionやSandboxの各組織側でで、明示的にSFDXからのメタデータのデプロイを禁止することはできますか? SandboxへのSFDXからのデプロイは許すが、Productionへは許したくない場合です。

A: 本番環境へのDeployを許可するかどうかは、そのユーザがAPIアクセス権限や「アプリケーションのカスタマイズ」などの権限が付与されているかどうかでコントロールすることができます。
本番環境でそれらの権限を許可せず、Sandboxだけに許可をすれば、スクラッチ組織の作成やSandboxへのデプロイのみを許可する環境を構築することは可能です。

コメント

アプリケーション開発をモダンに変える Salesforce DX