はじめに
はじめまして、エンジニア歴1年未満の新米エンジニアです。
業務では、主にSalesforceの改修を担当しています。
アサインされたのが2024年夏頃なので、Salesforce歴は半年程度です。
日々のタスクに必死で、まだまだわからないことばかりですが、
「そうだ、良い機会だからSalesforceの資格を取ろう」
と思い立い、認定アドミニストレーター取得に向けて学習を始めました。
問題を解いていく中で、改めて基礎知識が身についていないことを痛感しました。
(開発初期段階の設定や標準機能など、普段触れていない部分は特に弱い…)
今まではTrailheadを中心に学習していましたが、より様々な機能の理解を深めるために、
SalesforceのDeveloper Editonを使って、自己学習環境を整備していきます。
主に標準機能や馴染みのない機能などの学習を進めていけたら、と思っています。
記事を読んで、アドバイス等あれば、ぜひお願いします!
今回は、以下の内容をメインに書きます。
- DevOpsCenterを導入する
- 開発環境でLightningアプリケーションを作成する
- DevOpsCenterを使ってデプロイする
結果的に、新規Lightinigアプリケーションのデプロイは失敗しました。
代わりに、カスタムオブジェクトを作成してデプロイしています。
Developer Editionの登録
https://developer.salesforce.com/signup
まずは、上記URLからDeveloper Editionのアカウント登録をします。
Developer Editionは、無料で使えるプライベート開発環境です。
プラットフォームと API にアクセスできます。開発者は、Salesforce を拡張し、他のアプリケーションと統合して、新しいツールやアプリケーションを開発できます。Developer Edition では、Enterprise Edition で使用できる機能の多くにもアクセスできます。
実際の画面
ログインすると、すぐに使える状態になっています。
アプリケーションランチャーには、サービス、セールスなどが入っています。
サービス
セールス
設定で「アプリケーションマネージャー」を選択すると、一覧が表示されます。
DevOps Centerのインストール
DevOpsCenterは、Salesforce上で変更管理とリリース管理ができる機能です。従来の変更セットの後継機能のようです。
Developer Editionでも利用可能なので、導入していきます。
公式のヘルプページとSalesforce DevOps Centerについてまとめてみたを参考にさせていただきながら、進めていきます。
まずは、[設定] から[DevOps Center] を選択し、有効化にチェックを入れます。
[パッケージをインストール]をクリック、[管理者のみのインストール]を選択してインストールします。
インストールが完了すると、メールが届きます。
また、[インストール済みパッケージ]でも確認することができます。
接続アプリケーションの作成
[設定]から[アプリケーションマネージャー]を選択し、[新規接続アプリケーションマネージャー]をクリックします。
[接続アプリケーションを作成]を選択して、続行をクリックします。
下記の情報を入力して、保存をクリックします。
- 接続アプリケーション名: DevOps Center
- API 参照名: DevOps_Center
- 取引先責任者メール: support@salesforce.com
- ロゴ画像 URL: https://tinyurl.com/doc-icon
- 説明: 開発およびリリースプロセスの管理
- 開始 URL: /sf_devops/DevOpsCenter.app
[接続アプリケーションを管理する]で[manage]をクリックします。
[権限セット] セクションで、[権限セットの管理] をクリックします。
[sf_devops_NamedCredentials]を選択し、[保存]をクリックします。
DevOps Center 権限セットを割り当てる
DevOps Centerの権限セットは5種類あります。
[DevOps Center]と[sf_devops_NamedCredentials]は全員に、その他の3つは役割によって付与する運用方法のようです。
今回、割り当てるユーザーは1人なので、[設定]の[ユーザー]から該当ユーザーを選択します。
[権限セットの割り当て]の[割り当ての編集]を選択し、5つとも追加して有効化します。
セッションの設定の定義
[設定]から[セッションの設定]を選択します。
[ログイン時の IP アドレスとセッションをロック] を選択解除します。
(今回は元から解除されていました)
許可リストに登録された接続アプリケーションの API アクセスコントロール設定の無効化
「[設定]から[API コントロール]を選択」となっていますが、項目が見当たらないので、一旦省略します。
スクラッチ組織の作成
Developer EditionではSandboxの作成ができません。
そのため、開発環境としてスクラッチ組織を作成します。
[設定]から[Dev Hub]を選択し、以下の2つを有効化します。
VSCode上でDeveloper Editionの組織に接続します。
SFDX: Create a Default Scratch Org
で、スクラッチ組織を作成します。
期間はとりあえず30日間にしました。
GitHub プロジェクトリポジトリの設定
DevOps Centerのアプリを起動して、[New Project]をクリックします。
「Connet to GitHub]をクリックして、GitHubと連携します。
連携ができたら、[New Project]からプロジェクトを作成します。
リポジトリを新規作成するので、[Create a repository for my project that uses the Salesforce DX project structure.]を選択します。
[インテグレーション][UAT][ステージング]は今回作成しないので、Stage Nameの横にある▼をクリックして[Remove Stage]をクリックします。
[Development Environments]の[Add Development Environment]から、スクラッチ組織を接続します。
Stage Name「本番」を英語表記に変更して、Developer Editionの組織を接続します。
下記の記事でStage Nameが日本語表記のままだと、不具合が生じるとの記載がありました。
本番は関係ないかもしれませんが、一応変更しました。
Salesforce DevOps Centerを触ってみた〜注意するポイント・期待すること〜
プロジェクトの作業項目の作成と割り当て
[Work Items]から[New Work Item]をクリックします。
今回は、この後の作業としてLightningアプリケーションの作成をするので、作業内容に入力して保存します。
タスクのIDをクリックして、「I want to develop and commit my changes to the work item feature branch from DevOps Center using a connected development environment.」を選択します。
※Sandboxやスクラッチ組織で作業を行う場合は上を、DevOps Center外 (開発環境に接続しない)で作業を行う場合は下を選択します。
開発環境が本番環境と同期していないと、下記のメッセージが表示されます。
Pipelineのページ遷移するので、開発環境の[Sync...]をクリックします。
[Changes to Synchronize]は下記の2種類です。
- Changes not in dev environment
開発組織に存在しないもの and 差分のみを同期する - All metadata in the UAT stage's branch
上位組織を全て同期する
[Test Options]の[Default]を選択して、[Start Sync]をクリックします。
テストの選択肢は、変更セットの時と同じです。
再度、タスクのIDをクリックして、[Proceed]を押すとBranchが作成されます。
Lightningアプリケーションの作成
スクラッチ組織で、Lightningアプリケーションを1つ作成してみます。
[新規Lightningアプリケーション]を選択して、情報を入力します。
アプリケーション名は、目の前にカエルの置物があったからです。特に意味はありません。
(今回のアイコンはICOON MONOからお借りしました)
下記のセクションは、デフォルトのまま次に進めます。
- アプリケーションオプション
- ユーティリティ項目 (デスクトップのみ)
ナビゲーション項目は、あまり触れたことのない標準機能を中心に追加します。
[設定]の[クイック検索]に[アプリケーションメニュー]を入力して、選択します。
新規作成したアプリケーションを一番上に配置します。
作成したアプリケーション[frogs]を選択すると、ホームが表示されます。
先ほど設定したので、アプリケーションランチャーの一番上に表示されています。
Commitの作成
開発組織で作業が終了したら、本番組織でDevOps Centerを開きます。
[Work Items]からタスクIDを選択して、[PullChanges]をクリックします。
変更部分が表示されるので、反映させたいものにチェックをつけて、[Commit Changes]をクリックします。
commitが完了すると、メッセージが表示されます。
[Create Review]を押すと、自動的にPRが作成されます。
[Ready to Promote]を押すと、ステータスが[昇格準備完了]に変更されます。
本来は、テスト環境などを挟みますが、今回はすぐに本番へデプロイします。
デプロイする項目にチェックを入れて選択します。
[Promote Selected]をクリックします。
[Changes not in prod stage]と[Default]を選択します。
[Promote]をクリックして、デプロイを実行します。
右上の[Ready to Promote]のチェックを外すと、ステータスが[レビュー中]に戻ります。
画像が足りないと怒られている気がするので、commitに追加します。
作業項目のステータスを [なし] に変更する
その後も異なるエラーが表示されて、Lightningアプリケーションのデプロイはできませんでした。
代わりにカスタムオブジェクトを作成してデプロイします。
まずは、現在のWork Itemのステータスを変更します。
[Work Items]のメニューから、[Changes Status to Never...] を選択します。
[Work Items]からWork Itemを新規作成します。
その後、開発環境(スクラッチ組織)で、カスタムオブジェクトを作成してデプロイします。
まとめ
今回はDevOps Centerを使って、本番環境へのデプロイをすることができました。
変更セットでの移送も慣れてはきたのですが、こちらの方が個人的にはわかりやすいです。
今までだと、気になったものを試しに触れても、実装まで辿り着かないことばかりでした。
しかし、最近はSalesforceや色々な知識が少しずつ身についてきたおかげで、つまづきポイントを乗り越えられることが増えてきました。
もう少しでエンジニアになって1年が経つので、多方面から技術を吸収して、良い形で2年目を迎えられるように頑張ります。