...

Получение истории изменения статусов экземпляра приложения

Тема в разделе "Примеры сценариев", создана пользователем sobolev, 10 фев 2022.

  1. sobolev

    sobolev Техническая поддержка

    Код:
    
    const changes await Context.fields.novoe_prilozh.app.statusHistory().all();
    //Загружаем все статусы приложения
    const AllStatus Application.fields.__status.all;
    //Перебираем всю историю
    for (let item of changes)
    {
        
    let NameItem await (await Application.search().where(i=>i.__id.like(item.data.item!.id)).first())!.data.__name
    //Указываем исключение если объект был изначально undefined (то есть создан)
    if (item.data.source==undefined)
        {
        
    Context.data.str Context.data.str '[ Объект ' NameItem +'] был создан ' item.data.__createdAt.format()+' \n';
        }
        else
        {
    //Иначе выводим информацию записи истории
        
    Context.data.str Context.data.str '[ Объект ' NameItem +'] сменил статус [с ' +  AllStatus[item.data.source!-1].name +' на ' +  AllStatus[item.data.target!-1].name '] ' item.data.__createdAt.format()+' \n';
        }
    }
    где
    str - контекстная переменная “Строка” типа “текст”
    novoe_prilozh - код приложения



    Пример выполнения такого кода

    [​IMG]
  2. vyacheslav.gubarev

    vyacheslav.gubarev Новичок

    Спасибо, интересное решение.
    Подскажите, почему в начале всегда пишется undefined upload_2022-8-1_13-4-16.png
  3. ava_var

    ava_var Активный участник

    Вы используете Context.data.str для логирования.
    В момент первого вызова
    Код:
    
    Context.data.str  Context.data.str "..."
    переменная str еще не определена и она равна undefined
    Поэтому получается по сути
    Код:
    
    Context.data.str undefined "..."
    Если в самом начале прописать
    Код:
    
    Context.data.str "";
    
    
    , то проблема уйдет