GoogleスプレッドシートにSalesforceレコードを出力してみた

タンバリンのイノウエです。

管理者だけが閲覧出来るデータがあって、チーム内でだけは権限がなくても共有してあげたい。

でも権限申請は面倒だし、ライセンスの追加購入も難しい...そんな時に、きっと役立ちます。

事前準備

以下、Chromeで行います。

アドオンをインストールする

https://gsuite.google.com/marketplace/app/data_connector_for_salesforce/857627895310

Googleスプレッドシートで新規シートを開く

f:id:Kinoue_tambourine:20200501150457p:plain

データの出力手順

いよいよ本題です。

1.アドオンを有効化する

メニューの「アドオン」から、以下の順でクリックしてください。

「Data connector for Salesforce」→「Click to enable the add-on」

f:id:Kinoue_tambourine:20200501150548p:plain

2.アドオンを開く

再度メニューの「アドオン」から、以下の順でクリックしてください。

「Data connector for Salesforce」→「Open」

f:id:Kinoue_tambourine:20200501150752p:plain

3.Salesforce認証を行う

アドオンを開くと下図右部のような小窓が開きますので、「AUTHORIZE」をクリックしてください。

f:id:Kinoue_tambourine:20200501150823p:plain

別ウィンドウで認証画面が開きますので、ログインしたのちアクセスを許可してください。

f:id:Kinoue_tambourine:20200501150904p:plain

f:id:Kinoue_tambourine:20200501150939p:plain

下記画面に遷移すれば認証完了です。認証画面は閉じても大丈夫です。

f:id:Kinoue_tambourine:20200501151007p:plain

注意事項

このとき表示されるログイン画面はブラウザで持っているセッションに依存します。

データを出力したい環境にログインしようとしていない可能性がありますので、ウィンドウのURLをよく確認してください。

例)お客様環境で作業した直後などはその環境のログイン画面が表示されます。

4.データの出力を行う

アドオンのメニューから「Import」を選択します。

f:id:Kinoue_tambourine:20200501151128p:plain

出力するオブジェクトを選択して「NEXT」をクリックします。 f:id:Kinoue_tambourine:20200501151604p:plain

出力するフィールドを選択して「NEXT」をクリックします。 f:id:Kinoue_tambourine:20200501151633p:plain

必要に応じてフィルターを設定します。条件を指定して「ADD」をクリックします。 f:id:Kinoue_tambourine:20200501151708p:plain

スクロールして出力行数を指定したら「GET DATA」をクリックします。 f:id:Kinoue_tambourine:20200501151730p:plain

実行確認画面が表示されますので「REPLACE」をクリックします。 f:id:Kinoue_tambourine:20200501151755p:plain

出力完了です! f:id:Kinoue_tambourine:20200501151903p:plain

注意事項

・出力に際しては、認証時に使用したアカウントの持つ権限が参照されます。Salesforce上で閲覧権限が無いものについては出力出来ませんのでご注意ください。

・他の人に出力ファイルを共有する場合は閲覧者権限を付与してください。編集者権限を付与すると、出力者の権限でアドオンを使用出来てしまうことを確認しています。

参考文献

base.terrasky.co.jp ※上記サイトには本記事では紹介していない他の機能についても解説されています。

ふりかえり手法の紹介:YWT

タンバリンの髙橋です。ふりかえりのYWT(わいだぶりゅーてぃー)というフレームワークをご紹介します。

YWTとは何か?

日本能率協会コンサルティングが提唱したふりかえりのフレームワークです。 YWTは以下の頭を取った略称です。覚えやすいですね。

- Y:やったこと
- W:わかったこと
- T:次にやること

実施の事前準備

  • 道具を用意する:付箋、サインペン、模造紙またはホワイトボード、タイマー
    • オンライン実施の場合は、使用ツールの事前動作確認必須。
    • trelloやJamboard、miro、DropboxPaper、スプレッドシートなどお好みで。
    • グラフィカルにやりたいか、議事録で二次利用したいか等を判断材料に。
  • ふりかえりのテーマを募集する
  • 参加者の招待、時間・場所の確保

  • タイムスケジュールを決める  

    • 60分ふりかえり時の時間配分目安です。オーバーするのでざっくりでOK

      1. . 話し合うテーマ、グランドルールに同意する(5分)
      2. やったことを付箋紙に書く(個人作業:5分)
      3. やったことを共有する(チーム作業:7分) 
      4. わかったことを付箋紙に書く(個人作業:5分)
      5. わかったことを共有する(チーム作業:7分)
      6. 次にやることを付箋紙に書く(個人作業:5分)
      7. 次にやることを共有する(チーム作業:7分)
      8. アクションに落とし込み合意する(チーム作業:5分)
      9. 全体のふりかえり

()内注記 - 個人作業:個人でもくもく作業 - チーム作業:参加者に対してシェアしたり、みんなでやる作業

実施

1. 話し合うテーマ、グランドルールに同意する(5分)

  • 問題対わたしたち、反省会ではない、一人ひとりの意見を尊重、他、ふりかえりにおけるお約束事を周知します。
  • 上司と部下の関係や、仲違いメンバーがいても、全員が課題と向き合う場と認識してもらいます。
  • 話し合うテーマについて詳細化が必要かどうか、このテーマでOKか、参加者の合意を得ます。

    2. やったことを付箋紙に書く(個人作業:5分)

  • 付箋やtrelloのカードに、テーマに沿って実施したことを個人作業でもくもくと記入をしてもらいます。
  • 良いこともネガティブなことも、事実を書いてもらいます。

    3. やったことを共有する(チーム作業:7分) 

  • 書いた内容を参加者に分かるよう、共有してもらいます。
  • この時、一人30秒以内におさまるように、とアナウンスしてください。
  • 7分以上になっても、皆の書いた付箋はさらっと全体触れられるようにしましょう。

    4. わかったことを付箋紙に書く(個人作業:5分)

  • やったことを踏まえ、良いこともネガティブなことでも、気づきを書いてもらいます。

    5. わかったことを共有する(チーム作業:7分)

  • やったことを共有する、と同様に実施。
  • 他の人へ感謝ポイントがあったら「ありがとう」を伝えましょう。

    6. 次にやることを付箋紙に書く(個人作業:5分)

  • わかったことを踏まえ、次にやることを書きます。
  • やったこと、わかったことに関連しなくても、挑戦・試したいことでもOKです。

    7. 次にやることを共有する(チーム作業:7分)

  • やったことを共有する、わかったことを共有する、と同様に実施。

    8. アクションに落とし込み合意する(チーム作業:5分)

  • 次にやることで出てきた内容を「効果的」「すぐできる」で振り分けて、優先度が高いものから実施できるか、具体的にはどうするかを考えます。
  • BacklogタスクやToDoリストまで記載できると良いです。

    9. 全体のふりかえり

  • 実施した後、参加者の皆さんからフィードバックをもらい、次のふりかえり実施の時の参考にします。
  • 時間が足りなければ、別途フィードバックもらうようにしてください。

既視感ありませんか…?

日報や進捗会議で「やったこと」「次にやること」は報告されていると思います。 ここに「わかったこと」を挟むことで、ミニマムにふりかえりすることができます。

「次にやること」が次のふりかえりで「やったこと」になり、 「わかったこと」で気づいたことを考え「次にやること」がどんどんブラッシュアップされていくイメージです。

(参考)KPT(KPTA)とYWTはどう違うの?

「思い出し」行為

ふりかえりでは、過去の行動を「思い出し」してから分析することが重要になります。 YWTは最初に、やったことを挙げていくので、これが思い出しに当たります。

KPTA(けぷた)では、まず最初に「思い出し」をした後にKeepを挙げるルールがありますが、 「思い出し」をしないまま、いきなりKeepを挙げてしまい、うまく使えない印象を抱く人もいるようです。

向き不向き

KPTAとYWT使い方はほぼ一緒、ではありますが、大きいカテゴリとしてこんな感じかと。

KPTA:業務の内容や目標、カイゼンポイントをふりかえる YWT:経験や学びをふりかえる

また、KPTAのProblem(問題)ありき前提で会話するのを避けたい場合、 あえてYWTのふりかえりを挟むことがあります(メンバーが疲弊しきってるプロジェクトとか)

個人的には、お試しで初回はYWT、2回目以降KPTAの実施をやってみることをお勧めします。

参考リンク

これだけ!KPT(書籍)

KPTとYWTの違いは?

Analytics Cloud External Data APIをPHP/Forrestで試してみた。

どうも、エンジニアの守屋です。

今回はPHP/Forrestを使って「Analytics Cloud」にCSVファイルをアップロードしてみます。

※Forrestとは、PHPでSalesforce/REST APIを便利に扱えるライブラリ。 github.com

今回の記事では認証系は省略します。



【アップロード全体の流れ】

  • InsightsExternalDataにデータ形式情報をセット
  • InsightsExternalDataPartにCSVファイルをアップロード
  • アップロードしたデータの取り込み処理を実行
続きを読む

PhpStormでNode.jsのバージョンを指定してタスクランナーを実行する

エンジニアの安部です。 社内のナレッジ共有ツールのKibelaに記事を書いたらCTOから「ブログ化」Reactionが押されたので記事にしています。
今回はエディタの設定についてです。

※この記事はPhpStorm 2019.3.3で検証しています。
最新/旧バージョンでは動作に差がある場合があります。

他のJetBrains社製エディタで動作するかは検証しておりませんので、ご了承ください。

Run Task 機能

Webフロントエンド開発ではタスクランナーを使って開発することが多いと思います。
ただ、タスクランナーを複数のターミナルのタブを開いて実行していると、「これ実行してたっけ?」となったり、エラーで止まっていることに気づかなかったりすることがあるのではないでしょうか。

タブが複数開いているエディタの図
Terminal Local (2) ってなんだっけ……?

PhpStorm ではそういった時のためにタスクランナーを実行するためのユーザインタフェースが用意されています。
gulpfile.js や package.json を右クリックし、「Show gulp Tasks」もしくは「Show npm Scripts」を選択します。

左ペインに「Gulp」のタブが出現し、ここにタスクが一覧で表示されるようになりました。
このタスクをダブルクリックすることで、下ペインに「Run」のタブが追加され、実行されます。
動作中のタスクのタブには緑色の円形インジケータが表示され、現在実行中かどうかがわかりやすくなっています。

Runタブと動作中watchタブはインジケータが表示され、終了済みのものには表示されない

地味に私がこの機能を気に入っている理由の一つとして、再実行時にワンクリックで済むことがあります。
ターミナルで実行している場合、 Ctrl + C で停止させたあと キーなどから再実行するのですが、Run Task からだとワンクリックで済みます。
また、ターミナルでうっかり複数の watch コマンドを実行してしまうことがあったのですが、Run Task からだと同名の実行中タスクがある場合は警告が表示され、「停止させてから再実行しますか?」と聞いてくれます。優しい。

Node.js のバージョンを指定する

私が受け持っている案件の多くで Node.js のバージョン指定があります。
nodebrew を利用して都度切り替えたり、avn を使ってディレクトリに移動するたびに自動で切り替えるなどしていましたが、複数案件が同時に動いているときもあり、あまり現実的ではありませんでした。
PhpStorm ではプロジェクトごとに Node.js や npm のバージョンを指定し、上記の Run Task などをそのバージョンで行ってくれる機能が存在しますので、あわせてご紹介します。

設定の「Languages & Frameworks」から「Node.js and NPM」を選択します。

f:id:kusamaoabe:20200322161322p:plain

「Node Interpreter」で Node.js のバイナリを指定し、「Package Manager」で npm を指定します。
私の場合は nodebrew で導入した Node.js を指定しています。

ここで指定しておくと、依存パッケージが更新された場合には Project タブから package.json を右クリックして「Run 'npm install'」からその Node.js バージョンからインストールできます。
また、先程表示していた設定画面からもパッケージの追加ができます。
ただ、あまり使いやすくはないのでパッケージの追加をする際はコマンドラインから行ったほうが楽かなとは思います。

では今回はこのへんで。
みなさんも良い PhpStorm ライフを。

Einstein DiscoveryでJリーグの結果を分析してみた

タンバリンながやです。 横浜に引っ越したのをきっかけに横浜Fマリノスの試合に連れて行ってもらってからドハマリしています。

最近、Einstein Analyticsを案件で触る機会があり、SalesforceのAIにタイタニックのデータを分析させてみた - Qiitaに触発されて、Jリーグの2019年の結果を分析させてみました。

データの準備

J. League Data Siteから取得しました。 csvなどはないので手動でコピペしました

  • 順位表 最終節(2017年〜2019年)
  • チーム別集計結果(2017年〜2019年)

※前年度順位:昇格組は20位としています

Einstein Analyticsに取り込み

「作成」→「データセット」→「csvファイル」からアップロード

  • 順位表データ f:id:nagaya_yui:20200423232327p:plain

  • チーム別集計結果データ f:id:nagaya_yui:20200423232414p:plain

  • 上記2つのデータをレシピで結合 キー:チーム、年度

f:id:nagaya_yui:20200423232448p:plain

このデータセットでストーリーを作成

レンズを作成してみる

2019年シュート数と得点

f:id:nagaya_yui:20200423232538p:plain

  • 順位順に並べています。
  • Fマリノスはシュート数も得点も多いですが、シュート数が多いからといって得点が多い=上位とは言い切れない感じがする。
  • 大分トリニータのシュート数がかなり少ないのが気になるが、そこまで下位でもない。 →失点が少ない?

2019年の得点と失点の散布図

f:id:nagaya_yui:20200423232635p:plain

  • 優勝したFマリノスが得点は一番多い。
  • セレッソ大阪が失点は一番少ない。 →得点をもっととれれば順位をあげられた?

ストーリー作成

f:id:nagaya_yui:20200423232752p:plain

順位を最小化

f:id:nagaya_yui:20200423232836p:plain

データが足りないので今回はインサイトのみ

f:id:nagaya_yui:20200423233421p:plain

Einsteinにおまかせ

f:id:nagaya_yui:20200423233503p:plain

改善点がでてきたので、調整して、再度ストーリーを作成

f:id:nagaya_yui:20200423233545p:plain

f:id:nagaya_yui:20200423233618p:plain

シュートを打つこと!

f:id:nagaya_yui:20200423233735p:plain

シュート数417〜453のチームは平均(9位)より7.9上位

シュートを打たせないこと!

f:id:nagaya_yui:20200423233825p:plain

被シュート数235〜297のチームは平均(9位)より5.66上位

前年度の順位が今年度の順位に影響があるかどうか

f:id:nagaya_yui:20200423233859p:plain

前年度1or2位だったチームは今年度も順位が高い確率が高いが、それ以外の順位だった場合、あまり関係がなさそう

おわりに

  • データを準備しきれず、インサイトの分析までしかできなかったのでデータをもっと集めて次回はインサイト分析から2020年の優勝予想、横浜Fマリノスが2020年優勝する確率など出してみたい
  • 選手のデータとかも掛け合わせて分析したらおもしろそう

VPNのおはなし

タンバリン東京開発チームの田中です 最近、リモートワークが増加する中でVPNという言葉をよく見かけるようになりました

タンバリンでもVPNを使用して業務を行なっていたりするのでちょっとまとめてみました

VPNとは

virtual private networkのこと

離れている拠点間のネットワークをLAN(ローカルエリアネットワーク)のように接続できるようにします。 通信が暗号化されているため、外部から安全に通信できます。

暗号化の範囲も種類があり、拠点間のみの暗号化、PCから拠点までの暗号化などがあります。

主に外部から社内の共有サーバにアクセスしたり、会社の固定IPを使用するために利用されます。 f:id:sizukutamago:20200326201610p:plain

メリット

通信が暗号化されるため、通信の傍受などを防げます。 拠点間を繋げられるので、離れている社内LANにある社内サーバなどに接続ができます。 外部から固定IPを利用できます。

デメリット

v6プラスなどのプランで契約をしている回線からだとVPN接続ができない場合があります。

 フリーwifiなどからのアクセス

VPNのアクセスですが、特にカフェなどでフリーwifiや不特定多数の人間が接続できるネットワークに接続するときはVPNを使いましょう。

フリーwifiや不特定多数の人間が接続できるネットワークでは、悪魔の双子攻撃(後述)や通信の解析などにより、通信内容の傍受がされやすいです。

傍受を防ぐためにも、VPNを使って通信することが重要です。

 悪魔の双子攻撃

悪魔の双子(Evil Twin)攻撃とは、正規のアクセスポイントと同じSSIDの偽アクセスポイントを立てて、そこにアクセスしてきた端末の通信を盗む攻撃です。 SSIDが同じだと端末のwifi自動接続で接続されます。怖いですね。

 まとめ

VPNを使って安全にネットワークを使いましょう。 一般向け販売のルータにもVPN機能付きのものがあるので、家からVPNを構築して使うのもおすすめです。