セールスフォースお助け隊ブログ | Salesforce
セールスフォース開発者のブログRSS
PHPToolKitからSalesforceのドキュメントにファイルアップロードする方法

PHPToolKitからSalesforceのドキュメントにファイルアップロードする方法

2011年9月24日 07:30

皆さんこんにちは。
Salesforceお助け隊の西槇です。

今回は、PHPToolKitを利用して、Salesforceのドキュメントにファイルをアップロードする方法を
ご紹介いたします。
PHPToolKitを利用したことがある方であれば、ソースコードを見れば、
「あーそういうことか」と納得されると思います。

PHPToolKitからSalesforceAPIへのアクセス方法は既にご存知だと思いますので省きます。

■■■ 準備編 ■■■
◇ドキュメントに新規フォルダを作成します。
ドキュメントタブを開き、新規フォルダの作成を開きます。
フォルダを作成する際、公開フォルダのアクセス権を「参照・更新」にせず、
デフォルトの参照の状態で作成してしまうと、ファイルアップロードができませんので気を付けてください。

■■■ コーディング編(PHPのソースコードです) ■■■
◇ドキュメント保存先のフォルダのIdを取得する。
ファイルをアップロードする先のドキュメントのフォルダを検索し、フォルダのIdを取得します。
既にフォルダのIdがわかっている、もしくは固定であれば、上記処理は省けます。
そのほうが、API実行回数を無駄に消費せず済みます。

// Folderというオブジェクトからフォルダ名を指定して検索します。
$res = $mySforceConnection->query('SELECT Id FROM Folder WHERE Name = \''.'DocTest'.'\'');
$folderid = $res->records[0]->Id;

◇アップロード対象ファイルパスをセットし、SalesforceAPIと通信を行います。
// アップロードするファイルのフルパスをセット
$filepath = '/var/www/html/document/test-doc.pdf';

$objs = array();
$fields = array('Body' => base64_encode(file_get_contents($filepath)),
           'Description' => 'テストドキュメント - test-doc.pdf',
           'FolderId' => $folderid,
           'IsPublic' => true,
           'Name' => 'test-doc.pdf'
           );

$sObject = new SObject();
$sObject->fields = $fields;
$sObject->type = 'Document';
array_push($objs, $sObject);

// SalesforceへSOAP通信する
$res = $mySforceConnection->create($objs);

// レスポンスを画面に表示
print_r($res);

■■■ アップロード完了後のSalesforceのドキュメント詳細画面 ■■■


◇その他設定可能なオプション
 ・IsBodySearchable・・・ドキュメントコンテンツ検索可能(デフォルト値:true)
 ・IsInternalUseOnly・・・社外秘フラグ(デフォルト値:false)。
  社外秘フラグをfalseで使用すると、アップロードしたファイルは外部公開されますので、外部に公開しないファイルは必ず社外秘フラグをtrueにしてください。
 ・KeyWords・・・キーワード

「セールスフォースお助け隊ブログ」へのコメントやご意見等ありましたら
ファンページまでお願いします。  Facebookのファンページ

Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ

← 前のエントリー     次のエントリー →

顧客管理システム Salesforce CRM