Flexを使ったApexアプリケーション開発(1)

by Shinichi Tomita on 6月 26, 2007 at 10:46 午前

インターネットのアプリケーション開発環境について興味のある方の中には、Adobe社が提供しているFlashベースのRIA(Rich Internet Application)フレームワークである「Flex」についてお聞きになったことがあるかもしれません。

現在Salesforceでは、「Flex Toolkit for Force.com」として、Flexアプリケーションの中からSalesforceのデータにアクセスするためのライブラリを提供しています。このActionScriptでできたライブラリは、HTMLページからAJAX Toolkitを使用する場合と同様に、簡単にApex APIにアクセスすることができます。

必要条件

Flex BuilderはAdobe社が提供しているFlexアプリケーション作成のためのIDEです。ソースコードの記述からドラッグドロップによるコンポーネント配置などの機能が利用できます。Flex Builderの替わりにコマンドラインでのFlex 2 SDKを使用することもできます。

セットアップ

ここでは無料のFlex 2 SDKを利用して、Salesforceに埋め込んだFlexアプリケーションを作成する方法について説明します。

  1. ダウンロードしたFlex2 SDKを解凍し、適当なフォルダにコピーしておきます。
    例)
    C:\Program Files\Adobe\flex_sdk_2
  2. 環境変数のパスにFlex SDKの実行ファイルが含まれるように設定します。
    Windowsの場合は「コントロールパネル>システム>詳細設定>環境変数」からシステム環境変数 "Path" に
    c:\Program Files\Adobe\flex_sdk_2\bin
    を追加します。既存のパスの後ろにセミコロン(;)で区切って追加してください。

    パスを設定したら、コマンドプロンプトから以下のコマンドを実行して、実際にパスが通っているか確かめます

    c:\> mxmlc --version
    Version 2.0.1 build 155542
  3. ダウンロードした Apex Flex ライブラリを解凍し、適切なフォルダにインストールします
    例)
    C:\Program Files\salesforce.com\FlexSalesforce_R3_6

    解凍したフォルダの中のbinフォルダに、ビルド済みのas3Salesforce.swcというライブラリがあります。これがFlexアプリケーションからSalesforceに接続するためのライブラリの本体です。

Salesforce連携FlexのHello Worldのサンプル

エディタを使用して、以下のXMLファイルを記述して保存します(SalesforceHello.mxml)。これはFlexアプリでSalesforceのログインユーザ名を表示するだけの単純なサンプルアプリケーションを定義しています。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
              xmlns:salesforce="com.salesforce.*"
              layout="absolute"
              applicationComplete="login()" >
  <mx:Script>
    <![CDATA[
import com.salesforce.*;
import com.salesforce.events.*;
import com.salesforce.objects.*;
import com.salesforce.results.*;

private function login():void {
  var lr:LoginRequest = new LoginRequest({
    server_url : Application.application.parameters.server_url,
    session_id : Application.application.parameters.session_id,
    // username : 'admin@demo.com', // <-- put your username here when connecting from local app
    // password : 'mypassword1234', // <-- put your password here when connection from local app
    callback : new AsyncResponder(sayHello)
  });
  conn.login(lr);
}

private function sayHello(result:Object):void {
  conn.getUserInfo(new AsyncResponder(function(userInfo:Object):void {
    message.text = "こんにちは、" + userInfo.userFullName;
  }));
}
    ]]>
  </mx:Script>

  <salesforce:Connection id="conn" />

  <mx:Label id="message" x="10" y="10" fontSize="32" color="#FFFFFF" text=""/>
</mx:Application>

記述したXMLファイルは、以下のコマンドでSWFファイル形式にコンパイルできます。

> mxmlc -use-network=true -library-path+="C:\Program Files\salesforce.com\FlexSalesforce_R3_6\bin" 
SalesforceHello.mxml (一行で続けて入力します)

library-pathオプションには、as3Salesforce.swcファイルが保存されているディレクトリ名を指定してください。

SalesforceにFlexアプリケーションをアップロード

作成したFlexアプリケーションをアップロードするには、まずSalesforceに管理者としてログインし、「設定>アプリケーションの設定>開発>カスタムSコントロール」から新規にSコントロールを作成します。

Flex Toolkit for Force.com を解凍したフォルダの中に、flexScontrolContent.htmというHTMLファイルがありますので、この中身のHTMLをそのままSコントロールの作成画面の内容として登録します。ファイルの参照ボックスで、コンパイルして作成されたSWFファイルを指定します。

Sコントロールを保存したら、Sコントロールを表示するためのタブを作成します。「設定>アプリケーションの設定>開発>カスタムタブ」からWebタブを新規作成し、Sコントロールとして先ほど作成したSコントロールを選択します。タブの作成が完了すると、右端に作成したタブが表示されますので、クリックするとログインしているユーザの名前がFlexの画面上が表示されます。

ここまででFlex Toolkit for Force.comを利用したFlexのアプリケーションを作成し、Salesforce上で動作させる方法について学びました。次回はFlexのコンポーネントを使ってSalesforceから取得したデータを表示するアプリケーションを作成してみます。

トラックバック

このページのトラックバックURL: http://www.typepad.jp/t/trackback/7240/7027612

このページへのトラックバック一覧 Flexを使ったApexアプリケーション開発(1):

コメント

Posted by itoshima on 5月 15, 2008 12:32 午後:

****以下、本文より引用****
> mxmlc -use-network=true -library-path+="C:\Program Files\salesforce.com\FlexSalesforce_R3_6\bin" SalesforceHello
****引用ここまで****

コマンドの表示が途中で切れてしまっています。
とりあえずソースの表示でわかりましたが、お知らせいたします。

使用ブラウザ:IE6

以上

Posted by mokamoto on 5月 19, 2008 02:25 午前:

itoshima様
ご指摘の箇所を修正致しました。
ありがとうございます。

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。