カテゴリ「ポータル」の記事

2014年11月17日 (月)

コミュニティの Salesforce1 サポート

こころです。

Spring '14 以降で

・カスタマーコミュニティライセンス
・パートナーコミュニティライセンス
・その他のサポートされるポータル

で、Salesforce1(iOSで確認)アプリケーションが使用できるようになっていました。
時代はもうWinter'15だというのに古いネタ....

<前提>

・公開済のコミュニティがあること(パートナーコミュニティを使いました)
・コミュニティユーザーのプロファイルで、「Salesforce1 for iOS」「APIの有効化」がオンになっていること。(コミュニティ関係のプロファイルではデフォルトで両方オフになっています。)

①接続先へコミュニティドメインの追加(と削除)

Img_5447_2

右上の歯車アイコンをタップして

Image6

コミュニティのURLと、接続先の名前を登録します。
コミュニティのURLは


https://XXXXX-developer-edition.ap0.force.com/login

の、赤字の部分を登録します。

Image7 こんな感じに新しい接続先"Community"が出来ます。

ちなみに接続先の削除は

Image3

右から左にスワイプすると削除できます。(編集ができないみたいですので、ミスしたら削除して再追加。)

②ログイン

Image1
S1でもコミュニティのデザインが適用されます。

Image4

ログイン前にエラーが出たら

Image2

コミュニティユーザーのプロファイルで、「Salesforce1 for iOS」「APIの有効化」のチェックを見なおしてみてください。

なんてことないのですが、図説されてる資料が見つからなかったので設定方法の備忘としてご参考まで。

2014年4月23日 (水)

Spring'14 共有セット

エンジニアのこころです。

Spring'14の新機能の中で、カスタマーポータル、ポータルコミュニティユーザのレコードアクセス制御の新機能「共有セット」をコミュニティで試してみました。

これまでは取引先に属するコミュニティユーザに関連レコードを共有したい場合、共有したいレコードの所有者をコミュニティユーザに変更したりと一手間ありましたが、「共有セット」を使用して、取引先、取引先責任者、ケース、サービス契約、ユーザ、カスタムオブジェクトへのアクセス権(参照のみ|参照・更新)を付与できます。

さっそく取引先と参照関係にある「対応履歴」というカスタムオブジェクトを共有セットを使って共有してみます。※対応履歴の共有設定は予め「非公開」となっています。

○コミュニティの設定

1.[設定]→[コミュニティ]→[設定]より、共有セットの新規ボタンで新規共有セットを作成します。

Photo

2.選択可能なプロファイルは、コミュニティユーザの所属するプロファイル(ここではCommunity)を選択します。

Photo_2

3.アクセスマッピング でユーザ「Account」ターゲット対応履歴「Account__c」※Account__cは対応履歴から取引先への参照関係 を選択します。

Photo_3

マッピングの起点として選択できるのは、取引先、親取引先、取引先責任者、取引先責任者の取引先、上司、コミュニティユーザのマネージャの取引先、コミュニティユーザのマネージャの取引責任者です。

○コミュニティ側の確認

以上の設定をコミュニティ側から確認します。

コミュニティユーザが関連する取引先の対応履歴のみが表示され、共有セットが効いているのがわかります。

Photo_4

このように、特定の取引先や取引先責任者を起点としたレコードをカスタマーポータル、ポータルコミュニティユーザと共有するのが共有セットによって非常に簡単になりました。

是非使ってみてください。

2011年7月20日 (水)

ポータルのログイン画面のデザインを変更するには?

パートナーポータル/カスタマーポータルのログイン画面は、↓のようにとてもシンプルな表示となっています。

20110720_1

そのままだとちょっと寂しいので、ポータルを導入するお客様からは、ログイン画面のデザインをカスタマイズしたいという要望が多く聞かれます。

ポータルの標準設定では、ログイン画面に画像を表示することぐらいしかできないのですが、
ポータルとForce.com Sitesを関連付けることで、Force.com Sitesに配置したログイン画面からポータルにログインすることが可能になります
以下では、その手順を紹介します。

○ポータルとForce.com Sitesの関連付けの手順

・「設定」→「アプリケーションの設定」→「開発」→「サイト」で、新規にサイトを作成し、有効化します。作成の際、「有効なサイトのホームページ」を「SiteLogin」に設定します。

20110720_2

・作成したサイトの詳細画面で、「ログイン設定」を押下し、「ログイン有効化対象」で、サイトからログインするポータルを選択します。

20110720_3

・「SiteLogin」ページのコントローラである「SiteLoginController」のloginメソッドを、以下のように修正し、サイトのログイン成功時に、ポータルのホーム画面に遷移するようにします(/home/home.jsp がポータルのホーム画面のURLです)。

global PageReference login() {
  return Site.login(username, password, '/home/home.jsp');
}

これで、作成したサイトの「デフォルトWebアドレス」にアクセスすると、「SiteLogin」ページが表示され、「SiteLogin」ページから、ポータルにログインできるようになります。

デフォルトの「SiteLogin」ページは↓のようなデザインになっていますので、あとは「SiteLogin」ページを編集して、デザインを変更して使用します。

20110720_4

2011年3月30日 (水)

パートナーポータル有効後のロールの指定方法

共有ルールや公開グループなどの作成時にロールを指定することができますが、パートナーポータルを有効化すると、選択できるロールのカテゴリが変化します

有効化前

・ロール
・ロール & 下位ロール

有効化後

・ポータルロール
・ポータルロール & 下位ロール
・ロール
・ロール & 内部下位ロール
・ロール、内部 & ポータル下位ロール

「ポータルロール」「ポータルロール & 下位ロール」はパートナーポータルのロールを、
「ロール」「ロール & 内部下位ロール」「ロール、内部 & ポータル下位ロール」は通常のロールを指定します。

「ロール & 内部下位ロール」と「ロール、内部 & ポータル下位ロール」が混同しやすいですが、前者はポータルロールを含まず、後者は含むという違いがあります。

例えば、以下のようなロール階層を設定しており、XYZ株式会社の取引先の所有者のロールが「パートナー管理部」である場合、

通常のロール階層

ABC株式会社
┗ CEO
  ┗ パートナー管理部

パートナーポータルのロール階層

XYZ株式会社 パートナー エクゼクティブ
┗ XYZ株式会社 パートナー マネージャ
  ┗ XYZ株式会社 パートナー ユーザ

「ロール & 内部下位ロール : CEO」は、「CEO」「パートナー管理部」が対象となります。

「ロール、内部 & ポータル下位ロール : CEO」は、「CEO」「パートナー管理部」「XYZ株式会社 パートナー エクゼクティブ」「XYZ株式会社 パートナー マネージャ」「XYZ株式会社 パートナー ユーザ」が対象となります。

2011年3月28日 (月)

パートナーポータルのロール階層

パートナーポータルでもロールを利用することが可能ですが、通常のロールとは仕様が異なります。

パートナーポータルでは、取引先毎に
・「<取引先名> パートナー エクゼクティブ」
・「<取引先名> パートナー マネージャ」
・「<取引先名> パートナー ユーザ」

3種類のロールが自動的に作成されます

この3種類のロールは下記のロール階層で定義されており、このロール階層を変更することはできません(ロールの追加/削除はもちろん、名称変更もできません)

少し不便ではありますが、このロール階層にパートナー内で表現したい階層構造を当て込んで、設計する必要があります。

チャネルマネージャ(パートナー取引先の所有者)のロール
┗ <取引先名> パートナー エクゼクティブ
┗ <取引先名> パートナー マネージャ
  ┗ <取引先名> パートナー ユーザ

「<取引先名> パートナー エクゼクティブ」の上位ロールが、チャネルマネージャ(パートナー取引先の所有者)のロールであるため、チャネルマネージャは配下のパートナーのユーザが所有するレコードにアクセスすることができます

チャネルマネージャが属するロールがバラバラだと、アクセス権限の管理が煩雑になるので、可能であれば、チャネルマネージャが属するロールは統一し、シンプルなロール階層とすることをお勧めします。

2010年6月 4日 (金)

カスタマーポータルユーザの無効化

前回、カスタマーポータルユーザの作成方法を説明したので、今日は無効化の方法をご紹介。

画面上で無効化する方法

画面上で無効化する方法は

  1. カスタマーポータル取引先の無効化
  2. カスタマーポータルユーザの無効化
  3. ユーザの無効化

の3つの方法があります。

それぞれの手順と特徴は以下の通り。

1. カスタマーポータル取引先の無効化

<手順>
取引先詳細画面の 「ポータルの使用」⇒「カスタマーポータル取引先の無効化」を選択

<特徴>

  • 取引先配下の全てのカスタマーポータルユーザが無効化される
  • 再度、「ポータルの使用」→「カスタマーポータルの有効化」から有効化すると、別のユーザが新たに作成される(無効化前のデータを引き継ぐことはできないので注意!
  • 無効化されたカスタマーポータルユーザは「無効ユーザ」となり、ユーザ名の先頭にアンダーバーが付与される

2. カスタマーポータルユーザの無効化

<手順>
取引先責任者詳細画面の 「ポータルの使用」⇒「カスタマーポータルユーザの無効化」を選択

<特徴>

  • 選択したカスタマーポータルユーザのみが無効化される
  • それ以外の特徴は「カスタマーポータル取引先の無効化」と同様

3. ユーザの無効化

<手順>
ユーザ設定画面で、「有効」のチェックを外して保存

<特徴>

  • ユーザを再び有効にすることにより無効化前の状態に戻る

Web Service APIから無効化する方法

APIから無効化する方法は

  1. カスタマーポータル取引先の無効化
  2. ユーザの無効化

の2つの方法があります。

それぞれの手順は以下の通り(特徴は画面上での方法と同じ)。

1. カスタマーポータル取引先の無効化

<手順>
無効化対象の取引先(Account) のIsCustomerPortalをFalseに設定する

PHPで書くと、ソースコードはこんな感じ↓

try {
	$account = new SObject();
	$account->Id = $accountId;	// IDを指定
	$account->fields = array(
		'IsCustomerPortal' => false, 
	);
	$account->type = 'Account';
	$result = $client->update(array($account), 'Account');
} catch(Exception $e) {
	echo $e->faultstring;
}

2. ユーザの無効化

<手順>
無効化対象のユーザ(User) のIsActiveをFalseに設定する

2010年6月 1日 (火)

カスタマーポータルユーザの作成方法

今日はカスタマーポータルユーザの作成方法をご紹介。

画面上で作成する方法

画面上でカスタマーポータルユーザを作成するには、以下の手順を踏みます。

1. 「セルフサービスユーザの編集」の権限を持つユーザでログイン

2. カスタマーポータルユーザにしたい取引先責任者の詳細画面を開く

3. 「ポータルの使用」→「カスタマーポータルの有効化」を押下

20100601_1

4. ユーザの編集画面でユーザ情報を入力して、「保存」を押下

3.では、取引先責任者に対応する取引先の所有者にロールが設定されていないと、エラーとなってしまうので、注意してください。

20100601_2

Web Service APIで作成する方法

Web Service APIでカスタマーポータルユーザを作成するには、
ログイン後、下記の項目を設定して、Userオブジェクトを作成します。

・ContactId : カスタマーポータルユーザにしたい取引先責任者のID
・ProfileId : 「Custmer Portal Manager」のプロファイルのID

UserTypeを指定して作成するのではなく、
ProfileIdにカスタマーポータルユーザに割り当てるプロファイルを指定して作成するところがポイント。
「Custmer Portal Manager」の代わりに「High Volume Portal」を割り当てることもできます。

PHPで書くと、ソースコードはこんな感じ↓

try {
	$user = new SObject();
	$user->fields = array(
		'LastName' => '山田', 
		'FirstName' => '太郎', 
		'Alias' => '山田', 
		'Username' => 'y-taro@test.co.jp', 
		'EmailEncodingKey' => 'ISO-2022-JP', 
		'Email' => 'y-taro@test.co.jp', 
		'ContactId' => '003A0000008F9Xy', 
		'ProfileId' => '00eA0000000rBJN', 
		'TimeZoneSidKey' => 'Asia/Tokyo', 
		'LanguageLocaleKey' => 'ja', 
		'LocaleSidKey' => 'ja_JP'
	);
	$user->type = 'User';
	$result = $client->create(array($user), 'User');
} catch(Exception $e) {
	echo $e->faultstring;
}

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上
でのWebアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

  • 株式会社フレクトは、
      ・認定コンサルタント
      ・認定上級デベロッパー
      ・認定デベロッパー
    が在籍している、セールスフォースパートナーです。
    また、heroku partnersにも登録されています。
    herokuパートナー
    株式会社フレクト
    Salesforce/Force.com
    導入支援サービス
    弊社の認定プロフェッショナルが支援致します。
    ・Visualforce/Apexによるアプリ開発
    ・Salesforceと連携するWebアプリ開発
    も承っております。
    セールスフォースご検討の際は、
    お気軽にお問合せください。

Twitter

リファレンス

■Developer's Guide(リファレンス)
・Apex  HTML | PDF | 日本語PDF | ガバナ制限
・Visualforce  HTML | PDF
・Web Services API  HTML | PDF | 日本語PDF
・Bulk API  HTML | PDF
・REST API  HTML | PDF | 日本語PDF
・Metadata API  HTML | PDF
・Migration Tool  HTML | PDF
・AJAX Toolkit  HTML | PDF
・Data Loader PDF | 日本語PDF

■早見表 (日本語)
数式
Apex
Visualforce
Web Services API
Chatter