AppExchangeパートナー&デベロッパー第2部:20070523版

4,032 views
3,878 views

Published on

株式会社セールスフォース・ドットコムが毎月行っているAppExchangeセミナーの資料

Published in: Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,032
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
160
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

AppExchangeパートナー&デベロッパー第2部:20070523版

  1. 1. 株式会社セールスフォース・ドットコム  ビジネス開発本部 Apex プラットフォームでの アプリケーション開発
  2. 2. Apex アプリケーション開発プロセス
  3. 3. Apex アプリケーション開発のプロセス デザイン デザイン 開発 パッケージ リリース
  4. 4. <ul><li>Salesforce の CRM アプリケーションを拡張したい </li></ul><ul><ul><li>データ項目、テーブルの追加、ユーザインターフェース拡張 </li></ul></ul><ul><li>運用コストをかけずに社内アプリケーションを作成したい </li></ul><ul><ul><li>人材採用、人事、日報管理 </li></ul></ul><ul><li>外部の Web サービスと連動したアプリケーションを開発したい </li></ul><ul><ul><li>マッシュアップアプリケーション </li></ul></ul><ul><li>既存システムのデータを Salesforce のデータと連動したい </li></ul><ul><ul><li>ERP 、データベースサーバ </li></ul></ul><ul><li>Web ブラウザ以外の環境から Salesforce にアクセスしたい </li></ul><ul><ul><li>モバイル端末からのアクセス </li></ul></ul><ul><ul><li>Excel などのデスクトップソフトウェア </li></ul></ul>Apex アプリケーション開発の目的は? デザイン
  5. 5. Apex アプリケーションの分類 デザイン Salesforce 上ですべて動作するアプリケーション 外部の Web サイトから API を介して連携するアプリケーション Salesforce ネイティブ オンデマンド 連携 クライアント 連携 クライアント端末やイントラネットから API を介して連携するアプリケーション
  6. 6. アプリケーション分類ごとの特徴 デザイン <ul><li>外部のサーバを必要としない </li></ul><ul><li>運用やスケーラビリティに気を使う必要がない </li></ul><ul><li>プログラム記述なしでもアプリを構築可能 </li></ul>Salesforce ネイティブ オンデマンド 連携 クライアント 連携 <ul><li>外部のデータやビジネスロジックを利用可能 </li></ul><ul><li>アプリケーション開発のための言語は自由 </li></ul><ul><li>Apex API を利用したデータ連携が可能 </li></ul><ul><li>ブラウザ以外の環境から Salesforce にアクセス </li></ul><ul><li>Apex API を利用したデータ連携が可能 </li></ul><ul><li>クライアント側にソフトウェアインストールする必要あり </li></ul>
  7. 7. Apex アプリケーション開発プロセス 開発 パッケージ リリース デザイン
  8. 8. Apex プラットフォームの主要機能 <ul><li>カスタムオブジェクト </li></ul><ul><ul><li>アプリケーションデータを保管するデータベース表 </li></ul></ul><ul><li>カスタム S コントロール </li></ul><ul><ul><li>ユーザインターフェースを記述する HTML コンポーネント </li></ul></ul><ul><li>Apex API </li></ul><ul><ul><li>Salesforce 内のデータベースへのアクセス手段 </li></ul></ul><ul><li>カスタムリンク/ボタン/ Web タブ </li></ul><ul><ul><li>外部 Web アプリケーションとの連携 </li></ul></ul><ul><li>レポート・ダッシュボード </li></ul><ul><ul><li>データの集計、分析 </li></ul></ul>開発
  9. 9. カスタムオブジェクト <ul><li>アプリケーションデータを保管するデータベース表 </li></ul><ul><ul><li>アプリケーション独自のデータ構造を定義 </li></ul></ul><ul><ul><li>オブジェクト(標準オブジェクトを含む)間の関連も定義可能 </li></ul></ul><ul><ul><li>Salesforce の画面にタブとして追加表示できる </li></ul></ul>開発 例: 「プロジェクト」カスタムオブジェクトをタブとして画面に表示
  10. 10. カスタムオブジェクトの活用例 <ul><li>Salesforce 標準のデータモデルにないデータを使ったアプリケーションの開発 </li></ul><ul><ul><li>例: 人材採用管理、プロジェクト管理 </li></ul></ul><ul><li>外部プログラムが使用するデータの保管先 </li></ul><ul><ul><li>Salesforce をデータベースサービスとして利用 </li></ul></ul><ul><ul><li>Apex API を利用してアクセス </li></ul></ul><ul><li>外部システムが管理するデータの移入先 </li></ul><ul><ul><li>例: 経費データ(外部 ERP システムから) </li></ul></ul><ul><ul><li>Salesforce のデータと連動したレポーティング </li></ul></ul>開発
  11. 11. デモ:人材採用管理アプリケーションの開発 派遣会社名 (テキスト) 人材派遣会社 応募者 住所 (テキストエリア) 氏名 (テキスト) 年齢 (数式) 生年月日 (日付) 性別 (選択項目) 履歴書 (添付ファイル) 進捗状況 (選択項目) 職種 (参照関係) 派遣会社名 (参照関係) 人材派遣会社 応募者 人材採用管理 (このデモでは作成済み) 開発
  12. 12. カスタム S コントロール <ul><li>ユーザインターフェースを記述する HTML コンポーネント </li></ul><ul><ul><li>HTML+JavaScript (AJAX) を利用して画面を作成 </li></ul></ul><ul><ul><li>Salesforce にタブとして追加、あるいはインライン埋め込みで表示 </li></ul></ul><ul><ul><li>ActiveX, Java Applet, Flash なども表示可能 </li></ul></ul>開発 例: Google Maps 上に 取引先データの住所位置をマッピングして表示
  13. 13. S コントロールによるカスタム画面作成 AJAX インターフェースによる インラインでのデータ作成・編集・削除 標準画面に S コントロールを埋め込み表示 入力データは関連付けされて カスタムオブジェクト内に保存 メンバー間での共有も可能 開発
  14. 14. Apex API <ul><li>Salesforce 内のデータベースへのアクセス手段 </li></ul><ul><ul><li>データベースの検索・更新・作成・削除 </li></ul></ul><ul><ul><li>レコード検索のためのクエリ言語 </li></ul></ul><ul><ul><ul><li>SOQL : Sforce Object Query Language </li></ul></ul></ul><ul><ul><li>Web サービス標準に準拠( SOAP 、 WSDL ) </li></ul></ul><ul><ul><li>SOAP が利用可能であれば言語環境は問わない </li></ul></ul><ul><ul><ul><li>Java /.NET / PHP/ Ruby on Rails… </li></ul></ul></ul>開発
  15. 15. レコード検索: SOQL <ul><li>SQL に似たクエリ記述文 </li></ul><ul><li>テーブルをまたいだ検索 (SOQL-Relationship) </li></ul>開発 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
  16. 16. 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 ログイン メソッド名 メソッド種類
  17. 17. Apex DB のレコード管理 レコードの ID (プライマリキー) パーマリンク(固定リンク) 他のオブジェクトを参照している項目は ID で登録されています。 関連リストに表示されるデータは RDB のようにレコードの ID で関連づいています。 開発
  18. 18. 参考: Apex DB 標準オブジェクト ER 図 See : Apex Web Services API Developer's Guide http:// www.salesforce.com/us/developer/docs/api/index.htm 開発 リード Lead キャンペーン Campaign 取引先責任者 Contact 取引先 Account 商談 Opportunity ケース Case
  19. 19. カスタムリンク/ボタン/ Web タブ <ul><li>カスタムリンク </li></ul><ul><ul><li>詳細ページに外部 Web サイトの URL リンクを追加 </li></ul></ul><ul><li>カスタムボタン </li></ul><ul><ul><li>詳細ページ・関連リスト・ビューに URL リンクを追加 </li></ul></ul><ul><li>Web タブ </li></ul><ul><ul><li>Salesforce のタブ内に URL を指定して外部 Web サイトの画面を表示 </li></ul></ul>開発
  20. 20. 差込み項目によるパラメータ送信 <ul><li>Salesforce 上のデータの値を差込み項目として設定し、パラメータとして送信可能 </li></ul><ul><ul><li>例) 取引先の住所情報をパラメータ送信する Google Maps へのリンク </li></ul></ul>開発 http://maps.google.co.jp/maps?q= {!Account.BillingAddress}
  21. 21. シングルサインオンの実装 <ul><li>セッション情報をパラメータで渡すことで、ログインすることなく API を呼び出すことが可能(シングルサインオン) </li></ul>開発 外部 Web サイト https://example.com/page?sid= {!API.Session_ID} セッション ID
  22. 22. レポート・ダッシュボード <ul><li>Salesforce のデータを集計し一覧表示、グラフィカルに表示 </li></ul><ul><ul><li>例) </li></ul></ul><ul><ul><ul><li>プロジェクト管理:進捗に遅れのあるプロジェクトの一覧表示 </li></ul></ul></ul><ul><ul><ul><li>経費管理:月ごとの経費の推移 </li></ul></ul></ul><ul><ul><ul><li>CTI 連携:担当者ごとの対応時間の比較 </li></ul></ul></ul>開発
  23. 23. Apex アプリケーション開発のプロセス パッケージ リリース デザイン 開発
  24. 24. パッケージングの流れ 開発したアプリケーション パッケージ化 プライベート共有 カスタムオブジェクト S コントロール カスタムリンク ダッシュボード レポート 等 カスタムアプリケーション プロファイル 等 プライベート共有 ・・・ パッケージ
  25. 25. Apex アプリケーション開発のプロセス リリース デザイン 開発 パッケージ
  26. 26. リリースの流れ サイト掲載用の資料の準備 (データシート、デモの準備) 公開リクエスト アプリケーションレビュー AppExchange サイトへの公開 リリース
  27. 27. アプリケーション管理画面 <ul><li>AppExchange サイトよりセルフサービスで情報を入力 </li></ul>「アプリケーションの作成」タブ アプリケーション管理画面 ログインした ID 作成者情報 アプリケーションの種類やバージョンごとに説明画面の編集が可能です。 リリース
  28. 28. アプリケーション公開に向けて <ul><li>公開リクエストは弊社までご連絡下さい </li></ul><ul><ul><li>連絡先: # [email_address] </li></ul></ul><ul><ul><li>連絡事項 </li></ul></ul><ul><ul><ul><li>アプリケーション ID (アップロードの詳細画面で表示される「 a033 ~」で始まる 18 桁の ID ) </li></ul></ul></ul><ul><ul><ul><li>マーケティング・開発・サポートの担当者、ご連絡先 </li></ul></ul></ul><ul><ul><li>※ アプリケーションがバージョンアップした場合にもリクエストが必要になります。バージョンアップした際は再度作成されたアプリケーション ID をご連絡下さい </li></ul></ul>リリース
  29. 29. リリースのためのレビュープロセス <ul><li>パッケージ後のレビューは以下のようなプロセスで進みます。詳しくは以下サイトをご参照下さい。 </li></ul><ul><ul><li>http:// www.salesforce.com/jp/appexchange/review_prep.jsp </li></ul></ul>機能的なレビュー テストドライブのレビュー 資料・インストールガイド レビュー <ul><li>利用料金 </li></ul><ul><li>利用規約 </li></ul><ul><li>サポート情報 </li></ul><ul><li>データシート 等 </li></ul><ul><li>サンプルデータ </li></ul><ul><li>シングルサインオン 等 </li></ul>リリース
  30. 30. AppExchange アプリケーション例
  31. 31. Realty Management 概要:不動産管理 開発元: Bluewolf Group カスタムオブジェクト によって不動産管理に使用するデータを管理(物件、購入者、販売者…) ダッシュボード に集計結果を表示 ネイティブ
  32. 32. 日報一括承認 概要:部下の作成した日報を一括で承認 開発元:株式会社ユー・エス・イー カスタムオブジェクト によって日報データを管理 S コントロール・ Web タブ によって一括承認画面を作成 ネイティブ
  33. 33. LBC targeting 概要:企業情報の取り込み 開発元:株式会社ランドスケイプ Web タブ によって Landscape の Web アプリケーション画面を表示 Landscape での検索結果を SFDC に API によって登録 連携
  34. 34. [email_address] 概要:セミナー管理 開発元:株式会社シャノン Web タブ によってシャノンの Web アプリケーション画面を表示 [email_address] から取得した申込者情報を SFDC に API により登録 [email_address] Salesforce.com 連携
  35. 35. MoobizSync 2.0 概要:モバイルによる SFDC のデータ表示 開発元: TDC ソフトウェアエンジニアリング株式会社 API によって SFDC のデータを取得・更新 Salesforce.com 携帯用アプリケーション Server 携帯とアプリケーション Server は独自の方式でデータ交換 クライアント
  36. 36. Excel データ一括検索・更新・作成 概要: Excel による SFDC とのデータ連携 開発元: Vow.com 株式会社 Salesforce.com API によって SFDC のデータを取得・更新 クライアント
  37. 37. Apex Code のご紹介
  38. 38. Apex Code Your Code Our Servers Integer NUM = 10; Account[] accs; // Clean up old data accs = [select id from account where name like 'test%']; delete accs; commit; accs = new Account[NUM]; for (Integer i = 0; i < NUM; i++) { accs[i] = new Account(name='test ' + i, outstandingshares__c=i); } insert accs; Contact[] cons = new Contact[0];
  39. 39. マルチテナント型 データベース マルチテナント型 プログラムコード 独自の スキーマ &データ 共有された クエリエンジン (Apex DB) 独自の コード& ロジック 共有された 実行環境 (Apex VM) マルチテナント型プラットフォーム
  40. 40. Apex プラットフォームでのコード実行 Apex コードコンポーネントはそれぞれ独立して作成される Apex コンポーネントは Apex 仮想マシン上でそれぞれ隔離された状態で実行され、コードの暴走が起こらないようになっている Apex コンポーネントは API バージョンに対応した特定のバージョンの Apex VM に関連づけられ、アップグレードの際も影響を受けずに運用可能となる
  41. 41. Apex Code と Web サービス API 外部サーバ or クライアント端末 SOAP WSDL WSDL WSDL SOAP Apex Code を Web サービスとして公開
  42. 42. Apex Code の例 Integer NUM = 10; Account[] accs; // Clean up old data accs = [select id from account where name like 'test%']; delete accs; commit; accs = new Account[NUM]; for (Integer i = 0; i < NUM; i++) { accs[i] = new Account(name='test '+i, outstandingshares__c=i); } insert accs; Contact[] cons = new Contact[0]; for (Account acc : accs) { cons.add( new Contact(lastName=acc.name + '1', accounted=acc.id) ); cons.add( new Contact(lastName=acc.name + '2', accounted=acc.id) ); } insert cons;
  43. 43. 世界初のオンデマンドプログラム言語のための IDE for Apex Code の編集 Apex Code のデバッグ Apex Project の管理
  44. 44. Apex コード プレビュー登録はこちら https://wiki.apexdevnet.com/apexcodepreview/register.html
  45. 45. 開発支援、お問合せ
  46. 46. 開発のための情報源 <ul><li>Apex Developer Network Japan </li></ul><ul><ul><li>http://www.salesforce.com/jp/developer/ </li></ul></ul><ul><ul><li>API ドキュメント </li></ul></ul><ul><ul><li>ツールキット、サンプルコード </li></ul></ul><ul><ul><ul><li>Java 、 .NET 、 PHP 、 Perl </li></ul></ul></ul><ul><ul><li>開発ツール </li></ul></ul><ul><ul><ul><li>Apex Toolkit for Eclipse </li></ul></ul></ul><ul><ul><ul><li>Apex Explorer </li></ul></ul></ul><ul><ul><ul><li>Apex Data Loader </li></ul></ul></ul><ul><ul><ul><li>Excel Connector </li></ul></ul></ul><ul><ul><li>ブログ </li></ul></ul>
  47. 47. 開発者アカウントの取得 <ul><li>Developer Edition - 無料の開発者アカウント </li></ul><ul><ul><li>2ユーザ、データ容量2 MB まで </li></ul></ul><ul><ul><li>その他はほぼ Enterprise Edition と同等の機能 </li></ul></ul><ul><ul><li>無料・無期限 </li></ul></ul><ul><li>Apex Developer Network から「 ADN ご登録」リンクをクリック </li></ul>
  48. 48. 開発者向け特別支援プログラム <ul><li>Salesforce コアデベロッパーセミナー </li></ul><ul><ul><li>Apex プラットフォーム開発の技術コアセミナー </li></ul></ul><ul><ul><ul><li>S コントロールによる開発、 Apex Code 、 Apex API の新機能など </li></ul></ul></ul><ul><ul><li>不定期開催 </li></ul></ul><ul><ul><li>Apex Developer Network 登録者に対して配信 </li></ul></ul><ul><li>Salesforce 認定プラットフォームデベロッパー </li></ul><ul><ul><li>Apex プラットフォーム開発のスキルを第三者にアピール </li></ul></ul><ul><ul><li>詳細条件については未定 </li></ul></ul><ul><ul><li>興味のある方はお問い合わせください </li></ul></ul><ul><ul><ul><li># [email_address] </li></ul></ul></ul>
  49. 49. <ul><li>Apex API スタートアップトレーニング(半日、 3 名まで、 18 万円 /1 回) </li></ul><ul><ul><li>概要説明、 WSDL を使用したサンプルプログラムのご説明 </li></ul></ul><ul><li>Apex API サポート( 12 万円 / 月) </li></ul><ul><ul><li>電話、電子メール及び Web による技術問合せへの対応 </li></ul></ul><ul><ul><li>サポート時間:月曜~金曜日(祝祭日除く) 10:00 ~ 17:00 </li></ul></ul><ul><ul><li>上記スタートアップトレーニングの受講が前提となります </li></ul></ul><ul><li>Apex API ドキュメント(英語) </li></ul><ul><ul><li>http:// www.salesforce.com/jp/developer/docs.jsp </li></ul></ul><ul><li>Apex API サンプルプログラム </li></ul><ul><ul><li>http:// www.salesforce.com/jp/developer/projects_toolkits.jsp </li></ul></ul><ul><li>Developer Edition (開発用テスト環境) </li></ul><ul><ul><li>http:// www.salesforce.com/jp/developer/orderEntry/signup.jsp </li></ul></ul><ul><ul><li>Developer Edition は 2 ユーザ・ 2MB 容量の制限がありますが、 その他は Enterprise Edition と同等の機能を無料・無期限でご使用頂けます </li></ul></ul>アプリケーション開発支援について

×