続 slackからチームスピリットの打刻を行うには -botkit express mongodbでの実装-
続 slackからチームスピリットの打刻を行うには -botkit express mongodbでの実装-
前回のpostはこちら:https://geeorgey.com/archives/3569
前回までの機能では、Salesforceのセッションが切れた場合、再度OAuth用のリンクを踏んでセッション情報を取得する必要がありました。チームスピリットの打刻は出勤日に使うので、毎朝セッションが切れていると不便で仕方がありません。
そこで、SalesforceAPIにはセッションが切れた場合に、新しくアクセストークンを取得する仕組みがあるので、そちらの実装を行ったのが今回のアップデートです。
Salesforceのセッション情報はmongoDB上に保管され、時間が経ちセッションが切れると、その情報を使って新しいアクセストークンを取得、そちらのデータでmongoDB上のデータを置き換えます。そうすることで、一度Salesforceとの接続処理を行っておけば、再度セッション情報を取得する必要がな…
slackからチームスピリットの打刻を行うには -botkit express mongodbでの実装-
slackからチームスピリットの打刻を行うには -botkit express mongodbでの実装-

# ts-dakoku-node-express コードはGithub ベース: Slackforce https://github.com/ccoenraets/slackforce 実現されること – slackのスラッシュコマンドからチームスピリットの打刻を行うことができる – スラッシュコマンドを使ったslackアプリの拡張性を考慮してあります。 環境 – node.js – botkit – express //webサーバ – mongodb //slackの認証情報の保存 node.js上で動きます。私の環境ではheroku上で可動しています。 チームスピリットの打刻用Apexについて ngs/ts-dakoku をそのまま使わせてもらっています(ngsさんに感謝) https://github.com/ngs/ts-dakoku/tree/master/apex/…
[salesforce]承認プロセス終了のタイミングでプロセスは呼び出せないのでトリガーを使うという話
Salesforceの主要機能である商談管理。弊社リバネスではこれに経費データをぶら下げて、商談から稟議承認プロセスを回していました。
四年前であれば、それでもまぁ行けたのですが、ここ数年、事業のスピードが早くなってきたこともあり、承認申請プロセスの最中だと商談がロックされて手が出せないこともあり、関連するデータの更新が滞るという事が度々起こりました。
対策対策はシンプルに、承認プロセスは対象オブジェクトに対して行うという形にしようというものです。
今までこれをやらなかった理由は、商談ページ上で完結できなかったためです。つまり、経費オブジェクト上で承認プロセスを回したいなら経費オブジェクトを開いた上でやらなくてはなりません。Salesforce経験が浅いタイミングでこれをやるのは混乱の下だと判断しました。
今回、この実装に踏み切ろうと考えたのは、承認申請ボタンをVisualforce等…
共有・意識喚起のslackと、実行催促のsalesforce chatterという使い分け
前回こんな事を書きました
Lightning Component開発でいろんなオブジェクトを作って設置してみたらSalesforceの便利度が激増したという話
Qiitaには実際のコード付きでこんなことも書きました
Lightning componentでteamspiritの勤怠打刻を行う今回は、Lightning Componentを作っていて、slackとchatterの使い分けがわかりやすくなってきたなと感じたのでそのまとめです。
これまでの使い方これをSalesforceの方に言うと、あんまりいい顔されないのですが(そりゃそうだとはおもう)社内チャットツールはslackを使っていて、chatterは使ってなかったんですね。
slackはやはりその強力なインテグレーション機能が便利で、slack上では日常的なスタッフのやり取りのみではなく、バッチ処理の結果を流したり、
休暇を取っ…
Lightning Component開発でいろんなオブジェクトを作って設置してみたらSalesforceの便利度が激増したという話

Salesforceユーザの皆様こんばんは。巷ではLightning Experience、略してLEXの利用が推奨されて久しいですが皆さんの環境はいかがでしょうか。
弊社リバネスでは、Salescloud Einstein導入時にLEXへ移行してみたのですが、如何せん使いづらいこともあって行ったり来たりしていました。
しかし、LEXが圧倒的に便利だなと言う感覚が分かってきたので共有したいと思います。
恐らく肝はLightning ComponentLightning Componentっていうのは、機能が詰まったモジュールという感じで、いろんな場所に配置することが出来ます。
最初はこれ、何に使うんだよと思っていたのですが、使い所がやっとこ分かってきました。
トップページへの配置リバネスのSalesforceトップ画面はこんな感じ左上にあるニュースなんかはSalesforceのデフ…
Dreamforce18に行ってきました #DF18
昨年の記録はこちら
https://geeorgey.com/archives/3490
9月末のサンフランシスコの気候はどうなんだ?2018年は、昨年の自分の記録を見て服装を選んだつもりが結構寒かったです。
長袖シャツ&薄手のジャケットという格好だと少し冷えるかなという感じでした。
日向と日陰の寒暖差が凄いので寒がりな人は気をつけましょう。夜は羽織るものがあったほうが良いですね。どうやって参加したか昨年はパスだけオンライン登録して、フライトと宿は別でとったのですが、これがかなり厳しかったので今年はJTBのツアーに申し込んでしまいました。(自分で取ってる暇もないし)
ホテルはPARC…
KUSANAGIのphp7へのエクステンションの追加方法
KUSANAGIを使ってからそれなりに経つのですが、わからないことが多くて試行錯誤の日々です。
今回は、php-soapを入れたかったのですがよくわからず。というか、KUSANAGIの理解してないっぷりが露呈する結果となりました。
KUSANAGIでは、php-fpm環境とphp7-fpm環境が選べるのですが、今何を使っているのかを調べるには
$ kusanagi status
と打てばわかります。
# kusanagi status Profile: ******* FQDN: ******* Type: WordPress KUSANAGI Version 8.4.0-3 sakura *** (active) nginx *** ● nginx.service - The NGINX HTTP and reverse proxy server Loaded: loaded…
VisualforceでExcelで開けるファイル(複数シート)を作成してダウンロードする方法
指示書を作成する際などにExcelで共有しないといけないというシチュエーションはそれなりにあると思います。
Salesforceには構造化されているデータが有るが、例えばリードと取引先担当者に散っていて、一つのレポートでは出力出来なかったり、一つのレポートでデータリストは出力できるものの、それを適宜フィルタ処理をして別々のシートにリストを記載したり、はたまたそのデータリストを集計するテーブルを別シートに設けたり。
処理が複雑になればなるほどミスが発生しやすくなるので、直接Excelファイルを出力したいと思うことはあるのではないでしょうか。
こんな方法があるとは知らずに手作業していたのですが、感動しました。おすすめです。
OPEN XML形式でファイルを出力すればExcelで読み込むことが出来る参照:VisualforceでCSVファイルとExcelファイルを出力するには
Visualfo…
Google Chartsを使って層別散布図を書くには

散布図を書こうと思う。 データはグループ化されており、それぞれを色分けした散布図が書きたい。でもよくわからずにハマったので書く。 サンプルはここにあるんです よくある散布図ですね。 これを青一色じゃなくて、グループごとに分けたいときあるじゃないですか。ないですか。あると思います 結論から言うとこういう散布図 これを例に取ると、年次別のデータにグループ化しておいて、それを表示しましょうというもの。 しかし、サンプルには書いてないんですね。なんだよそれって。 書き方 function drawGradeM() { var button = document.getElementById(‘change-chart’); var chartDiv = document.getElementById('chart_div’); var dataGradeM = new…
[Salesforce]カスタムコンポーネントから読んでるカスタムクラスのテストを書くには
Page A から ClassAを呼び Page Aの内部から ComponnetBを呼び出し ComponentB から ClassCを呼び出す場合のClassCのユニットテストを書くにはどうしたら良いか。 呼び出してるし、そのままClassAのテストで通るだろうと思いきやそんなことは無く、テスト内部でインスタンス化しないとだめでした。 YourCustomClassName ycc = new YourCustomClass(); って奴ですね。 その中にメソッドがある場合は ycc.yourmethod(); みたいな感じで呼び出しておけば良いみたいです。





