データのインポート
出典: SugarForum.jp
注意: 2008年5月公開予定のSugarCE 5.1.0では、Importモジュールが大幅に書き換えられました。下記の方法は動作しない可能性があります。詳細は調査中。
独自モジュールにデータのインポート機能を追加するには、Importモジュールに手を加える必要があります。現在、アップグレードセーフな方法は提供されていません。
こちらの記事も参考になります。
http://developers.sugarcrm.com/wordpress/2008/06/11/enabling-import-on-a-custom-module-in-sugar-50/
目次 |
インポート用クラスの作成
Importモジュールディレクトリ内に、下記のファイルを作成します。
SugarRoot/modules/Import/Import@モジュールのクラス名.php
クラス名は「Import<モジュールのクラス名>」とし、モジュールのBeanクラスを拡張します。
class ImportYourBean extends YourBean {
//
var $special_functions =array(
//ここにインポート用の関数の名前を並べる
);
//...省略。その他の設定項目、インポート用の関数宣言など。
}
詳しくは、既存モジュール用のクラスファイルを見てください。
設定ファイルへの追加
SugarRoot/modules/Import/config.php
を開き、下記の太字部分を追加。
$import_bean_map = array( 'Contacts' => 'ImportContact' ,'Accounts' => 'ImportAccount' ,'Opportunities' => 'ImportOpportunity' ,'Leads' => 'ImportLead' ,'Notes' => 'ImportNote' ,'Prospects' => 'ImportProspect' ,'YourModule' => 'ImportYourBean'//あなたのカスタムモジュール用 ); //...省略
アクションの追加
カスタムモジュールに、Importアクションを登録します。モジュールのディレクトリに、Import.phpを作成し、
include('modules/Import/index.php');
として、Importモジュールを呼び出すようにします。
メニューの追加
カスタムモジュール内の、Menu.phpを編集して、インポート用のメニューを追加します。
if(ACLController::checkAccess('YourModule', 'import', true))
$module_menu[] = Array("index.php?module=YourModule&action=Import&step=1&return_module=YourModule&return_action=index",
$app_strings['LBL_IMPORT'],
"Import",
'YourModule');