きゃらめるの備忘録

Salesforceに関してお勉強したことをまとめるブログ。目指せ週1更新~~~!

恵比寿Salesforce勉強会とSalesforceSaturday 池袋に参加していました!

こんにちは、きゃらめるです。
最近本業務の方が大きなリリース前で、結構バタバタしております。。
本業務も好きなんですが、毎日遅くまで脳みそ使うのはしんどいですね…。

まぁ、平日の分、なんとか土日で勉強せねば~ということで、
1月19日の「第16回 恵比寿Salesforce勉強会」と
2月2日の「SalesforceSaturday 池袋 #03」に参加してきました!

恵比寿Salesforce勉強会

ebisu-salesforce.connpass.com

こちらは今回が初参加!

前回参加した池袋の勉強会より、人数の規模も会場も大きかったです。
その分、作業中に参加者同士で話すことは少なく、
(知り合いの方と参加しておられる方はコミュニケーション取っておられました!)
作業を進めるというところに集中していた感じでした。
平日に時間取れない分、こうやって集中できる時間はありがたいですね!
イヤホンをしてノリノリで作業してました。

あと、おすすめのTrailMixの情報がイベントページのコメントで送られていたり、
Leaderboardでバッチやポイントの獲得数が可視化されていたり…。
タイトルに「Trailheadもくもく会」とついているだけに、
Trailheadを進めたい人のための情報が提供されているなと感じました!
ただ、別にTrailheadを進めている方だけではなくて、私もLT会の登壇資料とか作ってました~。

もちろん(?)、作業中の飲食はOK。
恵比寿駅からも近く、すぐそこにコンビニがありました。
会場は毎回同じなのかな?
人数は多いのですが、作業スペースは十分です!

もくもく会のあとは懇親会があります。
机や椅子を移動させて、お酒とピザ・お菓子が出ていましたよ~。
私は、先約があって懇親会には参加できなかったのですが、
あれだけ多くのSalesforce担当者の方が集まっているので、きっと面白い話が聞けたんだろうな…。
第17回は参加できないので、第18回を楽しみにしようと思います!

SalesforceSaturday 池袋

salesforcesaturday-ikebukuro.connpass.com

こちらは前回も参加して、ブログを書かせていただいていますm(_ _)m
calamel-nuts.hateblo.jp

参加人数も少人数で、場所もこじんまりとしているのですが、
個人的には、これくらいの規模感がちょうどリラックスできるかもしれない…笑

今回は、Salesforceを触り始めた方からSalesforceの猛者な方まで集まっていました!
Trailheadを進めておられる方が多かったですが、
業務で困っていることを質問して、猛者な方に教えてもらっている参加者の方もおられました!


※ツイート拝借しました;

私も便乗して、もくもく会終了~懇親会までの間に、業務の悩みを相談させていただいたり…。
作業時間を確保するために勉強会に来ている側面ももちろんあるのですが、
こうやって、Salesforce担当者の方とやりとりができるのは本当にありがたいです~~~!

また、前回もお菓子をお土産にもってきてくださった方がいらっしゃったんですが、
今回もお菓子をいただきました。。ありがとうございます!!
私なんて自分で食べる用のお菓子しか持ってきてなかったのに…かたじけない…。
次回用に日持ちするお菓子を買ってきておこうと心に決めました笑
懇親会は前回同様近くのお店で開催されるとのことだったんですが、今回は所用で参加できず…。
こちらもも次回こそかなー…。。

SalesforceSaturday 池袋 に参加してきた話

今更ながら、あけましておめでとうございます。
きゃらめるです。
今日は、こちらの勉強会に参加してきました。
salesforcesaturday-ikebukuro.connpass.com

SalesforceSaturday Tokyoとは?

上記のConnpassページの説明文をお借りすると、「土曜日にSalesforceの勉強をしたいみなさんを繋げて盛り上げる」コミュニティとのこと。
いわゆる、もくもく会形式の勉強会を開催しておられます。
Trailheadをやっておられる方が多かったですが、Salesforceの動画を見たり、イベントの準備をしたり、
いろんな方がいらっしゃいました^^
今回は池袋のイベントでしたが、恵比寿や赤坂でも開催しておられるそうです。
ちなみに、1月19日は恵比寿で開催されるそうです!(私も参加します!)

ebisu-salesforce.connpass.com

今回私がやったこと

今回は2つのモジュールを完了させました!


今までは既存のコードを見ながら雰囲気でApexを書いていました。
なので、ちゃんとイチからApexを学び直そう!と思い、この2つのモジュールを勉強することにしました^^
普段書いているコードなのに、改めて勉強し直すと知らないこともちらほら…。

例えば、Trailheadに例として出ていたこのSOQL。

SELECT Name, (SELECT LastName FROM Contacts) FROM Account WHERE Name = 'SFDC Computing'

取引先のName項目と、取引先に紐づく取引先責任者のLastName項目を取得することができます。
こんな風に、親レコードに対する子レコードの情報を1文のSOQLで取得することができるんです。
す、すごい~~~!なんで今まで知らなかったんだ~~~!笑
これ、カスタムオブジェクト同士だったら、参照/主従の関係を定義している項目のAPI参照名が、
FROM句(上のクエリだったら「Contacts」)に入るのかな?
試してみよう…。

あと、SOSLは本当に使ったことがなかったのでこちらも驚き。こんな言語もあったのね!
複数オブジェクトの全項目対象で検索かけられるの、すごいとは思うけど、
レコード数増えた時がちょっと怖いような気もしました。
レコード数が増えても高速に検索できるんだろうか…?

トリガに関しても学ぶことが多く…。
例えば、弊社のトリガでは(意外に)ちゃんと一括でデータ挿入や更新をしているんですが、
そのあたりの書き方も、今までは独自の実装なんだと思っていました。
今回Apexトリガのモジュールをやってみて、その方法がSalesforceから推奨された実装だということも分かりました。
今まで、
「既存がこう書いてるから、とりあえず合わせておこう」
「既存でこの処理したいときにこう書いてるから、コピペすればいけるやろ」
くらいの気持ちで書いてたApexコードの意味が、やっとちゃんとわかってきたような気がします…!
はじめてプログラミングを習って、if文とかfor文が使えるようになったころのワクワク感に似てる笑

イベント中は、基本的に自分のタスクをもくもくと進めていたんですが、
「同じSalesforceを勉強している人が近くにいる」という状況で勉強するのはいいですね!!!
すごく捗りますし、安心感がありました!!
また、飲み物・食べ物も持ち込み可能だったので、おやつをもぐもぐしながら勉強できたのもよかったです笑
19日の勉強会も楽しみです~~~!^^

SandBox更新をかけた結果、ローカル開発環境ではまった話

こんばんは、きゃらめるです。
今日は掲題の通りの話をしたいと思います。
ネット上で探しても、ズバリ!という解決策が見当たらなかったので、
せっかくなので残しておきます…。

発生したこと

以前の記事で、Apex開発時のローカル開発環境をVisual Studio Codeに変更しておりました。
calamel-nuts.hateblo.jp

私の場合、弊社のSandBox環境と連携させています。
これによって快適なローカル開発が行えていたのですが…
先週SandBoxを更新したことにより、「Retrieve Source from Org」が効かなくなってしまいました。
Retrieve Source from Orgは、親環境の最新のソースコードを下ろしてくる大事なコマンド。
その他、OAuth接続する系のコマンド全て(デプロイなども)効かなくなりました。

そして、エラーには以下の文言が…

ERROR:  This org appears to have a problem with its OAuth configuration. Reason: invalid_grant - authentication failure 
username: xxx@zzzz.co.jp.test, 
clientId: <Not Specified>, 
loginUrl: https://test.salesforce.com, 
privateKey: <Not Specified>. 

clientIdやprivateKeyが指定なしになっている…!!

原因調査

はじめに、弊社で使っているSalesforceSVF Cloudでも、SandBoxの更新をかけると接続できなくなるので、原因としては同じかな?という仮説を立てました。
つまり、

  • SandBoxの更新をかける
  • SandBoxが新しい組織になってしまう
  • 今までの接続情報ではログインできなくなる。

ということで、今までOAuth接続できていたものができなくなったと。

ということはやることは一つ!
再度、組織を紐づけ直してあげればいけるはず!

解決策

で、この組織を紐づけ直すという作業をどうしたらいいのかが分からず、
いろいろ調べていました。
その結果、

sfdx force:auth:web:login

このコマンドを実行することで解決しました!

コマンドを実行すると、いつものSalesforceのログイン画面が開きます。
その画面からログインをすると、アクセスの許可を求める画面が開きます。
そこでアクセス許可をすると、以下の内容がVisual Studio Codeのターミナルに表示されます。

Successfully authorized xxx@zzzz.co.jp.test with org ID 00Xx00000000xxxXXX
You may now close the browser

これで完了です!よかった~~~!

解決方法が分かっても、コマンドを覚えてなさすぎて結構ハマってしまいました。
sfdxのコマンドにも、これから少しずつ慣れて行かなきゃいけないなと思ったできごとでした…。
会社のTipsとしてもまとめておこう~~~。

Salesforce女子部に参加してきたよ~~~!

こんばんは、きゃらめるです。
2日前にはじめてSalesforce女子部に参加してきました。

Salesforce女子部とは?

sfggjp.connpass.com

上記のconnpassページには「Salesforceと技術に興味がある女性のためのコミュニティ」とあります。
エンジニアだけではなく、システム管理者やビジネスユーザーなどなどどんな方でも歓迎!とあったので、
気軽に参加することができました^^

今回のイベントは・・・?

sfggjp.connpass.com

Salesforceに関するLTをしてきました。
皆さんいろんなSalesforceの使い方を紹介してくださって、
これは私も使ってる!というものから、こんな機能あるんだ・・・というものまで様々でした。
Salesforceの中の話(技術系の話?)が多く、とてもタメになる中、自分と弊社の話ばかりしてきました。。
今回は業務の話なので、スライドは公開できませんが、
次回はSalesforceのハマりどころとかTips系の話ができたら嬉しいです!(*'ω'*)

ちょっと週一更新なのに今回は短すぎますね・・・。
この週末は、Spring'19のリリースノートから遡って読んでいこうと思います。
ブログ書けたらいいな~~!
ちょっと主業務でバタバタしてしまい、Salesforceの勉強があまりできていないきゃらめるでした。。

Salesforceの勉強、何から手を付けていいか分からないマン

こんばんは、きゃらめるです。
今日は、私のSalesforceの勉強方法&内容と、今進めているTrailheadについてログを残しておきます。

私の勉強方法と内容

突然ですが、本日は木曜日ですね!
私の会社では毎週木曜日の業後にもくもく会を開催しているので、その機会をSalesforceの勉強に充てようとしています。
他にもちょこちょこSalesforceの情報に触れる機会を作っているのですが、ざっくりまとめるとこんな感じです。

内容 タイミング
Trailhead もくもく会・予定のない業後・お昼休憩・土日に家で
ブログ執筆 もくもく会(予定)
技術記事を読む 通勤電車内・家で気が向いた時
コミュニティイベントを見つける 業務中の集中が切れた時
Twitter 家で気が向いた時・通勤電車内・業務中に知見があった時

3つ目の「技術記事を読む」では、「Salesforce Platform Advent Calendar 2018」の内容を読んでいます。
qiita.com
今すぐ弊社の環境でも使える便利な話から、使ったことないものを知る楽しさもあり、読んでいて楽しいです!
実は、今まで技術記事を読む習慣がなかった私(エンジニアとしてヤバい)。
それが興味深く読めているんだから、Salesforceすごい。
過去のアドベントカレンダーも、併せて少しずつ読み進めています^^

Trailheadはまだまだ進捗が悪いです・・・。
本日、やっと1つ目の「Trailhead を使用した Salesforce の学習」のトレイルが終わりました・・・笑
ここからスピードアップして頑張りますよ~~~!₍₍(ง˘ω˘)ว⁾⁾

本日勉強してみたTrailheadのトレイル

Lightning Experience の基本

弊社ではLightningを使っていないため、一旦基本から・・・。
まずCRMって何?ってところから。よく聞くけど、よく知らない子ですね。

CRMとは、顧客との関係を管理するマネジメント手法のことです。

「CRMとは、何ですか?」~これで解決!CRM 5つの疑問
マーケ用語勉強した方がよさそうですね・・・。

ちなみに、最初の方にこんな記載がありました。

この変更はすべてモバイルの発展の大きな影響を受けています。

ということで、モバイルの発展に合わせて、
モバイルフレンドリーなUIになったのがLightning Experienceという感じなのかな?

弊社は業務上いろいろな制約があって、Lightning Experienceにできていないのですが、

移行の管理に役立つように、容易に Lightning Experience の使用を開始しながら、
Salesforce Classic も引き続き使用できるようになっています。

ここらへんの機能を使いながら、少しずつ移行を進めるようになりたいな(願望)。
このページは今後載せ替えるにあたって情報がまとまっている~~~!
trailhead.salesforce.com

Visualforce 開発者専用の Trailhead モジュールおよび Lightning Experience アプリケーション開発のためのトレイルが用意されています。

今後はここらへんの勉強がしたい・・・!

Lightning Experience が有効になったら、適切なユーザがアクセスできるようにします。アクセス権は、権限セットとカスタムプロファイルを使用して微調整できます。

以前、弊社でも管理者だけはLightning Experienceが有効になっていたのは、こういうことだったんだなーと納得・・・。

ということで、完了です!


備忘録

今日気付いたんですが、私、Service CloudとかSales Cloudがよく分かってない・・・!
ということで、このページの内容がすごくまとまっていてよさそうだったので備忘。
www.synergy-marketing.co.jp

ServiceCloud・・・カスタマーセンターや問い合わせ対応の管理とか?
SalesCloud・・・商談や名刺、リードの管理とか?
ってことなのか・・・?1つの製品だけじゃなく、組み合わせて使うこともできるそうな。ふむ。

Visual Studio CodeでApex開発環境構築&eclipseとの比較

はじめまして、きゃらめるです。

Salesforce関連で勉強したことを残しておくため、ブログを始めてみました(*'ω`*)
今日のお勉強はApex開発環境の構築です。

弊社では、Apex開発環境として今でもeclipse×Force.com IDEを使っています。
しかし・・・重たいし、共同編集失敗してデグレするし、SandBox直すのに本番からリフレッシュしなきゃいけないし・・・
(※エディタだけの問題じゃないかもしれないんですが・・・笑)
と、結構ツライツライ(ヽ'ω`)な気持ちになっていました。

そんな中、昨日参加したSalesforce - セールスフォース・ドットコム - Salesforce World Tour 2018で、
Visual Studio CodeVS Code)を使った開発環境がトレンドだと知り、試してみようと思った次第です。
今回は、
VS CodeSalesforceを連携させる
ソースコードをGit管理する
③ 現環境(eclipse)と比較する
の3つについてお話します。

参考文献

参考にさせていただいたのは以下の記事です!

VS CodeSalesforceを連携させる部分

qiita.com

VS CodeSalesforceを連携させる

参考文献の通り、

  1. VS Code本体をインストール
  2. Salesforce CLIをインストール
  3. VS Code拡張機能のインストール
  4. ローカルにプロジェクトを作成する
  5. 組織に接続
  6. メタデータの取得とデプロイ

の手順でおこなっていきます!

手順通りにいけば先に進めるので、細かな様子は割愛しますね。

f:id:calamel_nuts:20181206200125p:plain
拡張機能のインストール完了
ちなみに、Salesforce CLIをインストールする前からVS Codeを開きっぱなしにしていると、
リロードしても「CLIがないよ~~~」というエラーがでてしまいました。
一度VS Codeを落として、再度立ち上げたら普通に直りました。

今回は弊社のSandBox環境に接続しています。
SandBox環境なので、

なお、Sandboxの場合はsfdx-project.jsonファイルのsfdcLoginUrlをhttps://test.salesforce.comに書き換えてください。

こちらを適応しています。

あとはサーバーからソースコード群を落としてくるのですが、
manifest/package.xml を右クリックして、「Retrieve Source from Org」をするようにしてください。
それ以外のところを右クリックして「Retrieve Source from Org」をしても何も起きません。

これでVS CodeSalesforceとの連携は完了しました!

ソースコードをGit管理する

手順は3段階。

  1. 最初のコミット
  2. TERMINALに切り替えてリモート先を設定
  3. 最初のgit push

最初のコミット

f:id:calamel_nuts:20181206215401p:plain
この赤丸で囲んだアイコンをクリックすると、最初は「CHANGES」に大量にファイルが表示されます。
右上の「・・・」から、「Stage All Changes」を行い、Messageにコミットメッセージを書き込み、
Ctrl+Enterでコミットできました^^

TERMINALに切り替えてリモート先を設定

f:id:calamel_nuts:20181206215713p:plain
ターミナルはこちらから開くことができます。
VS Code上で完結してくれるのがありがたいです!
eclipseの時は、最初のリモート設定&pushのために、別途gitクライアントを使ってました。)

> git remote add origin https://bitbucket.org/xxx/test_salesforce_repo

※今回、リモート先としてはbitbucketを使いました!

最初のgit push

> git push -u origin master
To https://bitbucket.org/xxx/test_salesforce_repo
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://bitbucket.org/xxx/test_salesforce_repo'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

> git push -u origin master --force

リポジトリを作る時に、READMEファイルを作ったのですが、そのせいか差分が出てしまい、
masterにプッシュできなくなってしまいました。
テスト用に作ったリポジトリだったのでforceプッシュで乗り切ってます・・・笑
複数人で開発する場合はブランチを切るなりしましょう(;∀;)笑

ということで、Git管理の設定もこれにて完了です!

現環境(eclipse)と比較する

まず一番に感じたのは、デプロイが早い・・・!
下手したら1分くらいかかっていたデプロイが、数秒で終わりました・・・。
これだけで載せ替える価値ありです笑

また、今までSandBoxにデプロイをする時は、本番環境からソースコードを取得しないといけなかったんです。
もしかしたらeclipseでもいいやり方があったのかも・・・と思うのですが、このやり方しか知りませんでした。
正直、SandBoxを更新するのに、本番の接続情報をローカルに持っておくのはあんまりいけてないなーと思っていました。
でも、VS CodeだとSandBoxからソースコードを取得して、SandBoxにデプロイできるので、無駄に本番環境と連携させる必要がない!

あと、変更の差分を見やすく表示してくれるところもありがたいですね・・・。
eclipseでもGit管理用のパッケージを入れていたのですが、実際のソースコードの差分は見れませんでした。
なのでいつも、リモートに上げて、プルリクを作ったタイミングで差分を確認・・・。
今考えるとめっちゃ非効率だな・・・!

まとめ

Salesforceエンジニアとしての第一歩ということで、まずは開発環境を変えるところから始めてみました。
VS Code自体も高機能なエディタなので、プラグインを入れたり、デザインを変更することで、
より使いやすい環境が作れそうでワクワクします。
よいプラグインとかあればまた記事書こ~~~!