79
Summer ’16開発者向け 新機能Webセミナー Mitsuhiro Okamoto Salesforce.com @mitsuhiro

Summer '16 開発者向け新機能 Webセミナー

Embed Size (px)

Citation preview

Page 1: Summer '16 開発者向け新機能 Webセミナー

Summer ’16開発者向け新機能Webセミナー

Mitsuhiro OkamotoSalesforce.com@mitsuhiro

Page 2: Summer '16 開発者向け新機能 Webセミナー

Forward-Looking Statements

Statement under the Private Securities Litigation Reform Act of 1995:This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.

Page 3: Summer '16 開発者向け新機能 Webセミナー

Speaker

Mitsuhiro OkamotoSenior Developer [email protected]

Page 4: Summer '16 開発者向け新機能 Webセミナー

ソーシャルにアクセス!

Salesforce Developers Japan

+Salesforce Developers Japan

Salesforce Developers Japan

Salesforce Developers Japan

@salesforcedevjp

Page 5: Summer '16 開発者向け新機能 Webセミナー

Agenda

• UIの新機能• Appsの新機能• Identityとセキュリティ新機能• 一般的な開発の新機能• クエリとAPIの新機能• Apexの新機能• Visualforceの新機能• Lightning Componentの新機能• その他重要な更新

Page 6: Summer '16 開発者向け新機能 Webセミナー

UIの新機能(Lightning Experience)

Page 7: Summer '16 開発者向け新機能 Webセミナー

ユーザプロファイルごとにホームをカスタマイズ

Lightning Experienceのホームページを作成・編集可能

Page 8: Summer '16 開発者向け新機能 Webセミナー

Lightning Experienceのレコードページを作成・編集

* 対応するオブジェクトの詳細はリリースノートを参照

Page 9: Summer '16 開発者向け新機能 Webセミナー

LEX上のLightningページ

アプリケーションタイプのLightningページに対応• 従来はSalesforce1のみ対応していたアプリケーションページをLightning

Experienceでも使用可能

Page 10: Summer '16 開発者向け新機能 Webセミナー

Lightning Experience上の活動とカレンダー

カレンダーの[新規作成]から、任意のオブジェクト*の日付項目をもとにしたカレンダーを作成可能

• 現行の「成立商談」カレンダーは、オブジェクトの日付項目から作成したカレンダーに置き換え

カスタムオブジェクト含む。標準オブジェクトの一覧についてはリリースノートを参照。

Page 11: Summer '16 開発者向け新機能 Webセミナー

レポート・ダッシュボードの新しいチャート

Lightning Experienceの新たなチャート表現を多数追加• ファネル、散布図、2種コンボ、累積グラフ、他

ファネル(漏斗)

ダッシュボードテーブルの合計表示

散布図

棒グラフ、折れ線グラフを組み合わせたコンボ表示

累積グラフ表示

Page 12: Summer '16 開発者向け新機能 Webセミナー

レポートやダッシュボードでのフィード対応

Lightning ExperienceやSalesforce Classic表示両方がフィード対応(フィードトラッキングの有効化が必要)

• レポートやダッシュボードへ直接@メンションや、質問の投稿、コメント追加が可能に

アイコンクリックでフィードフィールドを開く

Page 13: Summer '16 開発者向け新機能 Webセミナー

レポート・ダッシュボードのフィルタリング

レポートのフィルタリンググラフ上の項目や凡例をクリックすることでレポートの表示内容をフィルタリングすることが可能

制限事項• フィルタの保存は不可• 折れ線グラフは未対応• 積み上げ棒グラフの凡例は未対応• 2000行以上の結果を持つ

レポートの場合、その2000行に対してフィルタリングする

Page 14: Summer '16 開発者向け新機能 Webセミナー

レポート・ダッシュボードのUI改善

Lightning Experienceダッシュボードデザイナー上で、元に戻す・やり直しアクション追加

数が少ない項目を自動グループ化• 全体の3%以下の項目を自動でその他にグループ化• ※Salesforce Classic設定で”Combine Small Groups into Others”を有効化の必要あ

その他グループをクリックすると、そのグループにグループされてい

る項目が見える

Page 15: Summer '16 開発者向け新機能 Webセミナー

Appsの新機能(Sales, Service, Mobile, Wave)

Page 16: Summer '16 開発者向け新機能 Webセミナー

取引先責任者と複数の取引先の関連付け

取引先責任者と複数の取引先の関連づけを許可• 取引先・取引先責任者のページレイアウトに関連リスト(関連取引先責任者・関連取引先)を追加

• 「取引先責任者のリレーション」オブジェクトにページレイアウトやカスタム項目を設定

• 活動を主たる取引先に積み上げるかどうかを指定• リレーションを出力するレポートタイプを作成

Page 17: Summer '16 開発者向け新機能 Webセミナー

外部メールアカウント経由での送信

GmailまたはOffice365のアカウントを経由したメール送信メール送信をGmailまたはOffice365のアカウント経由で行うことが可能新しい権限 “Send Email through External Email Service” が必要(標準プロファイルでは有効)

Page 18: Summer '16 開発者向け新機能 Webセミナー

Lightningボイス: Salesforce上での電話の受発信

Salesforce上で電話を受信・発信し、電話の記録を残すことが可能• 通話はコンポーザーウインドウ動作

• 通話しながら必要な情報にアクセスすることも可能* 電話の発信はSummer’16時点では米国とカナダのみ対応

Page 19: Summer '16 開発者向け新機能 Webセミナー

Wave: コラボレーション関連の機能拡張

CSVあるいはExcel形式でのデータのダウンロード表示されているクエリ結果をExcel、CSV形式、PNG画像としてダウンロード可能

レンズやダッシュボードからダウンロード

権限セットでダウンロードできるユーザーを制限

PNG画像、Excel、CSV形式

NOTE: ローデータダウンロードや、大量データエスクポートとしては利用できませんまた、フレックスダッシュボード(ベータ)ではサポートされません

Page 20: Summer '16 開発者向け新機能 Webセミナー

Wave: デザイン・視覚化関連の機能拡張

2種の新しいチャート追加(ファネル、コロプレスマップ)

Page 21: Summer '16 開発者向け新機能 Webセミナー

*値を小さい順に並べて、X%に位置する値を算出すること。5パーセンタイルは小さい

方から5%目の値(1,000件あれば50番目に小さい値)を返します

Wave: Waveプラットフォーム開発

• SAQLの拡張• 文字列関数の強化:• ltrim , rtrim , trim• upper , lower• substr• len - (文字数を返す)

• 集計関数の拡張• percentile_disc - 全体もしくは特定のパーティション内の行セット内でソートされた値の特

定のパーセンタイル算出*• percentile_cont - カラム値の連続分布(continuous distribution)に基づくパーセンタイ

ル算出*• stdev - 標準偏差(標本標準偏差)• stdevp - 母標準偏差• var - 分散、標本分散(Sample variance)、不偏分散 (unbiased variance)• varp - 母分散 (population variance) 偏分散(biased variance)

Page 22: Summer '16 開発者向け新機能 Webセミナー

Wave: Waveプラットフォーム開発

ウィンドウ処理を追加:• count - ウィンドウ処理に渡されたグループ数を返す• median - 中央値を返す• percentile_disc (集計関数参照のこと)• percentile_cont (集計関数参照のこと)

ブール値(true/false)とnull値ブール値のTrue/Falseが利用可能にほとんどのSAQLの文中のstring型、number型の変数でnull値の使用が可

能に

NOTE: 従来Waveはnull値を保持ができなかったり、null値の保存はできてもnull値でのフィルタやGROUP BYができなかったことへの機能強化

Page 23: Summer '16 開発者向け新機能 Webセミナー

Wave: Waveプラットフォーム開発

Waveアセットのパッケージ化が可能に通常のSalesforceコンポーネントと同様に、App、ダッシュボード、レンズ、データセット、データフローなどのWaveアセットをパッケージ化し(変更セット作成)配布可能に

パッケージはリンクからインストールし

展開方法を選択

Waveアセットをコンポーネントリストから

選択して追加

Page 24: Summer '16 開発者向け新機能 Webセミナー

SOSの機能拡張

新しいSOS ユーザーインターフェース

従来のUI 新しいUI

Page 25: Summer '16 開発者向け新機能 Webセミナー

オフライン機能(公開パイロット)

オフライン状態でのレコード作成と編集が可能• Salesforce1 for Android 9.0以上で提供• Salesforce1 for iOSでも提供予定• 設定:Salesforce1でのオフライン作成および編集を有効化(ベータ)

オンライン時に自動的に変更データの同期• 「待機中のアップロード」メニューで変更データの確認が可能• 変更が競合した場合には上書きするかどうか選択が可能

同期時に解決が必要な問題が発生した場合の通知

同期について確認が必要な場合の通知

同期待ち状態の通知

Page 26: Summer '16 開発者向け新機能 Webセミナー

Identityとセキュリティの機能拡張

Page 27: Summer '16 開発者向け新機能 Webセミナー

ユーザへテンポラリ認証コードの生成

2要素認証を利用するユーザがデバイスを忘れたり紛失した場合に、2要素認証を無効化してセキュリティレベルを下げなくても一時的に利用するテンポラリ認証コードを生成

• システム権限の「ユーザインタフェースの2 要素認証を管理」権限が必要• ユーザへテンポラリコードを発行するユーザに権限の付与が必要

テンポラリコードの有効期限と即時失効• テンポラリコードの有効期限は1,2,4,8,12,24時間の中から選択でき、あとで即時失効も可

Page 28: Summer '16 開発者向け新機能 Webセミナー

2要素認証管理の移譲

管理者ではないユーザに2要素認証の管理を移譲するための新しい権限を追加“ユーザインタフェースの2 要素認証を管理”権限が追加

権限の付与により以下の行動が可能2要素認証ユーザがデバイスへアクセス出来ない際のテンポラリ認証コードの生成ユーザがデバイスを紛失、交換した場合のID検証の切断ユーザのID検証の履歴の閲覧ID検証履歴ページ上のID検証アクティビティの閲覧ID検証履歴ページ上リンクより ”ID検証方法レポート” の閲覧ID検証の登録を実施済みユーザリストビューの作成

「ユーザの管理」権限を持っているユーザは上記の新しい権限を持っており、無効にすることはできません

Page 29: Summer '16 開発者向け新機能 Webセミナー

ユーザ切り替えの簡素化

Salesforceナビゲーション上のユーザスイッチャーにより同一組織内のユーザや組織外のユーザでも簡単に切り替える事が可能

セッションの設定ページ管理者は無効化が可能現在の組織に他のスイッチ対象の表示他の組織に現在の組織のユーザの表示

Page 30: Summer '16 開発者向け新機能 Webセミナー

ユーザのID検証の状況確認

組織内のユーザのID検証の実施状況の確認が可能になり、組織のセキュリティ設定のロールアウト時などに対象となるユーザを抽出可能

ユーザ検証方法の表示• ユーザ一覧に以下の項目が追加

• Has Verified Mobile Number• Has One-Time Password App• Has Salesforce Authenticator• Has Temporary Code

ID検証レポートの表示とカスタマイズ• ID検証履歴のページにあるリンクをクリックしID検証方法レポートを表示可能

Page 31: Summer '16 開発者向け新機能 Webセミナー

その他Identityに関する更新

ログイン履歴でのより詳細なログインタイプの取得• カスタマーサービスポータル及びパートナーポータルユーザが認証プロバイダによるシング

ルサインオン(SSO)をした際にログイン履歴により詳細な情報を提供※以前は”カスタマーサービスポータル”及び”パートナーポータル”として記録されていたが、”カスタマーサービスポータルサードパーティSSO”及び”パートナーポータルサードパーティSSO”と表示

ユーザインタフェースログインのエンドポイントルーティングの廃止• パフォーマンスと可用性向上の為 www.salesforce.com/login.jsp の利用は2016年6月

25日に廃止• 正しいエンドポイントの https://login.salesforce.com/login.jsp の利用を推奨

Page 32: Summer '16 開発者向け新機能 Webセミナー

その他セキュリィティに関する変更

SalesforceへのログインにはHTTPSが必須• Salesforceにログインする際にはセキュアなHTTPS接続が必須となる• ブラウザのURLにlogin.salesforce.comを指定するとHTTPS接続にリダイレクトされている• ブラウザのURLにhttp://login.salesforce.com+”ユーザー名とパスワード”を指定した場

合にはエラーとなる(Postした場合も同様)

ログイン履歴にTLS暗号化プロトコルを追加• 設定-ログイン履歴ビューを作成したり、ログイン履歴を含むレポートを作成する際に、TLS

プロトコルとTLS Cipher Suite項目が追加可能となる(データはSummer'16リリース以降のログインから反映)

• ログイン履歴でファイルをダウンロードする際に、”TLS 1.0ログインのみ”を選択する事も可能

• 私の設定からログイン履歴をダウンロードする際にもTLSプロトコルとTLS Cipher Suiteが含まれる

Page 33: Summer '16 開発者向け新機能 Webセミナー

その他セキュリィティに関する変更

Health Checkのログインアクセスポリシーとリモートサイトの設定• 設定-Health Check(状態チェック)のリスクグループに、従来のパスワード

ポリシーやセッションの設定、ネットワークアクセスに加えて、ログインアクセスポリシーとリモートサイトの設定が追加される

Health Check API• 以下のTooling APIの読み出し専用オブジェクトから構成されるHealth Check APIが使用

可能になるSecurityHealthCheckSecurityHealthCheckRisks

• SOQLクエリーによって組織のセキュリィティ設定やリスク、標準の適合率等が検索できる

• Health Check APIを使用するには管理者でのアクセスが必要

Page 34: Summer '16 開発者向け新機能 Webセミナー

一般的な開発の新機能

Page 35: Summer '16 開発者向け新機能 Webセミナー

プロセスビルダー - 複数条件での実行

• ある条件を評価してアクションを行った後、続けて次の条件を評価するかどうかを指定

• 従来は複数のプロセスを作る必要があったロジックを、1つのプロセスにまとめることが可能

Page 36: Summer '16 開発者向け新機能 Webセミナー

制限付き選択リスト - 正式リリース

• API経由で読み込んだデータによる選択リスト値の上書きを防止• 項目の新規作成時はデフォルトで有効(チェック済み)• 選択リスト値が999個までの項目にのみ使用可能

Page 37: Summer '16 開発者向け新機能 Webセミナー

Flow REST API

フローインタビューの画面をカスタマイズできる新しいREST APIリソース(Flow REST API)を提供

Flow REST APIで動的な画面を作成した例:(選択肢によって質問項目を変更)

Page 38: Summer '16 開発者向け新機能 Webセミナー

イベントモニタリング: Admin Analytics

NOTE: 別途イベントモニタリングの契約が必要です

KPIとしてサマリーを提示

イベントタイプ毎に最も一般的なチャートを定義

イベントの属性に基づきフィルタのファセットを定義

Page 39: Summer '16 開発者向け新機能 Webセミナー

イベントモニタリング: Admin Analytics

Wave Analytics上でEventLogFileのプレビルト・データセットとダッシュボードを提供

NOTE: 別途イベントモニタリングのご契約が必要です

セキュリティ、定着化などの観点で、15の定義済ダッシュボードを提供

イベントタイプ別に29のデータセットを定義済

Page 40: Summer '16 開発者向け新機能 Webセミナー

イベントモニタリング: Admin Analytics

データフロー・ウィザードによるデータフローの設定

NOTE: 別途イベントモニタリングのご契約が必要です

どのイベントモニタリング・データセットをデータフローに含むか指定

何日分のデータをAdmin Analyticsに含むか指定

Page 41: Summer '16 開発者向け新機能 Webセミナー

その他の機能

セッションベースの権限セット(開発者プレビュー)• 特定の種類のセッションでのみ有効な権限セットを割り当て可能• (使用例: 特定のモバイルアプリ経由のセッションでのみレコードの更新ができるようにす

る)• 権限セットのリストビューで特定のセッションが必要とされる権限セットの一覧を取得可能

共有ページで取引先チームと商談チームを個別に表示• レコードの共有設定ページに、取引先チーム・商談チームに所属しているユーザを個別に表

示• (従来は複数の理由でレコードにアクセス権を持っている場合でも、共有設定ページには1

つのエントリしか表示されませんでした)

Page 42: Summer '16 開発者向け新機能 Webセミナー

デバッグ

デバッグログにタイムゾーンを表示

Visualforceコントローラで発生した例外をデバッグログに記録

DebuggingHeaderの使用方法を共通化• SOAP, Metadata, Tooling APIで異なっていたDebuggingHeaderの使用方法を統一

• 従来はSOAP APIでのみcategoriesパラメータがサポートされていなかった

Page 43: Summer '16 開発者向け新機能 Webセミナー

Apexコードの機能強化

Page 44: Summer '16 開発者向け新機能 Webセミナー

Apexコード

1トランザクションに関与できる認定管理パッケージの名前空間の制限緩和• 従来は10個まで名前空間にアクセスできたがこの制限は撤廃• 名前空間毎の制限(SOQL 100, DML 150)は従来通り• トランザクション単位では名前空間毎の制限を11倍して累積で制限(名前空間

数に関しては制限なし)

接続アプリケーションに関する機能拡張• どの認証プロトコルを経由して起動されたを制御するため

ConnectedAppPluginクラスを拡張• プロビジョニングを容易にするためConnectorTestUtilクラスを提供し

UserProvisioningRequestオブジェクトを拡張

Page 45: Summer '16 開発者向け新機能 Webセミナー

Apexテストの機能拡張

設定画面のUIからテスト結果の確認(LEXのみ)

Tooling APIのテスト実行メソッドでtestLevelが指定可能に• SOAP呼び出し runTestsAsynchronous()• RESTリソース runTestsAsynchronous

Page 46: Summer '16 開発者向け新機能 Webセミナー

Apexコード

Continuationクラスで非同期コールアウトでの指定ログイン情報の使用• 従来は指定ログイン情報はQueuable Apexからのみ使用可能であったが

Continuationクラスを使用したコールアウトでも使用可能に

JSONへのシリアライズの拡張• ApexオブジェクトをJSONにserializeするとき、従来null値はnullとして返却していたが、

nullと返すか省略するかを引数suppressApexObjectNullsで指定可能

Apex RESTのCORSサポート• ユーザがApexで作成したREST WebサービスクラスがCORSに対応

(REST APIに関してはSpring’15で対応済)

Page 47: Summer '16 開発者向け新機能 Webセミナー

管理パッケージ内のグローバルクラスの概要を確認

従来はコンストラクタとメソッドのシグネチャが見えるだけであったが以下の様なスケルトン・コードが確認可能

/*This file is generated and isn't the actual source code for thismanaged global class.This read-only file shows the class's global constructors,methods, variables, and properties.To enable code to compile, all methods return null.*/global class MyClass {

global Decimal myDec;global String myString {

get;set; }

global MyClass() {}global Integer myMethod(Integer arg1) {

return null;}

}

Page 48: Summer '16 開発者向け新機能 Webセミナー

Apexコード

インスタンス化されたSObjectクラスの項目名をMapで取得getPopulatedFieldsAsMap() を使用して Map<String, Object> コレクションを作成 Account a = new Account();

a.name = 'TestMapAccount2';a.phone = '123-4567';insert a;

Map<String, Object> fieldsToValue = a.getPopulatedFieldsAsMap();

for (String fieldName : fieldsToValue.keySet()) {System.debug('field name is ' + fieldName + ', value is ' +

fieldsToValue.get(fieldName));}// Example debug statement output:// DEBUG|field name is Name, value is TestMapAccount2// DEBUG|field name is Phone, value is 123-4567// DEBUG|field name is Id, value is 001R0000003EPPpIAO

Page 49: Summer '16 開発者向け新機能 Webセミナー

Apexコード

ConnectApi(Chatter in Apex)ダイジェストメールのジョブスケジューリングが可能

global class ExampleDigestJob1 implements Schedulable {global void execute(SchedulableContext context)

ConnectApi.Chatter.submitDigestJob(ConnectApi.DigestPeriod.DailyDigest);}

}

NOTE: API-only Chatter Digestsを有効化するにはSalesforceに連絡して下さい

Page 50: Summer '16 開発者向け新機能 Webセミナー

Visualforceの機能強化

Page 51: Summer '16 開発者向け新機能 Webセミナー

Visualforce

Lightning ExperienceでのVisualforceの使用(GA)• ベータが正式リリースに(引き続き制限事項には要注意)• <apex:page title=”xxx”>でページタイトルが表示可能

マップのスクロールによる拡大を制御可• タッチデバイスやマウス・ホイールによるスクロールを禁止できるように <apex:map> に

scollBasedZooming属性を導入

カスタムXML docTypeはサポート外(重要な更新)<!DOCTYPE myDocType [ ... ]> を利用しての宣言はサポート外<apex:page>タグを利用しての宣言を推奨

Page 52: Summer '16 開発者向け新機能 Webセミナー

その他の機能

VisualforceページとLightningページの「参照(View)」アクションの上書き• 単一のオブジェクトに対して、Visualforce(またはSコントロール)で上書きした参照アク

ションとLightningページで上書きした参照アクションのセットを保持させることが可能• Lightning ExperienceではLightningページで上書きしたアクションが使用され、

Salesforce ClassicではVisualforce(またはSコントロール)で上書きしたアクションが使用される

$Actionグローバル変数の変更• $Actionの値 “ChangeOwner”をリード、ケース、カスタムオブジェクトで利用不可

Page 53: Summer '16 開発者向け新機能 Webセミナー

Lightningコンポーネントの機能強化

Page 54: Summer '16 開発者向け新機能 Webセミナー

Lightningコンポーネント

アクセスチェックエラーの強制(重要な更新)• 適切なaccessシステム属性がないリソースにアクセスした場合エラーが発生

• <aura:application>• <aura:interface>• <aura:component>• <aura:attribute>• <aura:event>

デフォルトは access=”public” で同じ名前空間からのみ使用可• 別の名前空間からアクセスする場合 <aura:component access=”global”>

のように適切なアクセス属性を記述すること

Page 55: Summer '16 開発者向け新機能 Webセミナー

LockerServiceによるセキュリティ強化(重要な更新)

LockerServiceはLightningコンポーネントの新たなセキュリティアーキテクチャであり以下の機能を提供

• JavaScript ES5 Strict Modeの強制• ユーザコードで”use strict”を個別に指定する必要がなくなる

• 他のコンポーネントからのDOMアクセスの抑制• Content Security Policy(CSP)

• クロスサイトスクリプティング(XSS)などを抑制• グローバル参照を制限• サポートされないJavaScript APIフレームワークのメソッド使用を抑止

• サポートされるメソッドはhttps://yourDomain.lightning.force.com/auradocs/reference.appで確認可能

• instanceof演算子は使用不可• 型の判定には typeof を、あるいは標準JavaScriptメソッド(Array.isArray()など)を使用す

ること

Page 56: Summer '16 開発者向け新機能 Webセミナー

Lightning Locker Service

サードパーティ(パートナーなど)が作成したJavascript及びCSSをモダンなブラウザの機能を使ってセキュアなSandbox環境で動作させる

Salesforce アプリJavaScript

3rdパーティの記述したJavaScript

Salesforce アプリJavaScript

3rdパーティの記述したJavaScript

Locker Serviceあり Locker Serviceなし

Page 57: Summer '16 開発者向け新機能 Webセミナー

Lightningのブラウザセキュリティアーキテクチャ

DOMのスクレイピングによる脆弱性を排除エスケープの欠落やロジックの脆弱性からくるXSSやテンプレートインジェクションの排除サーバサイドアクションの不正な呼び出し、なりすましを排除内部用に実装されたファンクションの呼び出しを排除ライセンス及びバージョン管理を可能とする

Page 58: Summer '16 開発者向け新機能 Webセミナー

Salesforce Lightning CLIツール

オープンソースのESLintプロジェクトをベースとしたHeroku Toolbeltのプラグイン

ユーザコードをスキャンしLockerServiceに対して問題がないか確認できる

Page 59: Summer '16 開発者向け新機能 Webセミナー

Salesforce Lightning Inspector

Lightningコンポーネントのデバッグ• Google Chrome デベロッパーツールの拡張としてLightning Inspectorを提供

Page 60: Summer '16 開発者向け新機能 Webセミナー

Lightningコンポーネント

$Resourceによる静的リソースの参照• URLやファイルパスではなく$Resource.resourceNameでアクセス可能に

• $A.get(‘$Resource.resourceName’)

Lightningデザイントークン• Lightningコンポーネントで一貫して使用するデザイントークンバンドルを作成可能

中止可能なアクションの動作• アクションを作成したコンポーネントが無効になった場合(cmp.isValid() == false)アクションが中止可能であれば中止される

Page 61: Summer '16 開発者向け新機能 Webセミナー

Lightningコンポーネント

joinを使用した読みやすいマークアップ判読可能ではあるがスペースでミスが起こりやすい

joinの最初の引数でスペースを指定することでミスを削減

<li class="{! 'calendarEvent ' +

v.zoomDirection + ' ' +

(v.past ? 'pastEvent ' : '') +

(v.zoomed ? 'zoom ' : '') +

(v.multiDayFragment ? 'multiDayFragment ' : '')}">

<!-- content here -->

</li>

<li class="{! join(' ',

'calendarEvent',

v.zoomDirection,

v.past ? 'pastEvent' : '',

v.zoomed ? 'zoom' : '',

v.multiDayFragment ? 'multiDayFragment' : '')}">

<!-- content here -->

</li>

Page 62: Summer '16 開発者向け新機能 Webセミナー

Lightningコンポーネント

追加されたコンポーネント• auraStorage:init

アプリケーションの記憶域の初期化に使用

変更されたコンポーネント• ui:inputCurrency, ui:inputNumber

k, m, b, t (千、100万、10億、1兆)のショートカットをサポートフィルター条件としてはショートカットはサポートされない

• ui:inputDate, ui:inputDateTimeAndroid, iOSのモバイルフォンおよびタブレットでは日付/時刻のピッカーを使用value属性の型がDateからStringに変更

• ui:menuListメニューアイテムの移動に左右の矢印キーは使用されない。上下の矢印キーで移動

• ui:menuTriggerLinktitle属性は未使用に

• ui:outputRichText, ui:outputRichTextAreaURLおよびメールアドレスにハイパーリンクが作成される

Page 63: Summer '16 開発者向け新機能 Webセミナー

Query & APIの機能追加

Page 64: Summer '16 開発者向け新機能 Webセミナー

SOSLの機能追加

toLabel()、FORMAT()、convertCurrency() で別名が利用可能• 例:FIND {Acme} RETURNING Account(AnnualRevenue, convertCurrency(AnnualRevenue) AliasCurrency)

SOSLでレコード情報とともにメタデータも返却• 例: FIND {Acme} RETURNING Account(Id, Name) WITH METADATA='LABELS'

価格表IDでの絞り込み• 例:Find {laptop} RETURNING Product2 WITH PricebookId = '01sxx0000002MffAAE'

Page 65: Summer '16 開発者向け新機能 Webセミナー

レポート・ダッシュボード

SOQLでレポートを使用しているダッシュボードを確認「特定IDのレポートを使用しているダッシュボードコンポーネントリストを返すSOQL例」

SELECT DashboardId FROM DashboardComponent USING SCOPE allPrivate WHERE CustomReportId = ‘00OR0000000PBZZMA4’

※個人フォルダに保存されているレポートの削除には”Manage All Private Reports and Dashboards”権限が必要※APIはVer. 37以降を使用

個人フォルダに保存されているレポートを使用しているダッシュボードもSOQLクエリでリスト化可能に

Page 66: Summer '16 開発者向け新機能 Webセミナー

Reports and Dashboards REST API

Dashboard Describe• services/data/v37.0/analytics/dashboards/dashboardID/describe

• 指定したダッシュボードのメタデータの取得

変更されたリソース:Dashboard Results• services/data/v37.0/analytics/dashboards/dashboardID• 新たにPOSTメソッドがサポートされ、コンポーネントIDを渡すことによってダッシュボード・コンポーネントの詳細を取得

Page 67: Summer '16 開発者向け新機能 Webセミナー

Streaming API

PushTopicストリーミング・イベントのリプレイ• サブスクライバが未接続時に発生したイベントを受信可能(過去24時間)• 通知メッセージにreplayIdが追加• replayオプションでどのイベントから通知を受けるか指定

フィルタをかけてPushTopicチャネルを登録• 構文:/topic/ChannelName?<expression>• 例:以下の例では業種がEnergyあるいは都市がSan Franciscoのレコードのイベントのみ通知される

/topic/myChannel?Industry='Energy'&ShippingCity='San Francisco'

EventreplayId 10

EventreplayId 12

EventreplayId 13

EventreplayId 14

EventreplayId 18

EventreplayId 19

EventreplayId 20

EventreplayId 22

最新24時間以前のイベントは削除

replayオプション = -2保持している全てのイベント

replayオプション = 18replayIdを指定するとそれ以降(replayId > 18)のイベント

replayオプション = -1新規イベントのみ

Page 68: Summer '16 開発者向け新機能 Webセミナー

Tooling APIの追加

新たに2つの名前空間が加わった• ens (sobject.tooling.soap.sforce.com)

Object

• fns (fault.tooling.soap.sforce.com)• エラーハンドリング

既存の2つ• tns (tooling.soap.sforce.com)

• ツール• mns (metadata.tooling.soap.sforce.com)

• メタデータ

あらたなTooling WSDLを使用してツールを作成する場合、反映する必要あり

Page 69: Summer '16 開発者向け新機能 Webセミナー

Metadata APIに新しいメタデータ型

グローバル選択リスト• GlobalPicklist• GlobalPicklistValue

組織設定• OrgPreferenceSettings

検索設定• SearchSettings

Wave関連• WaveApplication• WaveDashboard• WaveDataflow• WaveDataset• WaveLens

Page 70: Summer '16 開発者向け新機能 Webセミナー

その他

WSDLの変更• 将来の拡張のため組織のWSDLファイルにエラーコード関連の要素を追加• 現行のユーザプログラムには影響なし

Bulk API• CORSのサポート

オブジェクトの変更• Userオブジェクトに新項目 UserPreferencesSortFeedByComment を追加• Feedが最新コメント順にソートされる場合 true、投稿順にソートされる場合 false• 37.0より低いAPIバージョンからアクセス可

Page 71: Summer '16 開発者向け新機能 Webセミナー

その他重要な更新

Page 72: Summer '16 開発者向け新機能 Webセミナー

ブランドとライセンスの変更

新製品ブランド• Sales Cloud Lightning• Service Cloud Lightning• App Cloud Lightning• Community Cloud Lightning

※各製品ブランドの詳細は貴社営業担当までお問い合わせください。

Sales Cloud, Service Cloudに関する機能の変更• Connect Offline : Professional Editionでも利用可• エンタイトルメント管理 : Professional Editionでも利用可

※エンタイトルプロセスモニタリングとマイルストンに対するワークフローは対象外• Live Agent : Service Cloud Unlimited Editionでも利用可• オムニチャネル : Professional Edition Editionでも利用可• Salesforceコンソール : Professional Edition Editionでも利用可• サービスコンソール : Professional Edition Editionでも利用可• ナレッジ : Service Cloud Unlimited Editionでも利用可

Page 73: Summer '16 開発者向け新機能 Webセミナー

ブランドとライセンスの変更

• カスタムアプリケーション、カスタムタブ• PE, EE, UEにおいて利用制限なし

• カスタムプロファイル• PEにおいてライセンスタイプごとに2つまで利用可

• 項目レベルセキュリティ• PEにおいて利用可

• 権限セット• PEにおいて2つまで利用可

• プロセスビルダー• PEにおいて5つまで利用可

• レコードタイプ• PEにおいてオブジェクトごとに3つまで利用可

• サンドボックス• 開発者 - PEで10, EEで25, UEで100 部分 - EEで1, UEで1

Page 74: Summer '16 開発者向け新機能 Webセミナー

フローのsObject変数の%値における仕様変更

従来の仕様• %型のsObject変数に数値を代入すると自動的に100分される• = [100]を代入すると[1](%)になる

このため、%型のsObject変数Aに[100]を代入し、このsObejct変数Aを別の%型のsObject変数Bに代入すると、さらに100分されて[0.01](%)になってしまう

新しい仕様• パーセント型のsObject変数に数値がそのまま代入される• = [100]を代入すれば[100](%)になる

ただし、数式項目からこのsObject変数を参照した場合は100分される= [100]が代入されたsObject変数を数式項目で参照すると[1]になる

Page 75: Summer '16 開発者向け新機能 Webセミナー

バックグラウンドで送信された承認申請の確認

バックグラウンドの承認申請も、許可されたユーザかどうかを確認

通常の承認申請ボタンによる申請時にチェックされる項目:1. 開始基準を満たすかどうか2. 申請者が許可されたユーザかどうか

以前はバックグラウンド承認申請は(2)のチェックが行われていなかった• バックグラウンドでの承認申請:

• プロセス• Visual Workflow(フロー)• Apexクラス• APIコール

Page 76: Summer '16 開発者向け新機能 Webセミナー

Lightning ExperienceにおけるIE11のサポート終了

Microsoft Internet Explorer 11によるLightning ExperienceへのアクセスのサポートをSummer’16から終了

• IE11はLEXのセキュリティ機能の実現に必要な機能(CSP)が非実装• IE11のユーザはClassicにリダイレクトされる

終了時期• 既存の組織のユーザは、2017年12月までIE11をLEXで利用可能• 新規の組織のユーザは利用不可

Page 77: Summer '16 開発者向け新機能 Webセミナー

Desktop CTIの終了

Salesforce CTI Toolkitのサポートは既に終了

Spring’17リリースにおいてDesktop CTIがEOL• Open CTIへの移行を強く推奨

Page 78: Summer '16 開発者向け新機能 Webセミナー

Chatterメッセンジャー & デスクトップ終了

Chatterメッセンジャーの終了• Spring'16以降に有効化された組織

• 利用不可• Spring‘16以前にChatterメッセンジャーを有効化した組織

• 継続利用可能(Spring'17以降はサポート対象外)

Chatterデスクトップの終了• Spring'16以降に有効化された組織

• 利用不可• Spring‘16以前にChatterデスクトップを有効化した組織

• 継続利用可能(Spring'17以降はサポート対象外)

Page 79: Summer '16 開発者向け新機能 Webセミナー

thank y u