Custom Job

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • VikinGDM
    Member
    • Feb 2019
    • 92

    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"
            }
        }
    } 
    
    Но после перестройки ПО или просто даже после очистки кэша - ничего не появляется.
    Я что-то делаю не так?
  • Maximus
    Senior Member
    • Nov 2018
    • 2731

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

    Comment

    • item
      Active Community Member
      • Mar 2017
      • 1489

      #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)); 
      
      If you could give the project a star on GitHub. EspoCrm believe our work truly deserves more recognition. Thanks.​

      Comment

      • VikinGDM
        Member
        • Feb 2019
        • 92

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

        Comment

        • Maximus
          Senior Member
          • Nov 2018
          • 2731

          #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...