SlideShare a Scribd company logo
Salesforce Developer User Group [Tokyo] Meetup #4
Lightning Talks

!

Salesforce1 パブリッシャーアクションの歩き方
(Visualforce編)

倉谷 彰(@a_kuratani)

2013/12/18
自己紹介
倉谷 彰
@a_kuratani

Force.com Advent Calendar 管理人
http://atnd.org/events/45110

株式会社チームスピリット

R&Dグループ
エンジニア
Salesforce1対応の機能を
開発していますか?
Salesforce1 の開発方法は…
今回は…
Visualforceページで
パブリッシャーアクション
を作る
…ために使える
メソッド/イベントを
紹介します
利用できるメソッド
publish
publisher.setValidForSubmit
• 送信ボタンを活性化する
Sfdc.canvas.publisher.publish( {
name : “publisher.setValidForSubmit",
payload:”true"
!
});

• 送信ボタンを非活性化する
Sfdc.canvas.publisher.publish( {
name : “publisher.setValidForSubmit",
payload:”false"
!
});

• ポイント

非Salesforce1では送信ボタンが表示されない
publish
publisher.close
• アクションを閉じる
Sfdc.canvas.publisher.publish( {
name : “publisher.close",
payload : { refresh:"true" }
!
});

• ポイント

非Salesforce1環境ではアクションを閉じる動作がない
publish
publisher.refresh
• フィードをリフレッシュする
Sfdc.canvas.publisher.publish( {
name : “publisher.refresh”,
payload : { feed:"true" }
!
});

• ポイント

Salesforce1環境ではアクションを閉じるときにフィード
をリフレッシュするので不要(非Salesforce1環境用?)
Force.com Canvas SDKの
イベントが一部利用できる
subscribe
publisher.setupPanel/showPanel/clearPanel
• アクションを含む画面が表示されたときの処理
Sfdc.canvas.publisher.subscribe( {
name : “publisher.setupPanel”,
onData:function(e) { alert('setupPanel'); }
!
});

• アクションがアクティブになった時の処理
Sfdc.canvas.publisher.subscribe( {
name : “publisher.showPanel”,
onData:function(e) { alert('showPanel'); }
!
});

• アクションが非アクティブになった時の処理
Sfdc.canvas.publisher.subscribe( {
name : “publisher.clearPanel”,
onData:function(e) { alert('clearPanel'); }
});
subscribe
publisher.post
• 送信ボタンが押下された時の処理
Sfdc.canvas.publisher.subscribe( {
name : “publisher.post”,
onData:function(e) { alert('post'); }
});
subscribe
publisher.getPayload/setPayload/success/failure
• Visualforceページでは利用できなさそう
• 参考文献

http://www.slideshare.net/developerforce/df13-salesforce1-mt
まとめ
タイプ

名称
publisher.setValidForSu
メソッド bmit
publisher.close
publisher.refresh
publisher.setupPanel
publisher.showPanel
publisher.clearPanel
Canvas
 publisher.post
イベント publisher.success
publisher.failure
publisher.getPayload
publisher.setPayload

S1
⃝
⃝
✕
⃝
⃝
⃝
⃝
✕
✕
✕

非S1
✕
✕
⃝
⃝
⃝
⃝
✕
✕
✕
✕

✕

✕

備考

非S1は初回のみ
demo
パブリッシャーアクションを作って学んだこと
• 下記のメソッドが使えればSalesforce1対応はできる

setValidForSubmit / post / close

※非Salesforce1では動作しない
• 非SalesforceではSubmitしてもアクションが閉じない

Submit後に完了画面を表示する、など対応が必要
• 送信ボタンは目立たない、かつ、非Salesforce1環境では表
示されない

Submitボタンは自作したほうがわかりやすい?
Sample Source Code
• Gist

https://gist.github.com/kuratani/8007952
!
!

• 求む!

株式会社チームスピリットでは一緒に開発してくれる

開発者の方を募集中です。

ご興味のある方はお声がけください!
Enjoy Salesforce1

More Related Content

Salesforce DUG meetup #4 LT