KanaLog~かなさんのSalesforce関連ログ~

自称「Salesforceキャンペーン芸人」のKanaさんのSalesforceに関する活動記録です。

【ブログ投稿キャンペーンエントリー記事】Lightning Web コンポーネントの学習方法について

この記事はSalesforce 開発者向けブログ投稿キャンペーンへのエントリー記事です。

developer.salesforce.com

 

家にいると勉強がはかどらないタイプ。かなさんです。

ブログ投稿キャンペーンの第2弾が発表され、「よし、3つぐらい投稿しちゃうぞ~」と思ってたはずなのに気が付いたら月末でしたorz

 

自身のおさらいも兼ねて、「Lightning Web コンポーネント開発のオススメの学習方法」を書こうと思います。

 

1.開発ツールを入れよう

残念なことに、開発者コンソールではLightning Web コンポーネントの作成・編集ができません。学習のために、開発に必要なSalesforce CLIVisual Studio Code拡張機能を入れましょう。

Trailheadのプロジェクト「クイックスタート: Lightning Web コンポーネント」にインストール・設定手順が記載されていますので、手順に従って設定しましょう。

なお、先日発表された「Salesforce Code Builder」が使えるようになればこの作業は不要になります。早期のリリースを期待したいところです。

※簡単な機能の確認だけであれば「Lightning Web Components Playground」で可能です

 

2.作り方を知ろう

Trailheadのプロジェクト「Lightning Web コンポーネントの基本」で、Lightning Web コンポーネントの概要や作り方を知りましょう。

必要となるHTML、JavaScriptCSS の解説はないため、別途学習が必要です。

 

3.SAMPLE GALLERYを活用しよう

Lightning Web コンポーネントのサンプルを集めた「SAMPLE GALLERY」を活用しましょう。

プロジェクトをクリックするとGithubに飛び、ソースを確認することができます。

また、Salesforceにその資材をコピーしてどのように動いているのか見ることができます。

かなさんの一押しはなんといっても「LWC Recipes」!

同じような資材にちょっとずつコードが加わっていき、だんだん機能が増えていくのでとても勉強になります。

最近フォーカスされたプロジェクト「Quick Start: Explore the LWC Recipes Sample App」も増えたので、ぜひチャレンジしてみてください。

trailhead.salesforce.com

 

4.ガイドやレファレンスを読もう

「Lightning Web Components Dev Guide」にはLightning Web コンポーネントの概要からテスト、関連のレファレンスまで幅広い情報が記載されています。

量が多いので、気になる箇所から読んで徐々に読み進めていくのもありです。

「Component Reference」にはLightning Web Componentsのコンポーネントはもちろん、Auraのコンポーネントの情報も記載されています。

自作する前に使えるコンポーネントがないか、必ず確認しましょう!

developer.salesforce.com

 

5.オリジナルのコンポーネントを作ろう

ぜひ、オリジナルのコンポーネントを作ってみましょう。

難しく考えず、サンプルを修正したものでOKです。

自分の考えたものを実装し、動かしてみるのが一番勉強になります。

 

 

●最後に

Lightning Web コンポーネントが気になっているのなら、まずはやってみましょう!

最初はちょっと戸惑うかもしれませんが、慣れれば意外と大丈夫だったり、困ったら相談に乗ってくれるベテラン勢がいたりします。

さあ、あなたも今日からLet'sチャレンジ!

Trailheadスキルアップキャンペーンが開催されます

外出もままならない中、皆さまいかがお過ごしでしょうか。

ずっと家にいるけど、Trailheadで勉強するにもなかなかやる気が出ない。。。

 

そんなあなたに朗報です!

「Trailheadスキルアップキャンペーン」が開催されることになりました。

 

●キャンペーンの概要

チャレンジを達成した対象者が応募を行い、抽選でアストロの傘などの素敵な景品がもらえるものです。

 

●期間

2020 年 5 月 1 日午前 0 時から 2020 年5 月 31 日午後 11時59分

 

●対象者

対象者は「日本在住」で「20歳以上」の「Salesforceユーザ」で、スポンサーとその関係者、および、政府関係者でない人となります。

※応募対象者の詳細は以下のTrailblazer Communityの投稿にある「公式ルール」を参照ください(リンク先はログインが必要です)

https://success.salesforce.com/_ui/core/userprofile/UserProfilePage?u=0053A00000DbrkI&tab=sfdc.ProfilePlatformFeed&fId=0D53A00004fboT5

 

●チャレンジを開始する前に

達成日時などを映したキャプチャーが要求されます。

泣きを見る前に「キャンペーン詳細資料」を確認しましょう。

※以下のTrailblazer Communityの投稿にある「キャンペーン詳細資料」を参照ください(リンク先はログインが必要です)

https://success.salesforce.com/_ui/core/userprofile/UserProfilePage?u=0053A00000DbrkI&tab=sfdc.ProfilePlatformFeed&fId=0D53A00004fboT5

 

●チャレンジについて

チャレンジは1~4まであり、1つ達成するごとに応募できます。

また、チャレンジクリアをTrailblazer Communityで投稿することでチャレンジ毎にもう1つ。

なんと、1人につき8回まで応募できます(公式ルール参照)

 

●チャレンジの内容

以下の1~4です。いずれも期間中に達成する必要があります。

また、4はユーザに条件があるため注意が必要です。

1.「EXPLORER」ランクになる

2.「RANGER」ランクになる

3."テレワーク・リモートワークに役立つTrailmix”をクリアする

 https://trailhead.salesforce.com/ja/users/kotsuka/trailmixes/remotework-trailmix

4.目的別Trailmixクリアする(以下いずれか)

 4-1.営業・マネージャー向けSalesforce活用促進支援 <<営業職の方限定>>

  https://trailhead.salesforce.com/users/dnakagawa1/trailmixes/trailmix-salesmanager

 4-2.初級管理者&推進者向け <<管理者・推進者の方限定>>

  https://trailhead.salesforce.com/ja/users/keikoniimi/trailmixes/adminlex

 4-3.はじめよう、Service Cloud <<Service Cloudユーザーの方限定)

  https://trailhead.salesforce.com/ja/users/hiroki-omori/trailmixes/lets-start-service-cloud

 4-4.Pardot管理者向け <<Pardot管理者の方限定>>

  https://trailhead.salesforce.com/ja/users/ykawagoe/trailmixes/learnpardotinjapanese

 

●応募方法

フォームから応募になります。

1項目達成用と複数項目達成用の2種類が用意されています。

 ・チャレンジ1項目クリア用 応募フォーム https://sfdc.co/StayHomeTrailheadSingle

 ・チャレンジ複数項目クリア用 応募フォーム https://sfdc.co/StayHomeTrailheadMulti

また、チャレンジを達成したら、Trailblazer communityに投稿しましょう。ハッシュタグ(#ステイホームTrailhead #sweepstakes)も忘れずに!

 

●最後に

スキルアップして、運が良ければ景品もGet!

皆さんもぜひチャレンジしてみてください。

Salesforce Spring'20の新機能を試してみました!

この記事は Salesforce 開発者向けブログキャンペーンへのエントリー記事です。

 

久々に日本限定のキャンペーンが開催され、自称Salesforceキャンペーン芸人としては参加せざるを得ない、かなさんです。

 

この機会に、気になっていたけどまだ試せていなかった「Salesforce Spring ’20 の新機能」に挑戦してみました!

 

 ●注目の新機能「SOQLクエリの権限チェック」

「SOQL クエリの WITH SECURITY_ENFORCED を使用した項目およびオブジェクトレベル権限チェックの有効化 (正式リリース)」

Salesforce開発者のみなさまはご存知と思いますが、Apex はシステムコンテキストで実行されるため、すべてのオブジェクトと項目にアクセスできます。

そのため処理の前に実行ユーザが対象のオブジェクト、および、項目に必要な権限があるのかチェックする必要があるのですが、それが結構手間だったりします。

そのため、「 WITH SECURITY_ENFORCED」でチェックを省力化できるならと大分期待を寄せていました。

 

●検証のために行ったこと

確認用の項目を作成し、取得するSOQL(Apex)と表示用のVFを作成しました。詳細は1.~5.を参照ください。(結果だけ見たい人は次の●へ進んでください)

1.オブジェクトにカスタム項目「権限確認用項目」(C_Item_T_TestItem__c) を作成し、標準プロファイルは参照不可とした

2.Apexを作成

f:id:endoukanako:20200323000450p:plain

3.VFを作成

f:id:endoukanako:20200323000514p:plain

4.VFのカスタムタブを作成

5.アクセス権限のない、標準プロファイルユーザで動作確認

 

●結果

1.SOQLで取得する項目にアクセス権限がない項目が含まれる場合(VFの「データ取得」ボタンを押下し、ApexのgetAccountListを実行した結果)

⇒想定通り、エラーになりました。アクセス権のない項目は取得できません!

f:id:endoukanako:20200323002551p:plain

 

2.SOQLのWHERE句にアクセス権限がない項目が含まれていてる場合(VFの「データ取得2」ボタンを押下し、ApexのgetAccountList2を実行した結果)

⇒想定に反し、アクセス権のない項目で絞り込まれたデータが取得できてしまいました・・・。

f:id:endoukanako:20200323002708p:plain

 

開発ガイドに「WITH SECURITY_ENFORCED を使用できるのは、SELECT および WHERE SOQL 句に限られます」と記載があり、WHERE句では使えると思ったのですが、

英語版に切り替えてみたところWHERE句で使えるかどうか非常に怪しい感じでした(英語力のある方誰かお願いします)。

 

●まとめ

SOQLで項目およびオブジェクトのセキュリティをチェックする「WITH SECURITY_ENFORCED」は、現時点では使いどころが限られる機能であることが分かりました。

今後改良されて、将来的にはSOQLでのセキュリティチェックは「 WITH SECURITY_ENFORCED」を付けるだけでOKになってくれると良いなと思います。

Japan Dreamin'に参加してきました

2020年1月25日(日)にAbema Towersで開催された「Japan Dreamin'」に参加してきました。

www.japandreamin.com

  

イベントは朝の10時から開催されていたのですが、家の都合で朝から行くことは難しく、ランチセッションから参加しました。

5つのトラックがあり、同時に気になるセッションが行われていて、どのセッションを聞こうかかなり迷いました。

最終的に、以下のセッションと懇親会に参加しました。

 

●各セッションと懇親会の感想

・パートナーとのビジネスを広げるmy Trailhead for Partner Community

 ご飯を食べながら聞く形式のセッション。my Trailheadのコンテンツは簡単に作れるものの、クイズは選択式のみ、社員とパートナーの両方には公開できない、コンテンツは個人ごとの管理で共有が大変(Zipで固めて送る)などの弱点が判明。これからの改良が待たれるところです。

 

・【アドミン/デベロッパー向け】ハンズオンで学ぶ!テクニカルアーキテクト体験ワークショップ

 デモシナリオを基にオブジェクト構成図をまずは個人で作成し、次にペアで話し合い、最後に4人で話し合ってまとめて最終版を作成し、投稿するというワークでした。
 標準オブジェクトを使うのかカスタムオブジェトにするのか、オブジェクトの関連を主従にするのか参照にするのか、アクセス権をどうするのか、どの情報をまとめてどの情報を分けるのかなど、迷うポイントがいっぱいありました。

 この悩むポイントは実務で悩むポイントとほぼ同じなので、もっと早く決定できるようになりたいと思います。

 また、人によって同じシナリオでも出来上がる構成図が違い、その考えを聞くことで違う視点に気づくことができました。

 

・LEX Mobileから紐解くSalesforceモバイル史

 途中から聴講。昔はimodeでSalesforceモバイルを動かすAppExchangeがあったものの、画面が狭いという問題点が。
 最新のLEXモバイルではLightning ページの種類に電話ができて、より簡単にカスタマイズできるようになり、使い勝手も向上しました。

 

・これで差がつく!プレゼン資料の作り方

 あえて全くSalesforceの話をしないというセッション。昨年からプレゼン資料の作り方で悩んでいたので迷わず参加しました。

 「読むことは書かない」「スライドは説明を補足するもの」という、知ってはいるものの出来てはいない資料作りのポイントをよい資料と悪い資料の対比でとても分かりやすく説明。

 また、「フォント」「カラー」「スパン」「アニメーション」の4つのキーワードをもとにやった方が良いポイントを端的に紹介。

 更に、参加者限定の上記の内容を満たすテンプレート配布まであり、最高でした!

 これからは「あれもこれも目立たせることはなにも目立っていない事と同じである。」という名言を胸に刻んで資料作成を行おうと思います。

 

・【誰でも参加可能】Trailhead バッジソン大会!

 参加する予定はなかったのですが、気が付いたら現場に連行されていました←

 とはいえ、最近Trailheadをあまりやれておらず、バッチを取得する良い機会になりました。時間内で何とか4バッチを取得し、景品までいただきました。

 

・チームSCTBのService Cloud王は俺だ!!

 アシスタントとしての参加し、クイズを盛り上げました。

 クイズには「Enterprise Editionのライセンス料は?」といった初級問題から、「Field Service Lightningのパッケージの提供元で最近買収された会社の名前は?」というマニアックな問題まで出題されました。

 9名の熱き戦いの結果、初代クイズ王はTeamspiritの畑本さんに決定しました!

f:id:endoukanako:20200126005630j:plain

 

・Closing Keynote

「コミュニティはとても大事ですごく力がある」ということが語られました。また、参加者にも「自分にとってのコミュニティ」についてコメントが求められ、短いながらコメントさせていただきました。

コメントしたお礼として「Hootie」(Salesforce Academyのフクロウキャラクター)のぬいぐるみをいただきました!これは、そろそろアストロからHootieになるっきゃないですね。

f:id:endoukanako:20200126010004j:plain

 

・懇親会

スポンサーによるLTを聞きつつ、飲んだり食べたり話したりしながら新旧の知人と交流を深めました。

また、豪華景品をかけたクイズもあり、「サンフランシスコのohanaフロアの階数」や「ベニオフの年齢」という頻出問題もあったのですが、全く分からず。 次回に備えて調べておこうと思います。

 

●まとめ

今回も大いに楽しみ、様々な人と交流することができました。

次回はそろそろ賑やかしからスピーカーやボランティアにシフトしていきたいと思っていたり。

では、またどこかのイベントか来年のJapan Dreamin'で会いましょう!

VS Code Meetup #2 - Live Share編に参加してきました

2020/01/23(木)に開催された「VS Code Meetup #2 - Live Share編」に参加してきました。

vscode.connpass.com

 

Live Share編と冠しているだけあって、「Live Shareという機能がどのようなもので、どんな使い方ができるのか」という発表とデモがメインでした。

Live Shareを全く知らなかったので、プロジェクトはもちろん、サーバーやターミナルも共有することができ、チャットや音声でやり取りしつつ共同作業したり、デバックができることに驚きました。

イベントでは、大阪会場のPCのVSCodeのプロジェクトを東京会場のPCに共有し、東京会場の人にデバッグ実行してもらって不具合個所を特定するというデモが行われ、

「ラーメンの画像を投入しその画像がラーメンかどうか判定するアプリ」のバグ(うどんの画像を投入しても”次郎”と判定されてしまう)の原因(ラベルの判定後に特定値を再設定している)が見事特定されました。

 

また、セッションやLTを通して、VSCodeを複数開く場合に枠の色を変えられる「Peacock」や時間をトラッキングしてくれる「WakaTime」という拡張機能はもちろん、「拡張機能の右下に出てくる歯車のマークからバージョン指定して拡張機能をインストールできる」などの有用な情報を知ることができました。

早速、自分で利用するとともに、チームと情報共有しようと思います。

ただ、セッションやLTが盛り上がりすぎたためか時間が押してしまい、スポンサーセッションが5分からひと言に、ネットワーキングがすべてカットになってしまったのは残念でした。

 

●次回の開催予定

次回は2月に「拡張機能」をテーマに開催予定とのこと。

イベントの公開が待ち遠しいですね!

新機能であそぼ

この記事は Salesforce Platform Advent Calendar 2019 - Qiita 22日目の投稿です。
 
Salesforce Spring'20のSandboxプレビューとリリースの日程が発表された今日この頃。皆様いかがお過ごしでしょうか、かなさんです。
リリースノートは読んでみたけど、試してみないと分からない。早く試したい!という、Sandboxプレビュー待ちという貴方に朗報です!
Salesforceにはアップグレード後の機能をいち早く試せる「プレビュー組織」があります。
 

●プレビュー組織とは

プレビュー組織の特徴は以下の通り。
・Sandboxプレビューより先にバージョンアップが行われる
 リリースノートが出るよりも早く新機能を体験できます
・自動的にバージョンアップされる
 一度取得すれば毎シーズン自動的にバージョンアップされます
・個人で取得できる
 「会社のSandboxには社外から接続できない・・・」なんて貴方も安心です
 
Spring'20のプレビュー組織は以下のページより取得することができます。
(注意)プレビュー組織の取得ページのURLはバージョンごとに異なります。古いバージョンのURLだと組織は取得できなくなるようです。
 

●新機能を見つけてバッチもゲット!

また、Trailblazer Communityの「* Release Readiness Trailblazers *」というグループでは、バージョンアップごとに「Treasure Hunt」という企画が行われています。
「Tresure=宝物(新機能)」を見つけて共有しようという催しで、参加するとTrailblazer Communityのプロファイルにレコグニションのバッチが付与されます。

f:id:endoukanako:20191221205716p:plain

●最後に
プレビュー組織を利用すれば、今すぐに新機能を試すことができます。
休日に、年末年始の長期休みに、新機能で遊んで、あわよくばカッコイイバッチをGETしちゃいましょう。
(別に日本人の参加者が他にいないから寂しがってるわけなんかじゃないんだからねっ!) 

くたばれ!日本語ドキュメント

この記事は「Salesforce Advent Calendar 2019」の9日目の記事です。

qiita.com

 

皆さんこんにちは。SWAG大好き!かなさんです。

初日の方がかなりかっ飛ばした記事を書いてくれたため、思わず「こいつは負けていられねぇ・・・」とインパクト重視のタイトルをつけてしまいました。

後悔はしていないっ!←

 

Salesforceとは

この記事を読んでるほとんどの方がご存知とは思いますが、念のため解説。

Salesforceアメリカ生まれ、アメリカ育ちの「企業と顧客をつなぐ顧客管理ソリューション」です。詳細は公式を参照してください。

www.salesforce.com

 

●日本語でおけ?

Salesforceは世界中に展開しており、複数の言語で利用することが可能です。

もちろん、日本語でも!

そして、年に3回あるバージョンアップの内容を記した「リリースノート」も、開発者向けのドキュメントも、QAを扱うヘルプも、果ては資格試験も日本語でOKです!

最高ですね!

 

そんな装備で大丈夫か?

「な~んだ、日本語だけで全然問題ないじゃん」と思った貴方。危ないですよ!

各種ドキュメントにも記載されていますが、Salesforceで正とされるのは英語版です。

具体的には以下の通り。

・ドキュメントで翻訳版と英語版で差異があった場合、正しいのは英語版

・ヘルプも最新情報は英語版

・リリースノートで更新情報が記載されるのは英語版だけ

予算の都合で、ある時点の英語版を各言語へと翻訳し、翻訳後は更新されなためこのような対応になるようです。

 

気を付けないと、

「知りたい情報が出てこない」「機能のリリース延期に気が付かない」なんてことに。

かなさんは最近ナレッジの調査をしてて、オブジェクトリファレンスを全部見たのにナレッジ関連のオブジェクト「Knowledge__ka」「Knowledge__kav」の情報がないなーと不思議に思ってたら、ふと英語に切り替えた拍子に両方とも出てきて泣きました。

(画像は「Salesforce および Lightning プラットフォームのオブジェクトリファレンス」のバージョン47.0の日本語版と英語版。同じ版は思えないほどKnowledgeの項目数が違う)

f:id:endoukanako:20191208172224p:plain

日本語版

f:id:endoukanako:20191208172500p:plain

英語版

 

●自衛するしかない

英語力が皆無なので、母国語である日本語でドキュメントに触れられるのはとてもありがたいです。とはいえ、 たまに不意打ちでやられるとかなりキツい。。。

そのため、可能な方は英語版を。私のように全編英語が難しい人間は、ヘルプやドキュメントなどで少しでも違和感を感じたら英語版を見て自衛しましょう。たいていはGoogle翻訳で何とかなります。←

なお、ヘルプのあるTrailblazer communityはログインしてると言語が切り替えられないので注意してください。(下図参照。非ログイン時に表示されている言語切り替えが、ログイン時には表示されなくなる)

f:id:endoukanako:20191208175323p:plain

非ログイン状態

f:id:endoukanako:20191208175254p:plain

ログイン状態

 

●最後に

ドキュメントやヘルプ、リリースノートは「英語版が正版」という注意点を知ったうえで、上手に付き合っていきましょう!