summer '14開発者向け新機能webinar

45
Summer ’14 開発者向け新機能 201474

Upload: salesforce-developers-japan

Post on 15-Jan-2015

689 views

Category:

Technology


8 download

DESCRIPTION

7月4日に行われた開発者向け新機能Weibnarで使用された資料です。

TRANSCRIPT

Page 1: Summer '14開発者向け新機能Webinar

Summer ’14 開発者向け新機能 2014年7月4日

Page 2: Summer '14開発者向け新機能Webinar

#forcewebinar

Speaker

Mitsuhiro Okamoto Developer Programs Manager

@mitsuhiro

Page 3: Summer '14開発者向け新機能Webinar

#forcewebinar

Safe Harbor Safe harbor 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 intellectual property and other litigation, risks associated with 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-Q for the most recent fiscal quarter ended July 31, 2012. This 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 4: Summer '14開発者向け新機能Webinar

#forcewebinar

ソーシャルアカウントをフォロー下さい

@salesforcedevJP / #salesforcedevjp

Salesforce Developers Japan

+Salesforce Developers Japan

Salesforce Developers Japan

Salesforce Developers

Page 5: Summer '14開発者向け新機能Webinar

#forcewebinar

Agenda

§  Salesforce1 新機能 §  Canvas 新機能

§  Apex新機能

§  Visualforce新機能

Page 6: Summer '14開発者向け新機能Webinar

$50,000 in prizes New York | Bangalore | Los Angeles | London

FREE EVENT

SALESFORCE1 PLATFORM SUMMER HACKATHON SERIES

http://summerofhacks.com

#salesforcedevs

Page 7: Summer '14開発者向け新機能Webinar

2014年10月13日-16日

カリフォルニア州、サンフランシスコ

$899 開発者割引コード:

D14DVLPR http://bit.ly/dfweb14

#devzone

Page 8: Summer '14開発者向け新機能Webinar

#forcewebinar

Salesforce1 新機能

Page 9: Summer '14開発者向け新機能Webinar

#forcewebinar

パブリッシャアクションがChatterから独立

§  Chatterを有効化しなくてもSalesforce1固有のアクションを

追加できるように

§  投稿、ファイル、リンク、アンケート、感謝、といったChatter固有のアクションは利用できない

Page 10: Summer '14開発者向け新機能Webinar

#forcewebinar

Salesforce1上での承認申請

Page 11: Summer '14開発者向け新機能Webinar

#forcewebinar

Canvas新機能

Page 12: Summer '14開発者向け新機能Webinar

#forcewebinar

Canvasがモバイルカード及びページレイアウトに

Page 13: Summer '14開発者向け新機能Webinar

#forcewebinar

Canvasを直接ページレイアウトに配置可能 Embed your Canvas

App directly in a Page Layout without using a Visualforce

Container

Visualforceコンテナを介さずに直接Canvasアプリケーションをページレイアウトに埋め込むこと

が可能になった

Page 14: Summer '14開発者向け新機能Webinar

#forcewebinar

Canvasを呼び出す際のレコード詳細情報の追加

設定した項目は署名付きリクエストのレスポンスに

含まれて返却される

You can set the record fields in the Apex Lifecycle

handler and/or the Visualforce component

Apexライフサイクルハンドラ及びVisualforceタグにレコードの項

目を設定できるようになった

Page 15: Summer '14開発者向け新機能Webinar

#forcewebinar

Apex ライフサイクルハンドラーとCanvas URLのオーバーライド

Apex Lifecycle Handlerを利用すると、署名付きリクエスト受信時の挙動を

カスタマイズできる

CanvasへアクセスするためのURLを書き換

えることが可能

Page 16: Summer '14開発者向け新機能Webinar

#forcewebinar

Salesforce1 – ページレイアウト & モバイルカード Embed your Canvas

App directly in a Page Layout or as a Mobile

Card

Canvas Apps can be displayed in

Record Detail and in Mobile Cards in

S1

Canvasアプリはレコード詳細及びモバイルカードに追加するこ

とが可能

Canvasアプリを直接ページレイアウトで指定する

Page 17: Summer '14開発者向け新機能Webinar

#forcewebinar

Salesforce1 – 画面回転イベントとモバイルCanvasアイコン

Canvasアプリがデフォルトのパズルアイコンではなく独自のロゴを利用できる

ように

デバイスを回転した際、 Canvasアプリケーション側でイベントが補足できるようになった (0, -90, もしくは 90 degrees)等

Page 18: Summer '14開発者向け新機能Webinar

#forcewebinar

ユーザ承認制の承認リクエスト

署名付リクエストをCanvasが受け取ってない場合、承認画面を

表示

接続アプリの設定で “許可されてるユーザ” に“すべてのユーザ

は自己承認可能”を選択

Page 19: Summer '14開発者向け新機能Webinar

#forcewebinar

Demo Canvas

Page 20: Summer '14開発者向け新機能Webinar

#forcewebinar

Force.com新機能

Page 21: Summer '14開発者向け新機能Webinar

#forcewebinar

カスタム権限 [開発者プレビュー] §  接続アプリの権限をコントロール可能

Page 22: Summer '14開発者向け新機能Webinar

#forcewebinar

その他新機能、変更 §  外部IDの使用制限

–  従来の3つからから7つへ

§  ホームページコンポーネント –  新しいリッチテキストエディタにより従来より多くのマークアップがサ

ポート –  HTMLエリア内のJavascript、CSS、iframe等のサポート外マーク

アップはSummer’15リリース以降無効化

–  上記のサポート外マークアップは新たに用意されたVisualforceエリ

アコンポーネントにて利用可能

Page 23: Summer '14開発者向け新機能Webinar

#forcewebinar

Apex新機能

Page 24: Summer '14開発者向け新機能Webinar

#forcewebinar

Flex Queue [パイロット] §  従来のジョブの最大値である5以上のバッチをQueueに登

録しておくことが可能

§  100バッチジョブまで待ち行列に加わることが可能

§  システムリソースに空きが出た場合、システムは

FlexQueueからジョブを取得し、Batch JobQueueへ登録す

Page 25: Summer '14開発者向け新機能Webinar

#forcewebinar

Batchable Interface global with sharing class WHUtil implements Database.Batchable<sObject>!

{ global Database.QueryLocator start(Database.BatchableContext BC)!

{ //Start on next context }!

global void execute(Database.BatchableContext BC, !

!List<sObject>scope) !

{ //Execute on current scope }!

global void finish(Database.BatchableContext BC) !

{ //Finish and clean up context } !

} !

!

Page 26: Summer '14開発者向け新機能Webinar

#forcewebinar

Flex キュー

Page 27: Summer '14開発者向け新機能Webinar

#forcewebinar

カスタムFutureリミット [パイロット]

§  Futureメソッドに従来のガバナ制限よりより高い値を設定す

ることが可能

§  もしFutureメソッドがガバナ制限に抵触する可能性がある場

合には、自身で制限を拡張できる

Page 28: Summer '14開発者向け新機能Webinar

#forcewebinar

カスタムFutureリミット 設定一覧

@future(limits='2xHeap') Heap size limit is doubled (24 MB).

@future(limits='3xHeap') Heap size limit is tripled (36 MB).

@future(limits='2xCPU') CPU timeout is doubled (120,000 milliseconds).

@future(limits='3xCPU') CPU timeout is tripled (180,000 milliseconds).

@future(limits='2xSOQL') Number of SOQL queries limit is doubled (400).

@future(limits='3xSOQL') Number of SOQL queries limit is tripled (600).

@future(limits='2xDML') Number of DML statements limit is doubled (300).

@future(limits='3xDML') Number of DML statements limit is tripled (450).

@future(limits=‘2xDMLRows’)1 Number of records that were processed as a result of DML operations is doubled (20,000).

@future(limits='3xDMLRows')1 Number of records that were processed as a result of DML operations is tripled (30,000).

Page 29: Summer '14開発者向け新機能Webinar

#forcewebinar

@future(limits='2xHeap') public static void myFutureMethod() { // Your code here }

Setting @future limits

Page 30: Summer '14開発者向け新機能Webinar

#forcewebinar

Visualforce新機能

Page 31: Summer '14開発者向け新機能Webinar

#forcewebinar

Visualforce Remote Objects 機能追加

§  地理位置情報のサポート – 地理位置情報型へアクセス §  Upsert処理 – update/createの簡略化

§  Orderby条件 – クエリをソートする

§  Where条件 – 新しい条件句: ne, lte, gte

§  Remote Methodオーバーライド – 標準動作の上書き

Page 32: Summer '14開発者向け新機能Webinar

#forcewebinar

<apex:remoteObjects jsNamespace="RemoteObjectModel”> <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone,Email,MailingStreet” retrieve="{!$RemoteAction.ContactOverrideController.retrieve}”> <apex:remoteObjectField name="skipdev__Notes__c" jsShorthand="Notes"/> <apex:remoteObjectField name="Location__Longitude__s" jsShorthand="Longitude"/> <apex:remoteObjectField name="Location__Latitude__s" jsShorthand="Latitude"/> </apex:remoteObjectModel> </apex:remoteObjects> … var c = new RemoteObjectModel.Contact(); c.retrieve({where: { Id: { eq: id } } }, function(err, records) { var record = records[0]; var lat = record.get("Latitude”); var lng = record.get(”Longitude”) var latlng = new google.maps.LatLng(lat, lng); ….

サンプル – 地理位置情報

Page 33: Summer '14開発者向け新機能Webinar

#forcewebinar

function addUpdateContact(e){ var record = new RemoteObjectModel.Contact({…}); if (cId) { record.set('Id', cId); } record.upsert(updateCallback); }

サンプル - upsert

Page 34: Summer '14開発者向け新機能Webinar

#forcewebinar

function getAllContacts() { var c = new RemoteObjectModel.Contact(); c.retrieve({ limit: 100, orderby: [ {FirstName: "ASC"}, {LastName: "ASC"} ], where: {FirstName: {ne: "Andy"} } }, function (err, records) { … } ); }

サンプル – orderby と where 条件

Page 35: Summer '14開発者向け新機能Webinar

#forcewebinar

<apex:page controller="skipdev.ContactOverrideController"> <apex:remoteObjects jsNamespace="RemoteObjectModel”> <apex:remoteObjectModel name="Contact" fields="Id,FirstName,LastName,Phone,Email,MailingStreet” retrieve="{!$RemoteAction.ContactOverrideController.retrieve}”> </apex:remoteObjectModel> </apex:remoteObjects> public class ContactOverrideController { @RemoteAction public static Map<String, Object> retrieve(String type, List<String> fields, Map<String, Object> criteria) { Map<String, Object> result = RemoteObjectController.retrieve(type, fields, criteria); // Append to, transform, or otherwise modify the result object …. return result; } }

サンプル – メソッドのオーバーライド

Page 36: Summer '14開発者向け新機能Webinar

#forcewebinar

public with sharing class myControllerExtension implements Util { private final Account acct; public Contact newContact {get; set;} public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); } public PageReference associateNewContact(Id cid) { newContact = [SELECT Id, Account from Contact WHERE Id =: cid LIMIT 1]; newContact.Account = acct; update newContact; } }

サンプル

Page 37: Summer '14開発者向け新機能Webinar

#forcewebinar

その他のVisualforceアップデート

§  sforce.one 関連のAPIバージョニング §  Salesforce CSS 及び Javascript 最適化

§  Visualforce PDFエンジンのアップデート(パイロット) –  WebkitベースでよりJSによる描画後や2 Byte言語のサポート

Page 38: Summer '14開発者向け新機能Webinar

#forcewebinar

New Visualforce PDF Engine

Page 39: Summer '14開発者向け新機能Webinar

#forcewebinar

New Visualforce PDF Engine

Page 40: Summer '14開発者向け新機能Webinar

#forcewebinar

ガバナ制約の更新

§  Describe 制限の撤廃 –  全てのAPIバージョンからApex Describeコールの制限が削除

–  DescribeコールにはsObject、項目、項目セット、関連、選択リスト、

レコードタイプが含まれる

§  Developer Edition API制限の拡張 –  24時間のコール制限が5,000 から 15,000 に

Page 41: Summer '14開発者向け新機能Webinar

#forcewebinar

正式リリース

§  Chatter Files REST API §  ワークフローでの複数レコード及び項目のサポート

§  Search Suggested Queries REST API

§  分析ダッシュボードAPI

Page 42: Summer '14開発者向け新機能Webinar

#forcewebinar

リソース

§  http://developer.salesforce.com

§  http://developer.salesforce.com/releases

§  http://bit.ly/summer14prerel

Page 43: Summer '14開発者向け新機能Webinar

#forcewebinar

Next Steps

§  プレリリース組織を取得Pre-Release –  http://bit.ly/summer14prerel

§  リリースノートを読む –  http://developer.salesforce.com/releases

Page 44: Summer '14開発者向け新機能Webinar

#forcewebinar

無料の開発者環境 Developer Edition

http://developer.salesforce.com/join

Page 45: Summer '14開発者向け新機能Webinar

#forcewebinar

ありがとうございました