Импорт данных из ТС в файл txt

Обсуждаем TrackStudio по-русски

Импорт данных из ТС в файл txt

Postby Alexander70 » Wed Aug 23, 2017 12:05 pm

Доброго времени суток! Есть скрипт который должен пройтись по всем дефектам в цикле тестирования и "выдернуть" информацию, после занести ее в .txt файл и прикрепить этот файл к циклу.
Сразу говорю скрипт не мой, часть переделал под себя, но он все равно не работает :(
Подскажите что не так(

скрипт подключил, при нажатии на кнопку "Сформировать" появляется ошибка:
Code: Select all
com.trackstudio.exception.CantFindObjectException: Cannot find object class com.trackstudio.model.Report with ID 297ea5585e0822dc015e086a7f0d0147 .


код скрипта
Code: Select all
import java.lang.Object;
import java.lang.Character;
import java.lang.Exception;
import java.lang.Comparable;
import com.trackstudio.startup.Config;
import com.trackstudio.app.csv.CSVImport;
import java.sql.*;
import com.trackstudio.app.filter.TaskFValue;
import java.sql.Time;
import com.trackstudio.kernel.cache.Action;
import java.lang.Number;
import com.trackstudio.view.*;
import com.trackstudio.kernel.manager.AttachmentArray;
import com.trackstudio.kernel.manager.SafeString;
import java.lang.Byte;
import com.trackstudio.exception.*;
import java.lang.Float;
import java.lang.Boolean;
import com.trackstudio.securedkernel.*;
import com.trackstudio.app.adapter.AdapterManager;
import java.lang.String;
import java.lang.Short;
import java.lang.Class;
import com.trackstudio.tools.textfilter.HTMLEncoder;
import java.sql.Date;
import com.trackstudio.app.session.SessionContext;
import com.trackstudio.app.session.SessionManager;
import java.lang.Long;
import java.sql.Connection;
import java.sql.Timestamp;
import java.lang.StrictMath;
import com.trackstudio.tools.formatter.DateFormatter;
import java.lang.Double;
import com.trackstudio.tools.*;
import java.util.*;
import java.lang.Integer;
import java.lang.StringBuffer;
import java.text.*;
import java.lang.Math;
import com.trackstudio.secured.*;
import com.trackstudio.model.Report;


String reportId = "297ea5585e0822dc015e086a7f0d0147", //отчет по протоколу в задаче #140

        taskId = message.getTaskId(),
                format = "CSV",
                delimiter = ";",
                encoding = "windows-1251",
                userId = CSVImport.findUserIdByLogin("root"),
                number = "140";      //задача для сохранения ссылок
        boolean pageBreak = false,
                diagram = false;
        javax.servlet.http.HttpServletRequest request = null;

//генерируем отчет типа CSV
        SecuredReportAdapterManager reportAM =
        AdapterManager.getInstance().getSecuredReportAdapterManager();
        TaskFValue fv = reportAM.getFValue(sc, reportId);
//отчет формируется по всему проекту (родительская задача для текущего цикла)
        byte[] bytes = new byte[0];
        try {
            bytes = reportAM.generateReport(sc, reportId, message.getTask().getParentId(), pageBreak, format, delimiter, diagram, encoding, fv, request);
        } catch (Exception e) {
            e.printStackTrace();
        }

        String name = "Отчет_проект_" + message.getTask().getParent().getNumber();

        List atts = new ArrayList();
        atts.add(new AttachmentArray(
                SafeString.createSafeString(name + ".txt"),
                SafeString.createSafeString(name),
                new ByteArrayInputStream(bytes)
        ));
//прикрепляем файл как аттач к текущему циклу
        AdapterManager.getInstance().getSecuredAttachmentAdapterManager().createAttachment(
                        sc,
                        taskId,
                        null,
                        userId,
                        atts);
        String fileId = atts.get(0).getInitialID();

//скрипт преобразования Calendar в строку вида дд.мм.гггг чч:мм
        java.util.Date submitDateIn = message.getTime().getTime();
        int day = submitDateIn.getDate(),
                mnth = submitDateIn.getMonth()+1,
                year = submitDateIn.getYear()+1900,
                hour = submitDateIn.getHours(),
                minute = submitDateIn.getMinutes(),
                secs = submitDateIn.getSeconds();
        String date = year + "." + (mnth<10?"0":"") + mnth + "." +
                (day<10?"0":"") + day + " " + (hour<10?"0":"") + hour + ":" +
                (minute<10?"0":"")+  minute + ":"  + (secs<10?"0":"") + secs;

//добавляем в описание корневой задачи ссылку на файл
        SecuredTaskAdapterManager taskAM = AdapterManager.getInstance().getSecuredTaskAdapterManager();
        SecuredTaskBean project = taskAM.findTaskByNumber(sc, number) ;

        String dscr = project.getDescription() + "<br>" + date + ": <a href=http://support.elesy.ru/download/task/" + tasknumber + "/" + fileId + ">"+ name + "</a>";
        SecuredUserBean usr = AdapterManager.getInstance().getSecuredUserAdapterManager().findByLogin(sc, "root");
        String session_str = SessionManager.getInstance().create(usr.getUser());
        SessionContext session = SessionManager.getInstance().getSessionContext(session_str);

        taskAM.updateTask(
                session,
                project.getId(),
                project.getShortname(),         //java.lang.String shortname,
                project.getName(),         //java.lang.String name,
                dscr,               //java.lang.String description,
                null,               //java.lang.Double budget,
                project.getDeadline(),         //java.util.Calendar deadline,
                project.getPriorityId(),      //java.lang.String priorityId,
                project.getParentId(),         //java.lang.String parentId,
                project.getHandlerUserId(),      //java.lang.String handlerUserId,
                project.getHandlerGroupId(),      //java.lang.String handlerGroupId,
                false);               //boolean sendMail)

        return message;
Alexander70
 
Posts: 5
Joined: Tue Jul 18, 2017 10:11 am

Re: Импорт данных из ТС в файл txt

Postby admin » Fri Aug 25, 2017 10:31 am

Ошибка означает, что отчета с таким id в базе данных нет.
Maxim Kramarenko (mailto: maximkr@trackstudio.com)
TrackStudio - Hierarchical Bug & Issue Tracking Software
http://www.trackstudio.com
admin
Site Admin
 
Posts: 8139
Joined: Thu Jan 01, 1970 3:00 am
Location: Smolensk, Russia

Re: Импорт данных из ТС в файл txt

Postby Alexander70 » Fri Aug 25, 2017 12:03 pm

admin wrote:Ошибка означает, что отчета с таким id в базе данных нет.

Уже разобрался, спасиб
Alexander70
 
Posts: 5
Joined: Tue Jul 18, 2017 10:11 am


Return to TrackStudio Support [Russian]

Who is online

Users browsing this forum: No registered users and 3 guests