Announcement

Collapse
No announcement yet.

Custom Job

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Custom Job

    Всем доброго времени суток.
    Пытаюсь разобрать с созданием заданий планировщика и работой с ORM.
    Опираюсь на офф мануал https://docs.espocrm.com/development/scheduled-job/.
    \custom\Espo\Custom\Jobs\TenantToServices.php
    PHP Code:
    <?php
    namespace Espo\Custom\Jobs;
    use 
    Espo\ORM\Entity;
    use 
    Espo\Core\ORM\Entity;
    class 
    TenantToServices extends \Espo\Core\Jobs\Base
    {
      public function 
    run()
      {
        
    $accountId "600866191e917ba8f";
        
    $account $entityManager->getRepository('Account')->get($accountId);
        
    file_put_contents('data.txt'json_encode($account));
      }
    }
    file_put_contents - для контроля работы

    custom\Espo\Custom\Resources\i18n\en_US\ScheduledJ ob.json
    PHP Code:
    {
        
    "options": {
            
    "job": {
                
    "TenantToServices""My Job"
            
    }
        }

    Но после перестройки ПО или просто даже после очистки кэша - ничего не появляется.
    Я что-то делаю не так?

  • #2
    Здравствуйте,
    Ели вы все сделали правильно то ваша новое задание должно было появится в списке заданий (Администрирование -> Планировщик Заданий -> кнопка Создать Задание -> выбрать вашу новую задачу из спика в поле "Задание").

    Comment


    • #3
      Waouw... Maximus .. i have nothing understand but i can respond :

      PHP Code:
      $accountId "600866191e917ba8f";
      $entityManager $this->getEntityManager();   // you need this line ...
      $account $entityManager->getRepository('Account')->get($accountId);
      file_put_contents('data.txt'json_encode($account)); 

      Comment


      • #4
        Спасибо, Maximus Честно говоря, не нашел бы ))))
        Остался один вопрос:
        Как правильно пользоваться логгером? какой класс нужно подключить и какими методами нужно воспользоваться, чтобы писало в общий лог с возможностью классификации "ERROR, WARNING, INFO, DEBUG"?

        Comment


        • #5
          Попробуйте в код вставить чтото типа:
          для уровня логирования warning - $GLOBALS['log']->warning($e->getMessage());
          для уровня логирования error - $GLOBALS['log']->error($e->getMessage());
          Для остальных уровней (info, notice, debug) просто подставляете нужное значение в код.

          Заметьте что пример вырезан и кода, исходя из чего часть "$e->getMessage()" у вас может не работать. Вместо этого вы также можете выводить обычный текст.

          Comment


          • VikinGDM
            VikinGDM commented
            Editing a comment
            Заработало когда добавил
            PHP Code:
             use Espo\Core\Exceptions\Error
        Working...
        X