2016-04-22 25 views
1

我想通过cron运行我的数据流导入配置文件,而无需在Cron.php或crontab文件中进行操作。当我手动启动时,我的个人资料正在工作。 此适配器从csv文件导入有关产品的数据。 我试图运行此配置文件:cron自动激活数据流配置文件

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

但我有cron的动作后没有效果。运行方法无法正常工作。 文件位于正确的位置。配置文件的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(); 

     }