2016-04-22 13 views
1

Cron.phpまたはcrontabファイルを操作せずに、データフローインポートプロファイルをcronで実行したいとします。手動で起動すると、私のプロフィールが動作しています。 このアダプターは、製品に関するデータをcsvファイルからインポートします。 私がすることで、このプロファイルを実行しようとしている:cronによる自動アクティベーションデータフロープロファイル

$profile->load($profileId); 
$profile->run(); 

しかし、私はcronのアクションの後に何の効果もありません。 Runメソッドが正しく動作しません。 ファイルが正しい場所にあります。プロファイルのIDが正しく、プロファイルがロードされました。

答えて

0

回答が見つかりました。インポートプロファイルを実行する場合は、$profile->run();の後にこのコードを使用する必要があります。

 $batchModel = Mage::getSingleton('dataflow/batch'); 
     $batchImportModel = $batchModel->getBatchImportModel(); 
     $adapter = $batchModel->getAdapter(); 
     $importIds = $batchImportModel->getIdCollection(); 

     foreach ($importIds as $importId) { 
      $batchImportModel->load($importId); 
      try { 
       $importData = $batchImportModel->getBatchData(); 
       Mage::getModel($adapter)->saveRow($importData); 
      } catch (Exception $e) { 
       Mage::log("Exception : " . $e); 
       continue; 
      } 
     } 

     if (method_exists($adapter, 'getEventPrefix')) { 

      // Event to process rules relationships after import 
      Mage::dispatchEvent($adapter->getEventPrefix() . '_finish_before', array(
       'adapter' => $adapter 
      )); 

      // Clear affected ids for possible reuse 
      $adapter->clearAffectedEntityIds(); 

     } 
関連する問題