2016年3月10日 (木)

振り返るリリースノート

こんにちは、なかやまです。

ここ最近はLightningのお話が目立ちますね。

今日は、振り返るリリースノートのお話です。

Salesforce案件に関わってきて、早XX年。
色々なリリースがありましたが、心に残るリリースはあったでしょうか?

 

インタビューしたものをまとめてみましたので、ご覧ください↓

 

updateする前にselectしなくてもいいんだよ

Salesforce_01

〜Spring'13〜

この機能が利用できるようになる前は、前もってselectしたオブジェクトに対して更新値を設定す必要がありました。

今はこんな感じで、書けちゃいます。

  a.Phone = '(415) 555-1212';
  a.Id = '00199000002JMim';
  update a;

SOQLの発行回数を減らせるし、ありがたい機能改善でしたね。

http://jp.force.com/releases/release/Spring13/Setting+ID+Fields+for+Updates

 

 

ページレイアウトにレポートで作ったグラフが埋め込めるよ

Salesforce_04

〜Winter'14〜

ページレイアウトにはVFの埋め込みできるので、自前で実装されていた方も多いのではないでしょうか。

開発不要&インプリのみで実現できるので利用されるケースは多いと思います。
https://releasenotes.docs.salesforce.com/ja-jp/winter14/release-notes/reports_embed_pagelayout.htm

 

 

リリース時にスケジュール解除しなくてもOKな設定ができるよ

Salesforce_06

〜Winter '15〜

リリース設定のメニューから選択できます。有効化することでスケジュールを止めることなくデプロイができます。

Photo

http://releasenotes.docs.salesforce.com/ja-jp/winter15/release-notes/rn_deploy_with_jobs.htm

 

 

複数のコミュニティが作れるよ

Salesforce_10

〜Spring'16〜

複数のコミュニティがOKになりました。Sitesも含むそうです。
コミュニティを検討する際の幅が広がりそうですね!
https://releasenotes.docs.salesforce.com/ja-jp/spring16/release-notes/rn_networks_limit_max_number_communities.htm


Salesforce 組織では、最大 50 個のコミュニティを使用できます。有効なコミュニティ、無効なコミュニティ、およびプレビューコミュニティ (Force.com サイトを含む) がこの制限に対してカウントされます。

 

 


sandboxのライセンスを本番と同期できるよ

Salesforce_05

〜Summer '15〜

sandboxのライセンスを本番ライセンスに合わせる機能。この機能がない時代は、sandboxで新しいライセンスを使うためにsandboxの更新をしなければならず、開発中モジュールの退避うんぬんが非常に厄介でした。。

今はボタンを押すだけで同期できます、非常に便利ですね!

Photo_2

https://releasenotes.docs.salesforce.com/ja-jp/summer15/release-notes/rn_deployment_sandbox_match_licenses.htm

 

 

sObjectのメソッドに数式更新のメソッドがあるよ

Salesforce_07

〜Winter '16〜

recalculateFormulas()

数式項目にはselectした瞬間の値が入っています。処理中に数式に利用している項目の値を変更しても数式項目は最新にはなりません。一度レコードを保存して再度selectする必要がありました。それがメソッド1つで最新になるなんて、すばらしい!!

・・・のですが、もう少し見てみると、クロスオブジェクトには使えないとか。。

This method doesn’t recalculate cross-object formulas. If you call this method on objects that have both cross-object and non-cross-object formula fields, only the non-cross-object formula fields are recalculated.

そうかー。まぁそうですよね。
https://releasenotes.docs.salesforce.com/ja-jp/winter16/release-notes/rn_apex_new_classes_methods.htm

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_sobject.htm

 

 

Stringクラスのメソッドが充実してきたよ

Salesforce_02

〜Winter'13〜

たしかに!昔のStringクラスはシンプルでした!

Winter13でガバッと増えましたよね。isEmptyとかjoinとか。
昔のロジックに、メソッドでできることをベタで書いてることがありますが、
そんな歴史があるんです。そっと直してあげてください。

https://developer.salesforce.com/releases/release/Winter13/New+String+Methods

http://releasenotes.docs.salesforce.com/ja-jp/spring14/release-notes/rn_apex_string_methods.htm
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_methods_system_string.htm

 

 

プロファイルのIP設定に説明欄がついたよ

Salesforce_08

〜Summer'14〜

さりげないリリース、でも大事。

Ip

http://releasenotes.docs.salesforce.com/ja-jp/summer14/release-notes/rn_forcecom_login_ip_range_desc.htm

 

 

クイック★リリース

Salesforce_03

〜Winter'15〜

事前に検証しておけば、デプロイの時間を短縮することができます。

素敵すぎます。

http://releasenotes.docs.salesforce.com/ja-jp/winter15/release-notes/rn_quick_deployment.htm

 

 

日本語ドキュメントの充実

Salesforce_09

リリースノートも早い段階で日本語対応してくれますよね。

めっちゃありがたいです!

 

もう少しネタを頂いたので、続きは次回に。。

 

 

 

お知らせ。

フレクトがAppパートナーとして初出展します↓↓

App Exchange EXPO 2016 東京

2016年3月11日(金)10:30~17:50
会場:JPタワー ホール&カンファレンス 4F

https://sfdc.smktg.jp/public/application/add/112

 

フレクトのセッションは14:40〜15:10です。

【IoT】コネクテッド・カーがもたらす不正利用防止、コスト管理と売上拡大

http://cariot.jp 

 

ぜひお立ち寄りください^^

2016年1月19日 (火)

Meshlium×Plug&Sense×Soracom×Salesforceをニジマス養殖場へ

こころです。12/4のSalesforce World Tourにお越し頂いた皆様はCariot(キャリオット)一色だったフレクトブースにこっそりセンサーが展示されていたのにお気づきでしたでしょうか?

0p8a7516

こちらは、Libelium(リベリウム)社のPlug&Senseの1種類で、SmartWaterという水質のデータが取得できるセンサーです。

こちらがゲートウェイ機器のMeshliumです。

Img_9283

  • SmartWater(防水防塵で屋外設置可)
  • Meshlium(データ通信のためのゲートウェイ機器 3G回線あり 要室内設置)
  • SIMカード
  • ソーラーパネル(SmartWater用)

を用意して屋外の水場シーン(池、河川、畑など)を想定した実験を行いました。折角なのでセンシングデータはSalesforceに保存し、ダッシュボードで見える化します。また、アラート(水質に異常値が検出された場合等)はChatterのMentionでPush通知されると便利ですし、実際の利用シーンでも「水温が◯℃以下になったら通知したい」というニーズはありそうです。

Photo_2

図に記載してしまいましたが、設置場所は屋外のニジマス養殖池です。

  • Plug&Senseの電力はソーラーパネルで発電(100%の充電には晴天時約24時間)
  • Plug&Sense⇒Meshlium間はZigBeeで通信
  • Meshlium⇒Saelsforce間はSORACOM Airの3Gデータ通信

SmartWaterから10分間隔(数秒にもチューニングは可能)でセンシングデータ(今回は水温、導電率、機器内部温度、ph、バッテリー、三軸加速度)をMeshliumに飛ばし、Meshlium内のDBに保存したセンシングデータをサマリしてSalesforce上のレコードとして作成します。

※SmartWater,Meshliumとも中にLinuxOSが搭載されていますがハックするには専用の手順、ツールが必要です。今回はMeshlium上にphpのruntimeが用意されていたのでMeshlium上のDBのデータをSalesforceにSyncする処理にはphpを使いました。

それでは実際の設置現場をご覧ください。

1_2

0p8a7485センサー先端はしっかり着水しています。

0p8a7472

ソーラーパネルは器具で固定します。

データ連携を確認して、約1ヶ月半の間屋外に放置してきました。屋外に設置する前に社内でコップに水をはって実験したので、

・中夜間の温度差が5℃位あり(日中は水温が上がる)自然界では中夜間の水温差がより開く

・導電率が落ち葉等により変化する

と仮説をもっていました。

※導電率は不純物が多いほど上がる傾向があり、お茶と水だと導電率が100倍位違います。

20160119_214036

Swtt_meshlium

折角なのでセンシングデータを日別で見るグラフアプリも作りました。

フタをあけてびっくりですが、

・PH・・・ほとんど変わりません!
・導電率・・・ほとんど変わりません!
・中夜間の水温・・・ほとんど変わりません!(ただし、水温の平均は11月後半⇒12月にかけてゆるやかに下がっていきました)
・機器内部温度・・・15℃から20℃の間をさまよっていました。
・バッテリー残量・・・98%から100%の間をウロウロ(ソーラー優秀ですね!)

と、環境変化による急上昇、急降下を想定したアラートを仕込んだにも関わらず、何も起きませんでした(笑)

発見したことは、ソーラー発電が想像以上に優秀でバッテリー98%以上をキープしていたことで、屋外でも長期間放置することが可能です。

機器提供、設置にご協力頂きました三井物産エレクトロニクス様、ありがとうございました!

2015年9月 8日 (火)

セキュリティに気をつけてForce.comで開発しよう!

こんにちは、なかやまです。

今日はForce.comで開発する際に気をつけるセキュリティポイントについてです。

_01

 

会社でセキュリティの勉強会に参加させてもらったので、

Salesforceで開発する上で気をつけるポイントをまとめてみました。

_02

 

あらためて調べてみると、以下の資料がありました。

いくつかはリンク切れだったり、英語の記事ですが参考まで。

Force.comセキュリティリソース

セキュアコーディングガイドライン

セキュリティ早見表

 

 

勉強会で紹介しきれなかったものを書いておきます。

英語版しか見当たらなかったのですが、

そこまで難しいものでもないので是非チャレンジしてみてください!

 

開発者向けセキュリティクイズ

ここで登録したメールアドレスに確認URLが届きます。(ログイン画面

Security_force_com_platformquiz_2

 

URLをクリックすると、以下のようなクイズ画面が表示されます。

社内勉強会でのディスカッションタイムに

Salesforce版としてこの素材をつかってもおもしろいかもと思いました。

Force_com_platform_security_quiz

 

ユーザ向けの教育

http://security.force.com/security/tools/usered/phishquiz

こちらはユーザ向けで、Salesforceのログイン画面やSalesforceから届くメールが題材になってます。メール登録がいらないので、すぐに試すことができますよ!

Cloud_security__salesforce_com

 

Cloud_security__salesforce_com_2

 

 

勉強会では20分の枠でお話しましたが、あっという間に時間がたってしました。

デモ環境の準備してたのに、見せる時間(余裕)が一切なかった。

_03

 

基礎☆Forceシリーズはもう少し続けていきたいので、

社内でアウトプットしたらブログで紹介しますね。

2015年8月14日 (金)

Lightningコンポーネントがやってきたヤァヤァヤァ

エンジニアの小川(mitsuruog)です。
先日、Lightningコンポーネントについて社内で勉強会を行いました。

資料はこちらです。

Lightningコンポーネントとは

Lightningコンポーネントとは、Salesforce1 Platform上で画面(UI)を構築する新技術です。

UIをコンポーネントとして作成することができ、複数のコンポーネント化したUI部品をレゴブロックのように組み立てることで、素早くアプリケーションを構築することができます。

特に、AppBuilderと組み合わせることで、コードを作成する必要がなく、デリバリーまでの時間を限りなく0にできる可能性があるため注目しています。

しかし、JavaScriptが培ってきたさまざまなプラクティスを無神経に壊しているなどと言われ、その部分についてはかなり同意できる部分がありますが、今後も様子を伺いながら上手に付き合っていきたいです。

参考資料

すでに国内で先行している企業がありますので、日本語の情報も比較的見つかりやすいかと思います。

特に、Lightningコンポーネントを学習する上では、まずAppirioさんのこちらの記事を一読することをオススメします。
日本語で丁寧に書かれていて、非常に助かりました。

Lightning学習のススメ - 必見 何から手をつけようか迷っているあなたに - Appirio Japan

資料の中で参照した利用はこちらです。

ハンズオン資料

Salesforce Lightning コンポーネントチュートリアル

Appirioさん

実践Lightningコンポーネント開発(1) - Appirio Japan

実践Lightningコンポーネント開発(2) - Appirio Japan

実践Lightningコンポーネント開発(3) - Appirio Japan

テラスカイさん

Lightning開発のポイント

Salesforce Lightning をやってみてあれこれ

Lightning Component公開への道 ~「Multi-View Calendar」開発で分かったこと~

Umekita Force(大阪のSalesforce Developer User Group)が作成した、チュートリアルもポイントを押さえられていていいと思います。

Salesforce - ステップバイステップでLightningコンポーネントを楽しもう! - 準備 - Qiita

ではではー。

2015年5月15日 (金)

Salesforce1 Lightning Fast Seminarにいってきた!

初めまして、なかやまです。フレクトには去年の12月からお世話になってます。これから少しずつブログ書かせてもらいますね!

今週の火曜日にSalesforce1 Lightning Fast Seminarがあったので行ってきました!

Lightning_01

会場は4Fと明記されていたのに、いつものようにJPタワーを登ろうとしました。。

Lightning_02

受付するとLightningの本と時計とかがいただけるとのコト。

Lightning_03

まわりの皆さんはLightningかなりやりこんでいる方ばかりですが、私は初心者です。

Lightning_04

14:00~Lightningコンポーネント概要

Lightning_05

Lightningコンポーネントがモバイル・タブレット対応して、次はデスクトップがくるぞー!

Lightning_06

このLightningは3箇所から生まれてきますよ。

Lightning_07

Lightning_08

14:45~Lightningコンポーネント DeepDive

Lightning_11

都会は回線早くていいけど、電車のっててトンネルだとか田舎にいくと電波遅くなるよね。

対応しようとするとメモリ管理も大変。。でもこのLightningが効率的なんです!

Lightning_12

ちなみにLightningはHTMLとCSS・JS・ちょっとのApexスキルがあれば作れちゃいます!

Lightning_13

デモ画面をみせてもらいましたが、ビジュアルな入力画面いいですよね。AppExchangeで「lightning」と検索するとお試しできるそうです。

Lightning_14

フラッシュだとかクロスプラットフォームうまくいかないけど、

HTML/CSS/JSはとても相性がいいよね!

Lightning_15

このコンポーネントは効率的なんだよ!っていうのを列車が運ぶ表現をしていたのですが、ちょっとうる覚えです。(すいません)

Lightning_17

あとLightningOut!!

Lightning_20

質問タイム。

jQueryとか他のライブラリ使える?

Lightning_21

オフラインサポートしてる?ほかにも質問されてましたが、詳しくはtogetterにて。。

Lightning_22

16:00~Lightningを利用した開発とケーススタディ

Lightning_23

コンポーネントには引数があって、画面からでもカスタマイズ可能です。

Lightning_24

開発者コンソールからLightningApplicationを選んで、数行のコードだけで作れちゃいます!

デモンストレーションで”すごい家計簿”を見せてもらいました。コンポーネントとコンポーネントの組み合わせでここまで表現できるのかと驚きです。コンポーネントを使う場合のコード行数は70行程度!

Lightning_26

続いてエディタと開発環境のお話。

Lightning_29

開発者コンソール~Eclipse、SublimeText、Atomなどで開発できますよ!

その気になればビルド環境も作れるそうです。

Lightning_30

楽しいデモもたくさん見せてもらったので、Lightningにチャレンジしたくなりましたよ!

当日の資料→Salesforce1 Lightning Fast Seminar開催 & 資料公開

Lightning_32

お仕事があったので、ネットワーキングではエビチリと焼きそばだけいただいて帰りました。もっとお話したかったです。。

Lightning_33

こんな感じで、これからもゆるっとSalesforce関係のお話をさせていただくかと思います。

よろしくお願いします^^

2014年12月 7日 (日)

SWTT2014~Salesforce Platformで実現するIoTソリューション~



この記事はSalesforce1 Advent Calendar 2014 - 12月7日の記事です。

エンジニアのこころです。
12/4に行われたSalesforce World Tourでは、フレクトのブースで、
”Salesforce Platformで実現するIoTソリューション”と題した出展を行いました。
本エントリで出展内容を簡単にご紹介します。

内容は次の2つです。

1.シャトルバスのリアルタイム走行情報アプリケーション
2.Salesforce Platformとセンサーデバイスとの連携



1.シャトルバスのリアルタイム走行情報アプリケーション

イベント会場がプリンスパークタワーと虎ノ門ヒルズの2箇所だったため、シャトルバスが2会場間を往復していて、その走行データを可視化するアプリケーションを開発しました。

このアプリは、SWTTアプリ(iOS/Android)にも埋め込まれたり、会場に60インチの画面が複数設置されていたのでご覧になった方も多いのではないでしょうか?

Photo

Dsc_0022

↑こんな感じの。

アプリケーションの構成は、4台のシャトルバスにOBD2コネクタを挿し、走行情報をリアルタイムにHeroku上のサーバで受けて地図画面に位置座標をプロットしています。OBD2車載器にはSIMカードが挿せるのでサーバ側は車載器からデータを直接UDPで受信します。取得できるデータの中で面白かったものと、その使い道をちょっとご紹介すると、

・位置情報・・・緯度、経度の位置座標
・方位・・・北を0度として0〜360度の数値で取得できます。バスのアイコンが道に添って滑らかに運行するアニメーションは、方位の数値により画像を16タイプに分けて描画することで実現しています。
・エンジン負荷・速度・・・バスが走行中か停車中か判定するのに使用しました。実際の利用シーンでは”事故が発生したときアクセルを踏み込んでいたか?”等の評価にも使われているそうです。

アプリケーション側では、

・スマートフォン画面への最適化
・サイネージ画面への最適化
・redisでRead/Write高速化
・アクセス集中時(数千クライアント)をシミュレートした負荷テスト

など、Frontend/Backendの準備、テストともなかなかに大変でしたが、フレクトのスーパーエンジニアがさくさくHerokuで開発していました。

<当日>

・最高時70req/秒ほどでしたがHerokuが難なく捌いてくれました
・バスに乗っているとかなりリアルタイムなのが体感できる

など、評判の良いアプリとなって大成功でしたhappy01


ちなみに、

・トンネル内など、電波状況が良くない場所ではデータが途切れてしまう
・端末からの多量リクエストによりスマホのバッテリーの減りが激しい

など、事前の検証でもどうしようもなかった環境依存や、沢山使って頂けたゆえのフィードバックも頂いておりますhappy02

イベント等で活躍が予想されるこの走行情報アプリ、ぜひぜひ今後にもご注目ください。

OBD2コネクタはコネクシオ様の提供でした。



2.Salesforce Platformとセンサーデバイスとの連携

フレクトのブースにお越しいただいた方は体験されたかもしれませんが、センサーデバイスからSalesforce Platformにアクセスする、駐車場管理のモックアプリケーションを展示しました。

Img_5741

前日作ったジオラマ。

あくまで展示会用のコンセプトモデルです。センサー等も極めてチープなものを使っています。

20141206_230828


シンプルにすると、

20141206_231505_2

駐車場のミニチュアの中には、近接する物体との距離を測る超音波センサーとスイッチが仕込んであります。超音波センサーは半径1.5cm以内に物体が近づいたら検知してフラグをONとし、駐車場の1台用の枠に車が入車するのを再現しています。

スイッチは、コールセンターとの連携をイメージしています。スイッチを押すとSalesforceのケースを作成します。


Raspberry Piで回路をつくり、センサー(超音波センサー、スイッチ)からの標準入力を受けるスクリプトをRaspberry Pi上に用意します。そのスクリプトからAWS上のSalesforce REST APIを経由してSalesforce上のレコードを更新しています。

見て頂いた方には伝わると思いますが、レコードが更新される様子だけを見せてもインパクトがないので、リアルタイム感とPush感を出すために更にSalesforce上でStreaming APIを使い、Twitterやfacebookのタイムラインのように仕上げています。



<大変だったこと>

このモデルではシナリオ決めが大変でした。センサーの入出力とSalesforceのレコードを連動させる事が実際のビジネスに生かせるシナリオを何度も練直し、2転3転しました。

ボツになった案の例
・ブレスレット型のデバイスで脈をとって健康管理
・ゴルフクラブに加速度センサーをつけてスイング分析
・気温、湿度等のセンサーでスマートアグリのモック

デモでやるにはスケールが壮大すぎる、危険すぎる、伝えにくい、専門知識が必要、Salesforce Platformと繋げるメリットが見えにくい、等の理由で見送りました。。



逆に、駐車場のステータス管理を採用したポイントは

・位置情報と密接に連動する(視覚化したアプリがある方が便利)
・コールセンターが必要になる(Salesforceが大活躍する)
・他業種でも読み替えしやすい(倉庫や小売り、不動産、ホームコントローラー等)

IoTという言葉がバズって久しいですが、BtoBのシーンで利用するにはビッグデータの処理やセキュア通信、Analyticsなど考える事が無数にあり、私たちが活躍できることを探して得意分野に特化する必要があると実感します。



<おまけ>

このアプリを作成するにあたって色々なセンサーを買い込みましたが、ウェザーステーションに使う気温・湿度・照度センサー、加速度センサー、匂い(硫黄)を検知するセンサー、CO2濃度を測定するセンサー、カメラ、マイク等AV系センサー・・・デジタル工作用のセンサーが数百円〜千円ちょっとで無数にあり、ホント買い物が楽しいです。
あと、ジオラマも何回か作ったので今なら犬小屋くらい作れる気がします。

こちらも大きなトラブルなく本番当日を終えられてよかったwobbly

Dsc_0038

来年の今頃は家とか車とか展示してるかもしれません。
ブースにお越し頂いた皆様ありがとうございました!

この記事はSalesforce1 Advent Calendar 2014 - 12月7日の記事です。




2014年11月17日 (月)

コミュニティの Salesforce1 サポート

こころです。

Spring '14 以降で

・カスタマーコミュニティライセンス
・パートナーコミュニティライセンス
・その他のサポートされるポータル

で、Salesforce1(iOSで確認)アプリケーションが使用できるようになっていました。
時代はもうWinter'15だというのに古いネタ....

<前提>

・公開済のコミュニティがあること(パートナーコミュニティを使いました)
・コミュニティユーザーのプロファイルで、「Salesforce1 for iOS」「APIの有効化」がオンになっていること。(コミュニティ関係のプロファイルではデフォルトで両方オフになっています。)

①接続先へコミュニティドメインの追加(と削除)

Img_5447_2

右上の歯車アイコンをタップして

Image6

コミュニティのURLと、接続先の名前を登録します。
コミュニティのURLは


https://XXXXX-developer-edition.ap0.force.com/login

の、赤字の部分を登録します。

Image7 こんな感じに新しい接続先"Community"が出来ます。

ちなみに接続先の削除は

Image3

右から左にスワイプすると削除できます。(編集ができないみたいですので、ミスしたら削除して再追加。)

②ログイン

Image1
S1でもコミュニティのデザインが適用されます。

Image4

ログイン前にエラーが出たら

Image2

コミュニティユーザーのプロファイルで、「Salesforce1 for iOS」「APIの有効化」のチェックを見なおしてみてください。

なんてことないのですが、図説されてる資料が見つからなかったので設定方法の備忘としてご参考まで。

2014年11月 3日 (月)

Queueableインタフェースを使った非同期処理実行

エンジニアの谷隈です。

Winter'15から導入された新機能Queueableインタフェースについて書きます。


Queueableインタフェースはfutureメソッドと機能的にはすごく似ています。
どちらも非同期に処理を実行する仕組みです。
ドキュメントで謳われている両者の違い、Queueableインタフェースを利用するメリットは次の2点です。

・ジョブIDを取得して、進行状況を監視できる
・ジョブの連鎖が可能(Winter'15時点では2連鎖まで。Spring'15で無制限になる予定。)

次のコードはQueueableインタフェースを実装したクラスの簡単なサンプルです。
非同期に実行したい処理をexecuteメソッドの中に書きます。

public class QueueableExample implements Queueable {
    public void execute(QueueableContext context) {
		String n = 'Queueable_' + DateTime.now().getTime();
        Account a = new Account(Name=n,Phone='(03) 1234-1234');
        insert a;        
    }
}

処理のキューへの登録にはsystem.enqueueJobメソッドを使用します。
キューに入れられた処理の開始タイミングは呼び出し側のトランザクション完了後の模様。

ID jobID = System.enqueueJob(new QueueableExample());
System.debug('jobID = '+ jobID);

1トランザクション中でキューに登録できるジョブ数は50。
ガバナ制限を超えてキューにジョブを登録しようとした場合は、例外が発生します。

System.LimitException: Too many queueable jobs added to the queue: 51

ジョブの進行状況の取得はAsyncApexJobレコードを検索して取得できます。

AsyncApexJob jobInfo 
	= [SELECT Status,NumberOfErrors FROM AsyncApexJob WHERE Id=:jobID];

futureメソッドとの違いで、ちょっと面白いと思ったのはバッチジョブ内からもキューへの登録/実行が可能な点です。(バッチからfutureメソッドを呼び出した場合は例外が発生)
ただ、現時点では制限により1つしかキューにジョブを追加できないので使えるケースはかなり限られそうです。

最近の派手系追加機能と比べるといかんせん地味なQueueableですが、その内容はfutureメソッドからの順当な進化系なので抑えておいて損はない機能だと思います。


リリースノート
http://docs.releasenotes.salesforce.com/ja-JP/winter15/release-notes/rn_apex_queueing_jobs.htm

The New Apex Queueable Interface
https://developer.salesforce.com/blogs/engineering/2014/10/new-apex-queueable-interface.html

2014年10月29日 (水)

Salesforce DUG [Tokyo] Meetup #7 に参加してきた

どうも今日は、内田です。 今日は「Salesforce DUG [Tokyo] Meetup #7」に参加した時の話をしようと思います。

今回の流れは以下の通りでした。

  • Winter'15リリースノートの概要
  • Salesforce Known Issuesを見る
  • Dreamforce2014参加者のお話
  • 12月4日のSalesforce World Tour Tokyoについて

Winter'15リリースノート

TAOドライブの米井さん(@yonet77)さんのセッションです。 事前準備として、取りあえずWinter '15 リリースノートはダウンロードだけしといて、目次だけ斜め読みした状態での参加です。 公開しているところはこちら

Chatter

Salesforce File Connect

SharePointで管理しているファイルへのアクセスが可能 以下の外部データソースが対象

  • SharePoint Online(クラウドベース)
  • SharePoint 2010,2013(社内)

Chatter

アクションリンク(Pilot)

アクションリンクとは、フィード内に表示されるURL (中略)ユーザはフィード内だけで処理を完結させることが可能

尚、リリースノートでは以下の但し書きが。

「メモ: アクションリンクは現在、パイロットプログラムを通じて一部のお客様が使用できます」

以下の例を見ますと

http://releasenotes.docs.salesforce.com/ja-jp/winter15/release-notes/rn_chatter_feeds_action_links.htm

出張申請の許可、不許可をそのままChatterに埋め込んで承認非承認を得ることができる、といった使い方が出来るみたいです。

Force.com カスタマイズ

カスタム権限

カスタムプロセス、カスタムアプリケーションに対して、アクセス権限をより詳細に制御できるようにするもの。

従来の権限制御をより細かくしたものかと思ったら、どうやら中の人曰くCanvasアプリ向けのもの、と。

EventLogFile

SOAP,RESTを使用してEventLogFileを取得可能。 2MB以上のログも取得可能だが「有償機能」。

Quick Deploy(Pilot)

過去4日間に検証されたコンポーネントに対しては即リリース可能となる。

リリース日の予告が可能。

PersonalCanvasApp

覚えているのは、開発者は自由にアプリケーションを作成可能し、ユーザはすぐに利用できる、といったもの。

(ただし管理者のアクセス設定は必要)

「とりあえずなんか作ったらいいんじゃない?」とのこと。

Salesforce Known Issuesを見てみよう

吉田さん@テラスカイのお話です。

Salesforce Known Issuesとは https://success.salesforce.com/issues_index

ユーザから上がってくるバグ報告の一覧のようなものです。

よく上がってくるものから先に対処されるとのことなので、大事なのは以下の点。

  • レポートは早く上げる
  • 同じ境遇の人を巻き込む (大意)

DF14 ハッカソンに参加した時の話

オークニーチームの方の話です。

今回のアプリ名は「風魔」

参加者と出展者のマッチングアプリで、どの参加者がどの出展者に接触したか、またどの出展者にどれだけのユーザが参加したかをヒートマップで表す機能や、出展者のチラシのダウンロードが可能。

アプリは構成は以下の通り。 端末:iOS(Swift)、Heroku、Salesforce

のはずが、Swiftでは何故かBluetoothが反応しない⇒Objective-cに変更、なんとか反応するも ほぼ端末を接触しなければ反応しないという。。 (Bluetoothの混線の問題なのでしょうか)

おしくも入賞は逃しましたが、ハッカソンで重要なのはビジネスプラン、プレゼンテーションとのこと。 来年も参加予定、とのことでした。

Dreamforce 2014参加者からのレポート

記憶に残っているのはMini Hackのお話です。

「HACKER」の6文字のカード配られ、それぞれにお題が書かれています。 それらを解くと抽選で何かもらえる、とのことでした。

大体3問位は使いまわされるとのこと。覚えておくといいことあるかもしれません。

最後に12月4日のイベントについて

身も蓋もない話、まだ決まってなくて、どうするかアンケートをとりました。

大まかには

  • 半日でアイデアソン
  • 半日でミニハッカソン
  • 2週間くらいかけてがっつりハッカソン

挙手の数では「2週間くらいかけてのハッカソン」でしたが、未定の事。 プリンスパークタワーと虎ノ門の2か所開催ですが、「デベロッパーは虎ノ門」に。

取りあえず予定は開けといた方がよさそうです。

2014年9月30日 (火)

意外と知らないSalesforce Tips (8~10)

玉澤です。
意外と知らないSalesforce Tipsの残り3つを紹介します。


8. Salesforce標準のログイン画面をブランディングする

Salesforceの標準のログイン画面を変えたいお客様の会社のイメージでブランディングしたいときに役立つTipsです。

下記の手順で、Salesforce標準のログイン画面をカスタマイズできます。

まず、[管理]→[ドメイン管理]→[私のドメイン]から組織のサブドメインを登録します。
※組織のサブドメインは一度しか登録できないため、慎重に選択してください。

20140930_81

登録したら、↓のような画面になるので、「こちらをクリックしてログインしてください」を押下して、
ドメインのテストを実施します。

20140930_82
テスト後、↓のような画面になるので、「ユーザにリリース」を押下して、リリースします。
※新しいドメイン名をリリースした後は、元に戻せません。リリース後は、すべてのユーザが新しいドメインにリダイレクトされるので、注意してください。

20140930_83
リリース後、ログインページのブランド設定が表示されるので、ロゴ、背景色、右フレームのURLを表示します。

20140930_84
設定後、リリースしたドメインにアクセスすると、↓のように、ログイン画面がカスタマイズされて表示されるようになります。

20140930_85

9. タブのデフォルト表示を「最近使った○○」ではなくする

タブをクリックしたときに、「最近使った○○」(※○○はオブジェクト名)というビューではなく、通常のビュー画面をデフォルト表示したい場合に役立つTipsです。

20140930_91 まず、通常のビュー画面を表示するVisualforceページを作成します。↓のコードを書けばOKです。

<apex:page tabStyle="Rsv2__c"> ・・・オブジェクト名を指定
  <apex:enhancedList type="Rsv2__c" ・・・オブジェクト名を指定
             customizable="false" 
             height="600" 
             rowsPerPage="50" />
</apex:page>


次に、タブのデフォルト表示を変更したいオブジェクトの設定画面を開き、「ボタン、リンク、およびアクション」セクションで、タブの設定編集リンクをクリックします。

20140930_92
タブの設定編集画面で、上書き手段で「Visualforceページ」を選択し、先程作成したVisualforceページを選択します。

20140930_93
すると、タブをクリックしたときに、「最近使った○○」というビューではなく、通常のビュー画面が表示されるようになります。

20140930_94
10. レコード詳細画面にグラフを表示する

レコードの詳細画面にグラフを表示したいときに役立つTipsです。対象のレコードに関連するレポート結果だけをグラフ表示できます。

ここでは、取引先レコードの詳細画面で、その取引先の商談をフェーズ毎に集計したグラフを表示する方法を例に説明します。

まず、レポートをグラフ付きで作成します(今回の例では、標準の商談レポートタイプで、フェーズ毎に集計したサマリレポートを作成します)。

20140930_101

20140930_102
次にグラフを表示したいオブジェクトのページレイアウトの設定画面を表示します。レポートグラフのセクションに、先程作成したレポートが表示されているので、ドラッグ&ドロップでレイアウトに追加します(今回の例では、取引先のページレイアウトを表示し、先程作成したレポートグラフを追加します)。

20140930_103
追加後、プロパティ設定で、表示サイズ、タイトル表示の有無、絞り込み条件を設定します。
グラフは、元々のレポートの集計結果から、更に絞り込み条件で指定した項目で絞り込んだ結果が表示されます(今回の例では、取引先IDを指定して、その取引先の商談だけが表示されるようにします)。

20140930_104設定すると、↓のように、レコード詳細画面でグラフが表示されるようになります(今回の例では、取引先レコードの詳細画面で、その取引先の商談をフェーズ毎に集計したグラフが表示されます)。

20140930_105

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上
でのWebアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

  • 株式会社フレクトは、
      ・認定コンサルタント
      ・認定上級デベロッパー
      ・認定デベロッパー
    が在籍している、セールスフォースパートナーです。
    また、heroku partnersにも登録されています。
    herokuパートナー
    株式会社フレクト
    Salesforce/Force.com
    導入支援サービス
    弊社の認定プロフェッショナルが支援致します。
    ・Visualforce/Apexによるアプリ開発
    ・Salesforceと連携するWebアプリ開発
    も承っております。
    セールスフォースご検討の際は、
    お気軽にお問合せください。

Twitter

リファレンス

■Developer's Guide(リファレンス)
・Apex  HTML | PDF | 日本語PDF | ガバナ制限
・Visualforce  HTML | PDF
・Web Services API  HTML | PDF | 日本語PDF
・Bulk API  HTML | PDF
・REST API  HTML | PDF | 日本語PDF
・Metadata API  HTML | PDF
・Migration Tool  HTML | PDF
・AJAX Toolkit  HTML | PDF
・Data Loader PDF | 日本語PDF

■早見表 (日本語)
数式
Apex
Visualforce
Web Services API
Chatter