tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Winter'23で追加されたApexテストのSystem.Assert クラスを試してみました

Winter'23で追加されたApexテストのSystem.Assert クラスを試してみました。追加されてから一年くらい経っている仕組みで、情報確認してからどこかで切り替えようかなと思いつつすっかり忘れてたので改めて確認してみました。


テストクラスでは今まで「System.assert()」「System.assertEquals()」「System.assertNotEquals()」という書き方で変数の値チェックができました。


Winter'23で追加されたAssetクラスでは「Assert.areEqual」「Assert.isNull」「Assert.fail」といった書き方が使えるようになります。


ヘルプサイトによると以下の記載がありました。

既存の System クラスのアサートメソッドは引き続きサポートされます。ただし、すぐに新しいメソッドの使用を開始し、既存のコードを更新してそれらを使用することをお勧めします。

新しい System.Assert クラスでは、すべての種別の論理アサーションと比較を処理するメソッドが提供されます。特定の条件を対象としたアサートメソッドを使用すると、Apex コードの明確さが向上します。また、アサーションの結果が例外である場合は、読みやすく理解しやすくなります。

明確かつ計画的な Apex アサーションの記述


詳細についてはApexの開発者ガイドにまとめられています。

Apex Reference Guide - Assert Class


「System.assert」を新しい書き方の一つ「Assert.isTrue」に変更した例。


実行結果がfalseとなる場合は「Assert.isFalse」といった書き方もできます。


他にも多くのチェック方法が用意されているようでした。


置き換えのイメージはこんな感じとなります。


Apexテストの新しい System.Assert クラスの使い方についてはこんな感じでした。

SFDC:LWCの改良された条件付きディレクティブを試してみました

Lightning Web コンポーネントの条件付きディレクティブ「if:true」の改良版「lwc:if」を試してみました。


条件付きディレクティブは、変数の値によって画面の表示 / 非表示を切り替える仕組みです。


今までは「if:true」「if:false」みたいな書き方でした。



Winter'24から「lwc:if」「lwc:elseif」「lwc:else」が使えるようになっています。


「if:false」の書き方がなくなるので、「lwc:elseif」「lwc:else」に置き換える際には少し調整が必要になるかもしれませんが、改良版の「lwc:if」に変更することでプロパティ getter へのアクセスがディレクティブのインスタンスごとに 1 回のみになるといったメリットがあるとのことです。


「lwc:if」を使うときの注意点は次のような感じとのこと。


詳細については開発者ガイドのページで確認できます。

条件に応じた HTML の表示 | Lightning Web Components 開発者ガイド | Salesforce Developers


置き換えイメージはこんな感じになるかと思います。


LWCの改良された条件付きディレクティブはこんな感じでした。

SFDC:Youtube動画のLWCサンプルコードを試してみました

海外のSalesforce開発者の人のYoutubeチャンネルで公開されているLightning Web Component動画を見ながらサンプルコードを試してみました。

Lightning Web Components - YouTube

Hello World

シンプルなHello Worldコンポーネント。


Lightningページではなく、Lightningコンポーネントタブでアクセスするとヘッダー部分も表示されない真っ白なページ上にコンポーネントの機能を配置できる。


Decorators

@trackデコレーターのサンプルコード。import時にtrackを宣言することで @trackが使えるようになる。


@trackの補足。

Lightning Web コンポーネントで不要になった @track デコレータ

Record Form

lightning-record-formタグのサンプル。


Record Edit Form

lightning-record-edit-formタグとShowToastEventのサンプル。


Record View Form

lightning-record-view-formタグのサンプル。


Call Apex Methods

Apexクラスの処理を呼び出すサンプル。@wireの使い方。


Call Apex Methods Imperatively

Apexクラスの処理を呼び出すサンプル。ボタンクリックすると取引先責任者リストを表示する処理。


LWCのApex実行から正常実行、エラーハンドリングの書き方のサンプルとなっています。


海外のSalesforce開発者のSoftware Codingチャンネルの動画を見ながら試してみた結果はこんな感じでした。Lightning Web Component以外にもApexバッチの開発動画も公開してました。

Software Coding - YouTube

SFDC:Salesforce World Tour Tokyo 2023 Day 2 を見に行きました

Salesforce World Tour Tokyo 2023 Day 2 を見に行きました。11月29日(水)の話。

カスタマーサービス再構築企業の競争優位性を高めるAI活用とは

ServiceCloud製品の本部長がモデレーターのセッション。


USのSalesforceのService Cloud責任者も来日して登壇してくれました。


Service Cloudの新機能のスケジュールはこんな感じとのこと。


ここから Einstein Copilotの話。


Data Cloudの話。


あらゆるデータを統合してAI時代のサービス構築の話でまとめという感じでした。


続いてユーザの事例話。Service Cloud導入理由とか参考になりました。


後半はService Cloudをつかったシステムのデモンストレーション。


Service Cloudのスキル機能とかを使って担当エージェントの絞り込み。


AIがやりとりを要約してくれる。


Field Service Cloud × Mobileでお客様先に行ってのサポート業務。


改めて機能紹介。

MuleSoft: 一層の企業成長を支えるAI x Hyperautomation

MuleSoftのセッション。


MuleSoft製品担当の方が登壇。


MuleSoftのAIデモ

AIが営業活動を速く賢く楽にする Sales Cloudで叶える新時代のセールスとは

ランチセッション。お弁当いただきました。

Einstainの要約機能について。


DXのその先へ〜生成AIとCRMがつくる未来の行政サービスの形〜詳細を見る

デジタル庁の方のセッション。デジタル庁の活動話面白かったです。


DMP (デジタルマーケットプレイス)の話が聞けました。次のリンク先は検索して見つけたやつ。

https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/03735227-d301-4bec-a678-96e036d917ea/cdf02cda/20230920_meeting_administrative_research_working_group_outline_02.pdf

https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/03735227-d301-4bec-a678-96e036d917ea/cdf02cda/20230920_meeting_administrative_research_working_group_outline_02.pdf

マインドフルネス

EXPO会場でたまたま見かけて聞いてきたセッション。マインドフルネスについていろいろ教えてもらいました。

セールスとサービスで完全リアルタイムのSAP連携を実現した日立ハイテク社事例

SalesforceとSAPを連携するAppExchange 「Overcast 真のリアルタイム SAP連携」についての話を聞けました。


下のリンクは自分で検索したやつ。


Salesforceのバックアップ事例を紹介!簡単・安全にデータ保護を実現

AvePoint社のSalesforceバックアップ製品について話を聞けました。


True to the Core〜顧客の声を製品進化に取り入れる方法

最後のセッション。Salesforce社の製品開発の責任者の人たちに質問できる貴重な機会となっていました。


来年のWorld Tour Tokyoは6月らしいです。


まとめ

Day 1では基調講演とSalesforceブースで話を聞いてくるのを中心にまわって、Day 2はセッション系を集中して見に行く感じで回ってみました。Salesforceブースは製品に詳しい担当の人の話を聞ける貴重な機会って感じなのでこういうイベントで行っておくと良いのかなと思ってます。Day 2のセッションで個人的に聞けてよかったのはAvePoint社のセッションの話。バックアップの仕組み構築のAppExchangeの話参考になりました。最近はSalesforce標準製品としてのバックアップ機能がリリースされていたので、データバックアップの仕組み導入の際にはAppExchangeかSalesforceバックアップかを選択する感じになりそう。機能やライセンスまわりの考え方はけっこう違う形になっていたので、やりたいことがどちらにマッチしているかで検討するのが良さそうでした。

SFDC:Trailblazer Career Marketplaceのキャリアモードの有効化を試してみました

Trailheadのプロフィール画面に追加されていたTrailblazer Career Marketplaceのキャリアモードの有効化を試してみました。以前あったお仕事募集ステータスのバージョンアップ機能かなと思います。


デフォルトではオフとなっています。設定ボタンをクリックすると有効化のための設定が開始されます。


最初に機能の説明から。


次に基本情報として自分のプロフィール情報を登録。(初期値はTrailblazerプロフィールから読み込まれます。)


基本情報はTrailblazerプロフィールと連動していますという注意書きが確認できるのと、希望の勤務地やリモートワーク可といった要望を登録できるようです。



基本情報の次にキャリアモードの有効化を実行できます。


有効化 = 仕事募集中ということではなく、仕事募集ステータスはオプション的に設定できます。


有効化するとこのように自分のプロフィールページが用意されます。


自己紹介やキャリアパス、職歴とか学歴、その他アピールポイントの登録が可能です。




登録した情報が実際に他の人にはどのように見えるかというのはプレビューモードで確認できます。


他の人にと書きましたが実際はお仕事募集のステータスにするとTrailblazer Career Marketplaceに求職者として表示される感じかなと思います。

Trailblazer Career Marketplace


自分から求人リストを探すこともできるようです。現在は米国の求人のみサポートされているとのことでした。



Trailblazer Career Marketplaceのキャリアモードの有効化はこんな感じでした。


Salesforceに特化した求人の仕組みということでこういう仕組みが定着化したらなかなか良さそうでした。(有効化はできるけど日本ではまだ使えない機能かな。)

参考

SFDC:プロファイルから権限セットへの変換機能を試してみました

プロファイルから権限セットへの変換の仕組み「Convert a Profile to a Permission Set」があると知って試してみました。

この仕組みが必要になる背景としては、2023年のはじめ頃にSpring'26のリリースあたりでプロファイルでの権限管理の仕組みが終了して権限セット管理で対応することになる話が出ていました。

Permissions Updates | Learn MOAR Spring '23 - Salesforce Admins


まだ数年先なので来年かその次かに対応完了すればいいかと思いつつ、新規プロファイル作成する作業していたのですが、「本当は新規作成分は権限セットでやった方がいいんだよね。でもプロファイル画面からやった方が楽だし、権限セットはまた今度でいいや。・・というかプロファイルから権限セットに変換できるツールがあれば全部解決なんだけど。」って思って、Xにポストしてみたところ、「Converting Profiles to Permission Sets」という仕組みがあるみたいですとヘルプのリンクを教えてもらえました。


教えてもらったリンクから少し進んだページがこちら。

Help And Training Community


User Access and Permissions Assistant 権限セットを割り当てて利用できるとのこと。エディションもStarter以外ということで問題なさそう。


ということで権限セット割り当てをしようと思ったのですが、ヘルプに書いてる権限セットって存在してない..もしかして有償アドオンかも..となって検索してみました。この機能を利用するにはパッケージをインストールすることでで利用可能になるようです。
(Salesforce社のLabsが提供するAppExchangeパッケージなので安心のパッケージ。)

User Access and Permissions Assistant


とりあえずインストール。


探してた権限セットも含まれていることを確認。


権限セットを割り当てて準備完了。


これでConverterタブにアクセスできるようになりました。


正しいアクセス方法としては、User Access and Permissions Assistantアプリケーションからアクセスする感じ。ここにConeterタブ含めて必要なタブが揃っています。


次のように対象プロファイルのメニューを選択すると、権限セット変換の選択肢が確認できました。


変換ボタンをクリックすると次のような感じ。


処理が実行されて次のように表示されます。


View Permission Setボタンをクリックすると作成された権限セットのページに移動できました。


API名は作成後に調整した方が良さそうですが、それ以外は理想どおりの動きっぽい。(権限一つずつチェックする気分ではないので今回はそこは省略。Salesforce社のパッケージなので心配しなくても大丈夫だと思いたいところ。)


ちなみに変換処理については同じプロファイルに対して繰り返し実行可能でした。


権限セットに移行できない情報としてはこちら。ここは引き続きプロファイル管理となる領域になりそうかな。


その他の考慮点としてはこちら。プロファイルに紐付くユーザが多いと時間かかるかもという感じ。


Salesforce社が用意してくれた「Convert a Profile to a Permission Set」の仕組みを試してみた結果はこんな感じ。利用するとしたらもう少しあとかなと思いますが、こういう方法が提供されていることを確認できてよかったです。(期日に近づけば他にも変換作業に役立つ便利機能が増えてくるかもとちょっと思ってます。)

SFDC:Salesforce World Tour Tokyo 2023 Day 1 を見に行きました

Salesforce World Tour Tokyo 2023 - Day 1 を見に行きました。2023年は夏のイベントに続いて秋のイベントも開催してくれました。


Now Everyone's an Einstein〜データ+AI+CRM+信頼でこれからの時代をリードする企業へ

まずはKeynoteルームで基調講演。


今回は米国Salesforceのマーク・ベニオフCEOとパーカー・ハリスCTOが2人とも来て話をしてくれました。今回のメインの話はAIの話。


技術的な発表の話はパーカーハリスCTOから。


トレイルブレイザーコミュニティの話も。


Salesforce社のAI製品のポリシー。Einstein Trust Layerは、業務システム(Salesforce)の情報を安全にAIと連携させることができる仕組み。


AI製品でパワーアップするSalesforce製品の話。


Data Cloudでいろんなシステムに分散している顧客情報を一つにまとめて扱えるって感じの話。


顧客体験の革命。顧客と新しい形でつながるには。


この他お客様事例などの話もありました。基調講演はだいたいこんな感じ。

EXPO会場

基調講演のあとはEXPO会場へ。SalesforceブースでSalesforce社の人に製品のことを教えてもらいました。


MuleSoft


メモ
  • Salesforceと他システムのAPI連携を管理できる製品(ざっくり)。
  • Saasとの連携はMuleSoft Composerを使う。
  • Saas以外(基幹システムとか)の連携はAnyPointを使う。
  • ComposerとAnyPointは別ライセンス。
  • 導入/運用にはパートーナー企業(専門家)に依頼した方が良いっぽい。
  • MuleSoftのハンズオン動画がある。(Trailhead以外で公式サイトにある)

Sales Cloud


メモ
  • メール機能がAIでパワーアップ
  • Outlook連携
  • LinkedInとも連携
  • 新機能は2月ぐらいから使えるかも
  • 取引先責任者インテリジェントはUnlimitedエディションから
  • Sales CloudのWeb会議録画の機能はUnlimited + エディションから

Security


メモ
  • Salesforce Backupとイベントモニタリングの話を教えてもらった。
  • Backupは最近でた新製品。
  • 契約してインストールで設定すれば使える。
  • Backupのデータの補完先はAWSのS3。
  • S3の環境はBackup製品についてくる。
  • データ容量でライセンスが変わる (容量単位で契約100GB)。
  • 添付ファイルは今のところサポートされない (将来できるようになるかも)。
  • Backup処理の頻度は1日一回、朝8時。(決まったタイミング。将来変えられるようになるかも)
  • 保持期間は特に制限なし。(容量課金の方で管理される)。
  • Backupしたデータに復元する作業 => リストアという用語。
  • 復元作業はレコード単位。対象レコードの日時も確認できるのでそこから選択。
  • バックアップするオブジェクトは1つずつ指定できる。
  • 対象オブジェクトは自由に選択できるが容量課金なので意味ないものは外した方がよさそう。
  • イベントモニタリングの30日間のログの方の話も聞いた。
  • ログのダウンロードはEvent File Log Browserのサイトから。
  • ボタンクリックでCSV形式でひとつずつダウンロード
  • curlでダウンロードを自動化できる
  • データローダでエクスポートしても、ログ自体は取得できない。ログのURLが含まれる。
  • 細かい話でDailyのログとHourのログがあるが、DailyができるとHourの方は削除される。管理するならDailyが良さそう。
  • 30日間のログはあとから見返すようというよりは障害発生時の調査目的の用途なので、バックアップするのはあまり適してなさそう。もう一種類の6ヶ月(リアルタイムイベントログ)の方がそういう用途。とはいえ取得できる内容は基本それぞれ異なる。

会場散策

Platform


メモ
  • Salesforce Connectとフローの話を教えてもらった。
  • Connectの方はMuleSoftとの違いが知りたくなった
  • 今思えばMuleSoftはAPI管理でConnectは決まった連携処理が用意されてるって違いだった
  • それはそれとしてConnectとMuleSoftを一緒に利用するシーンはあるみたい
  • フローの方は新機能の話
  • Transformは、今ある割り当ての機能のより高度なバージョン。まだベータ版
  • フローのコールアウト処理結構よさそう。
  • 裏側はApex。なのでコールアウトの制限とかは引き続きある。
  • Apexの@futureといった非同期処理はフローでもできる
  • 実行タイミングを1日前とかそういう指定ができるのはフローのメリット
  • 新機能とかの話は実際に詳しい人(Salesforce社の人)に話してもらうと、そういう使い方ができるんだってイメージができてよかった。(自分でWebサイトでチェックするだけだとそういう話あったなぐらいで済ませちゃうことけっこうあったっぽい)

経営、IT、事業部が共に取り組むデータドリブン経営 〜 AI×営業が共創する新時代の営業組織づくり 〜

Sales Cloud利用企業の最大規模のお客様事例ということでNTTの方の話が聞けました。


同じNTTグループ内でもそれぞれの会社で文化が違ったりしたので事業統合の際に大変だった話、Salesforceの情報で業務背景等の把握や認識合わせをした話、300人規模の大きなプロジェクトになった話という感じの話が聞けた面白かったです。あとは最後にお客様事例セッションにあるいつもの今後将来Salesforceでできるようになるかもしれないデモを見れました。

AI & Data基調講演~対話型AIとデータ戦略に企業が投資するべき理由

マーク&パーカーの朝の基調講演でも話のあったAI製品のより詳細な話が聞ける基調講演セッション。

EXPO会場

請求、入金まわりのサービスを提供しているStripeのブースがあったので行ってみました。Salesforc連携のAppExchangeアプリがあるみたいです。資料とノベルティいただきました。

Commerce CloudとSales Cloudの製品に対して連携できるみたいです。


その後はシアターセッションとか。

別所哲也氏と考察〜AIと共創する地域社会づくり

Day 1 最後となるスペシャルセッション。


AIと街づくり的な感じで農業、観光、交通の事例としていろいろ話が聞けました。


さいごにスペシャルゲストで一青窈さん。

18:00 〜

ご飯と🍺いただきました。


あと、Salesforceブースもまだ話が聞けるみたいだったのでAccount Engagementのブースに行ってみました。MAツールは自分でバリバリ使うことはなさそうですが、新機能まわりの情報を知っておいた方が良いかなという感じで言ってみました。


Salesforce World Tour Tokyo 2023 Day 1はこんな感じ。マークとパーカーが見れてよかったです。