皆さんこんにちは。
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のファンページ


