SlideShare uma empresa Scribd logo
1 de 57
株式会社セールスフォース・ドットコム  ビジネス開発本部 Apex プラットフォーム  コア開発者向けセミナー
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],はじめに
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Salesforce が「プラットフォーム」になった理由 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Apex プラットフォームの特徴:マルチテナント型アーキテクチャ 企業 A 企業 B 企業 C Salesforce 組織 A Salesforce 組織 B Salesforce 組織 C ユーザ 管理者 ユーザ 管理者 ユーザ 管理者 企業 A 企業 B 企業 C Salesforce 組織 A Salesforce 組織 B Salesforce 組織 C 申し込んだ企業にそれぞれ仮想的なデータベースインスタンス( Salesforce 組織)が割り与えられる データベースのスキーマ(テーブル構成)やレコード情報はそれぞれの企業ごとにプライベートに隔離
Apex アプリケーションについて
Apex アプリケーションの分類 Salesforce 上ですべて動作するアプリケーション 外部の Web サイトから API を介して連携するアプリケーション Salesforce ネイティブ オンデマンド 連携 クライアント 連携 クライアント端末やイントラネットから API を介して連携するアプリケーション
Salesforce ネイティブアプリケーションの特徴 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<今回の内容はこの分類のアプリケーションの構築方法が中心>
Salesforce のデータベース
Salesforce の標準データモデル ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
標準データモデルの関連図(抜粋) Owner CreatedBy LastModifiedBy Who/What Tasks/Events/ OpenActivities/ActivityHistories Account Opportunities Contacts Account ※  詳細は Appendix  を参照 取引先責任者 Contact 取引先 Account 商談 Opportunity ユーザ User ToDo Task 行動 Event
データベース・スキーマの拡張 ,[object Object],[object Object],[object Object],[object Object],従業員 部署 部署 従業員 部下 上司 ,[object Object],[object Object],[object Object],[object Object],[object Object]
用語の整理 ,[object Object],[object Object],[object Object],[object Object]
カスタムオブジェクトの定義 ,[object Object],[object Object]
オブジェクト ID ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
リレーションと親子関係 ,[object Object],[object Object],[object Object],[object Object],[object Object],取引先責任者 Contact Contacts Account 親 子 取引先 Account
Apex API  &  SOQL
Apex API  と  SOQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apex API  のメソッド種類 convertLead, merge, process  SFDC 処理 getServerTimestamp, getUserInfo, setPassword, resetPassword ユーティリティ describeGlobal, describeSObject, describeLayout, describeTabs, describeSoftphoneLayout 定義情報 getUpdated, getDeleted 同期 create, update, delete, upsert, undelete データ処理 query, queryMore, retrieve, search, queryAll 検索 login ログイン メソッド名 メソッド種類
SOQL ,[object Object],[object Object],SELECT Account.Id, Account.Name,    (SELECT Contact.FirstName, Contact.LastName   FROM Account.Contacts) FROM Account  SELECT Id, Name FROM Account WHERE BillingState = ' 東京都 ' LIMIT 10 SELECT Contact.Id, Contact.FirstName, Contact.LastName,    Account.Id, Account.Name FROM Contact
リレーションシップ・クエリ ,[object Object],[object Object],[object Object],Owner Account Events 親1階層 親2階層 子1階層 SELECT Id, Name, Account.Id, Account.Name,    Account.Owner.Id, Account.Owner.Name,   (SELECT Id, Subject FROM Events) FROM Opportunity 商談 Opportunity 行動 Event 取引先 Account ユーザ User
条件( WHERE 句)による絞込み ,[object Object],[object Object],[object Object],[object Object],[object Object],SELECT Name FROM Opportunity WHERE Owner.Name = ‘ 鈴木’ SELECT Name, (SELECT FirstName FROM Contacts   WHERE CreatedDate = THIS_MONTH) FROM Account
Count()  関数、 ORDER BY 、 LIMIT 句 ,[object Object],[object Object],[object Object],SELECT count() FROM Opportunity  WHERE CloseDate = THIS_MONTH  AND Amount >= 1000000 SELECT Name, Amount, StageName FROM Opportunity  ORDER BY CloseDate DESC LIMIT 5 SELECT Name, Amount, StageName,   (SELECT CreatedDate FROM OpportunityHistories    ORDER BY CreatedDate DESC LIMIT 5) FROM Opportunity
カスタムオブジェクトと Apex API ,[object Object],[object Object],[object Object],[object Object],[object Object],SELECT   Id, Name, Hiredate__c, Salary__c,         Department__r.Id, Department__r.Name FROM Employee__c
標準項目 ,[object Object],CreatedById (項目名)、 CreatedBy (リレーション名) 作成者  LastModifiedById (項目名)、 LastModifiedBy (リレーション名) 最終更新者 LastModifiedDate 最終更新日 OwnerId (項目名 ) 、 Owner (リレーション名) 所有者 CreatedDate 作成日  Name オブジェクト名 Id オブジェクト ID 項目名 表示ラベル
カスタムオブジェクトでの問い合わせの例 部署 Department__c Department__r Employees__r Manager__r Workers__r SELECT Name, Hiredate__c  FROM Employee__c WHERE Department__r.Name = ‘ 営業部’ SELECT Name, Salary__c  FROM Employee__c WHERE Manager__c = ‘ a0270000003lVks ’ SELECT Name, Location__c,   (SELECT Name    FROM Employees__r) FROM Department__c WHERE Name = ‘ 営業部’ 従業員 Employee__c
レコードの共有設定とアクセスコントロール ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
デフォルトの共有設定の変更 (1) (2) (3)
Apex API を利用したレコード個別の共有設定 ,[object Object],[object Object],[object Object],var aci = new sforce.SObject(' Employee __Share'); aci.ParentId = 'a0370000004clVH'; //  対象となるレコードの ID aci.UserOrGroupId = '005700000011raw';   //  権限を与えるユーザの ID aci.AccessLevel   = 'Read'; //  読み取り権限のみ sforce.connection.create([aci]);
項目の更新履歴 ,[object Object],[object Object],[object Object],SELECT CreatedDate, Field, OldValue, NewValue FROM Employee__History WHERE ParentId = 'a0370000004clVH' //  従業員のレコード ID AND Field = 'Salary__c'
S コントロールと AJAX Toolkit
S コントロール ,[object Object],[object Object],例: Google Maps  上に 取引先データの住所位置をマッピングして表示
AJAX Toolkit ,[object Object],[object Object],<html> <head> <script type=&quot;text/javascript&quot;  src= &quot;/soap/ajax/9.0/connection.js&quot; ></script>    </head> …
S コントロール  + AJAX Toolkit のアーキテクチャ 4. AJAX による API リクエストの送信 AJAX Toolkit S コントロール Apex API Salesforce  データベース 1. S コントロール内の HTML+JavaScript を ダウンロード Web ブラウザ ユーザ 2.スクリプトの実行&描画処理 5.検索、更新 などの DB 処理 3.ユーザ操作などのイベント 6.画面の再描画 標準オブジェクト & カスタムオブジェクト
例)  Hello World <html> <head> <script type=&quot;text/javascript&quot;  src=&quot;/soap/ajax/9.0/connection.js&quot;></script> <script type=&quot;text/javascript&quot;> window.onload = function() { document.body.innerHTML = '<H1>Hello, ' +  sforce.connection.getUserInfo() .userFullName +  '</H1>'; } </script> </head> <body></body> </html>
例) 取引先を検索、テーブルで一覧表示 <html> <head> <script type=&quot;text/javascript&quot; src=&quot;/soap/ajax/9.0/connection.js&quot;></script> <script type=&quot;text/javascript&quot;> function queryAccount() { var searchStr = document.getElementById('searchStr').value; var accounts =  sforce.connection.query( &quot;SELECT Id, Name FROM Account WHERE Name LIKE '%&quot;+searchStr+&quot;%'&quot; ) .getArray('records'); var html = '<table border=&quot;1&quot;>'; for (var i=0; i<accounts.length; i++) { html += '<tr><td>'+accounts[i].Id+'</td>'+ ' <td>'+accounts[i].Name+'</td>'+ '</tr>'; } html += '</table>'; document.getElementById('output').innerHTML = html; } </script> </head> <body> <input type=&quot;text&quot; id=&quot;searchStr&quot;> <input type=&quot;button&quot; value=&quot; 検索 &quot; onclick=&quot;queryAccount()&quot;> <div id=&quot;output&quot;></div> </body> </html>
Google Maps とのマッシュアップ ,[object Object],[object Object],[object Object],[object Object]
コーディングにおける TIPS
同期リクエストと非同期リクエスト ,[object Object],[object Object],[object Object],[object Object],[object Object],var result = sforce.connection.query(&quot;SELECT Id, Name FROM Account&quot;); sforce.connection.query( &quot;SELECT Id, Name FROM Account&quot;, { onSuccess : handleResult, onFailure : handleError } );
どちらが望ましい? ,[object Object],[object Object]
オープンソース AJAX ライブラリの利用 ,[object Object],[object Object],[object Object],[object Object],<html> <head> <script type=&quot;text/javascript&quot;  src= &quot;/js/dojo/0.4.1/dojo.js&quot; ></script>    </head> …
Dojo Toolkit  の利用例 ,[object Object],[object Object],[object Object]
S コントロールからの画像ファイルの利用 ,[object Object],[object Object],[object Object],[object Object],[object Object],<img src=&quot;/servlet/servlet.FileDownload?file=0157000000084Un&quot; >
S コントロールを含む画面遷移 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
差し込み項目でパラメータ受け取り {!Account.Id} 株式会社四川商会 差し込み項目 標準のレコード詳細画面 カスタムボタン  /  カスタムリンク カスタム S コントロール 展開された値 {!Account.Name} 0017000000Kh6OS
URLFOR 関数による画面遷移 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],location.href = '{!URLFOR($SControl.HelloWorld)}' parent.location.href =       '{!URLFOR($Action.Account.Edit, Account.Id)}'
Summary
Apex アプリケーション開発について ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apex Platform Development Partner Program ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Appendix
Appendix  :  AJAX Tools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Appendix :  開発用サンプルデータセット ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Appendix  : 「ユーザ  (User) 」 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ユーザ User
Appendix  : 「取引先  (Account) 」 ,[object Object],[object Object],[object Object],SELECT Id, Name, Phone, NumberOfEmployees, BillingState, BillingCity, BillingStreet FROM Account  取引先 Account
Appendix  : 「取引先責任者  (Contact) 」 ,[object Object],[object Object],[object Object],[object Object],SELECT LastName, FirstName, Email,  Account.Name, Account.Phone FROM Contact 取引先責任者 Contact
Appendix  : 「商談  (Opportunity) 」 ,[object Object],[object Object],[object Object],[object Object],SELECT Id, Name, StageName, Amount,  Account.Name, Account.Phone  FROM Opportunity 商談 Opportunity
Appendix  : 「 ToDo (Task) 」 および 「行動  (Event) 」 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ToDo Task 行動 Event

Mais conteúdo relacionado

Mais procurados

SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかHiroshi Tokumaru
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理土岐 孝平
 
コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレートコードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレートAkira Maruyama
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
 
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 arisu yano
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003Shinya Sugiyama
 

Mais procurados (8)

SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
コードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレートコードビュー中心で開発するDreamweaverテンプレート
コードビュー中心で開発するDreamweaverテンプレート
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
WordBeach @kurudrive
WordBeach @kurudriveWordBeach @kurudrive
WordBeach @kurudrive
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
 

Semelhante a Apexコアデベロッパーセミナー070726 配布用

AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版Junichiro Tasaki
 
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発Salesforce Developers Japan
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdkKazuki Nakajima
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
DB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDaiyu Hatakeyama
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介Kenichiro Nakamura
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へDevelopers Summit
 
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発Kazuki Nakajima
 
サービス開発における フロントエンド・ドメイン駆動設計の実践
サービス開発における フロントエンド・ドメイン駆動設計の実践サービス開発における フロントエンド・ドメイン駆動設計の実践
サービス開発における フロントエンド・ドメイン駆動設計の実践TakefumiYoshii
 
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~decode2016
 
Django Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作るDjango Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作るMatsuo Keita
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀増田 亨
 
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!Yusuke Kodama
 
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみたマルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた桂一 中山
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようTasuku Otani
 

Semelhante a Apexコアデベロッパーセミナー070726 配布用 (20)

AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版
 
Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発Lightning Experience 時代のプロセス開発
Lightning Experience 時代のプロセス開発
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
DB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data Platform
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
 
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発
 
サービス開発における フロントエンド・ドメイン駆動設計の実践
サービス開発における フロントエンド・ドメイン駆動設計の実践サービス開発における フロントエンド・ドメイン駆動設計の実践
サービス開発における フロントエンド・ドメイン駆動設計の実践
 
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
DBP-020_いざ無制限のデータの彼方へ! ~Azure Data Lake 開発の知識とベストプラクティス~
 
Django Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作るDjango Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作る
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
 
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
GoodBye AD FS - Azure Active Directory Only の認証方式へ切り替えよう!
 
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみたマルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
 

Último

令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdfjun_suto
 
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料inoue13
 
HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用
HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用
HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用wataruhonda3
 
20240318_case___________________________
20240318_case___________________________20240318_case___________________________
20240318_case___________________________i Smart Technologies
 
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料ssuser5a38bf
 
ROMS_recruting_deck_for_website_20240322.pdf
ROMS_recruting_deck_for_website_20240322.pdfROMS_recruting_deck_for_website_20240322.pdf
ROMS_recruting_deck_for_website_20240322.pdfhirokisawa3
 
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf株式会社オプティマインド
 
20240209_case___________________________
20240209_case___________________________20240209_case___________________________
20240209_case___________________________i Smart Technologies
 
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版DIGITAL VORN
 
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版DIGITAL VORN
 
株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile
株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile
株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profilevrihomepage
 
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf株式会社オプティマインド
 
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版DIGITAL VORN
 
20240319_case___________________________
20240319_case___________________________20240319_case___________________________
20240319_case___________________________i Smart Technologies
 
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版DIGITAL VORN
 

Último (16)

令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
令和5年度_サステナブルツーリズムセミナー_ビジュアルレポート(公開用).pdf
 
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
「育て」「動かし」「評価する」PRMツール。「PartnerProp」パートナープロップサービス資料
 
HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用
HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用
HRMOS(ハーモス)タレントマネジメント_ご紹介資料_Saleshub掲載用
 
Japan IT Week 2024 Brochure by 47Billion
Japan IT Week 2024 Brochure by 47BillionJapan IT Week 2024 Brochure by 47Billion
Japan IT Week 2024 Brochure by 47Billion
 
20240318_case___________________________
20240318_case___________________________20240318_case___________________________
20240318_case___________________________
 
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
Sportip, Inc. Company Deck 2024|株式会社Sportip紹介資料
 
ROMS_recruting_deck_for_website_20240322.pdf
ROMS_recruting_deck_for_website_20240322.pdfROMS_recruting_deck_for_website_20240322.pdf
ROMS_recruting_deck_for_website_20240322.pdf
 
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
【株式会社オプティマインド】会社紹介資料(2024年04月更新)_中途採用.pdf
 
20240209_case___________________________
20240209_case___________________________20240209_case___________________________
20240209_case___________________________
 
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
株式会社デジタルフォルン_会社説明資料~事業内容~         2024年版
 
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
株式会社デジタルフォルン_会社説明資料~その他の働く環境~         2024年版
 
株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile
株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile
株式会社ベクトル総研会社概要 Vector Research Institute (VRI) Corporate Profile
 
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
【株式会社オプティマインド】会社紹介資料_2024年4月11日更新(採用資料).pdf
 
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
株式会社デジタルフォルン_会社説明資料~カルチャー~         2024年版
 
20240319_case___________________________
20240319_case___________________________20240319_case___________________________
20240319_case___________________________
 
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
株式会社デジタルフォルン_会社説明資料~仕事内容~         2024年版
 

Apexコアデベロッパーセミナー070726 配布用

  • 1. 株式会社セールスフォース・ドットコム  ビジネス開発本部 Apex プラットフォーム コア開発者向けセミナー
  • 2.
  • 3.
  • 4.
  • 5. Apex プラットフォームの特徴:マルチテナント型アーキテクチャ 企業 A 企業 B 企業 C Salesforce 組織 A Salesforce 組織 B Salesforce 組織 C ユーザ 管理者 ユーザ 管理者 ユーザ 管理者 企業 A 企業 B 企業 C Salesforce 組織 A Salesforce 組織 B Salesforce 組織 C 申し込んだ企業にそれぞれ仮想的なデータベースインスタンス( Salesforce 組織)が割り与えられる データベースのスキーマ(テーブル構成)やレコード情報はそれぞれの企業ごとにプライベートに隔離
  • 7. Apex アプリケーションの分類 Salesforce 上ですべて動作するアプリケーション 外部の Web サイトから API を介して連携するアプリケーション Salesforce ネイティブ オンデマンド 連携 クライアント 連携 クライアント端末やイントラネットから API を介して連携するアプリケーション
  • 8.
  • 10.
  • 11. 標準データモデルの関連図(抜粋) Owner CreatedBy LastModifiedBy Who/What Tasks/Events/ OpenActivities/ActivityHistories Account Opportunities Contacts Account ※ 詳細は Appendix を参照 取引先責任者 Contact 取引先 Account 商談 Opportunity ユーザ User ToDo Task 行動 Event
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Apex API & SOQL
  • 18.
  • 19. Apex API のメソッド種類 convertLead, merge, process SFDC 処理 getServerTimestamp, getUserInfo, setPassword, resetPassword ユーティリティ describeGlobal, describeSObject, describeLayout, describeTabs, describeSoftphoneLayout 定義情報 getUpdated, getDeleted 同期 create, update, delete, upsert, undelete データ処理 query, queryMore, retrieve, search, queryAll 検索 login ログイン メソッド名 メソッド種類
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. カスタムオブジェクトでの問い合わせの例 部署 Department__c Department__r Employees__r Manager__r Workers__r SELECT Name, Hiredate__c FROM Employee__c WHERE Department__r.Name = ‘ 営業部’ SELECT Name, Salary__c FROM Employee__c WHERE Manager__c = ‘ a0270000003lVks ’ SELECT Name, Location__c, (SELECT Name FROM Employees__r) FROM Department__c WHERE Name = ‘ 営業部’ 従業員 Employee__c
  • 27.
  • 29.
  • 30.
  • 32.
  • 33.
  • 34. S コントロール + AJAX Toolkit のアーキテクチャ 4. AJAX による API リクエストの送信 AJAX Toolkit S コントロール Apex API Salesforce データベース 1. S コントロール内の HTML+JavaScript を ダウンロード Web ブラウザ ユーザ 2.スクリプトの実行&描画処理 5.検索、更新 などの DB 処理 3.ユーザ操作などのイベント 6.画面の再描画 標準オブジェクト & カスタムオブジェクト
  • 35. 例)  Hello World <html> <head> <script type=&quot;text/javascript&quot; src=&quot;/soap/ajax/9.0/connection.js&quot;></script> <script type=&quot;text/javascript&quot;> window.onload = function() { document.body.innerHTML = '<H1>Hello, ' + sforce.connection.getUserInfo() .userFullName + '</H1>'; } </script> </head> <body></body> </html>
  • 36. 例) 取引先を検索、テーブルで一覧表示 <html> <head> <script type=&quot;text/javascript&quot; src=&quot;/soap/ajax/9.0/connection.js&quot;></script> <script type=&quot;text/javascript&quot;> function queryAccount() { var searchStr = document.getElementById('searchStr').value; var accounts = sforce.connection.query( &quot;SELECT Id, Name FROM Account WHERE Name LIKE '%&quot;+searchStr+&quot;%'&quot; ) .getArray('records'); var html = '<table border=&quot;1&quot;>'; for (var i=0; i<accounts.length; i++) { html += '<tr><td>'+accounts[i].Id+'</td>'+ ' <td>'+accounts[i].Name+'</td>'+ '</tr>'; } html += '</table>'; document.getElementById('output').innerHTML = html; } </script> </head> <body> <input type=&quot;text&quot; id=&quot;searchStr&quot;> <input type=&quot;button&quot; value=&quot; 検索 &quot; onclick=&quot;queryAccount()&quot;> <div id=&quot;output&quot;></div> </body> </html>
  • 37.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. 差し込み項目でパラメータ受け取り {!Account.Id} 株式会社四川商会 差し込み項目 標準のレコード詳細画面 カスタムボタン / カスタムリンク カスタム S コントロール 展開された値 {!Account.Name} 0017000000Kh6OS
  • 46.
  • 48.
  • 49.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.