Пакетное обновление для удаления, копирования, а затем переименования Google Sheet в Javascript в веб-запросе - PullRequest
0 голосов
/ 26 апреля 2019

В рамках проекта служб интеграции SQL Server 2017 с помощью диспетчера подключений CozyRoc REST я пытаюсь использовать их задачу JavaScript для удаления листа в одной электронной таблице Google, а затем скопировать лист с тем же именем из другой электронной таблицы в эту первую электронную таблицу.используя «CopyTo», затем переименуйте скопированный лист, чтобы удалить «Copy of ...»часть заголовка.

Лист 1 называется «CompanyInfo».Он имеет 7 листов, один из которых называется «Ежедневный отчет».

Лист 2 называется «Ежедневный отчет», в котором только один лист называется «Ежедневный отчет».

Общая задачапросто автоматизировать процесс перезаписи листа «Ежедневный отчет» таблицы «Информация о компании» на листе «Ежедневный отчет» из таблицы «Ежедневный отчет» изнутри SSIS. Это достаточно просто сделать вручную из Google Sheets, ноего необходимо автоматизировать с помощью служб SSIS.

Если посмотреть на API, это, вероятно, потребует удаления исходного листа «Ежедневный отчет» из «Информация о компании», копирования листа ежедневного отчета из электронной таблицы «Ежедневный отчет» вновая вкладка в электронной таблице «Информация о компании», а затем переименование этого листа, чтобы удалить «копию» части. Мне кажется, три простые команды BatchUpdate. Но везде, где я смотрю, все, что я вижу, это сложные обновления отдельных листов, а не пакетные обновления.

Я связался с Cdata Software, но задача SSIS GoogleSheet этого не делает.сделать "Copyto".Это упростило бы задачу.

Я отчаянно пытался получить руководство от CozyRoc, но, как правило, все, что мне сказали, - это посмотреть справочник по API для операций с листами, и мне нужно написатьвеб-запрос, который я не понимаю, как это сделать.

Вначале я все время гуглил по простому полному, маленькому полному куску образца кода JavaScript, в котором указан идентификатор таблицы Google, лист GoogleID, а затем удаляет указанный лист из веб-запроса.Все, что я нахожу где-нибудь, это маленькие фрагменты из справочника по API, и это не помогает мне написать полный сценарий.

Для ясности, по ряду причин я не могу сделать это напрямую из Google Sheets, используя скрипт приложения.

Я полностью понимаю, что это неправильно:

task.run = function () {
    var connection
        variables = this.variables;
    var SheetID = 1145890987;
    var SpreadsheetID = "1r0tsxZ_nKT7EGG5qU6_6JPJ3dLOsZfF8pmdfsdgfagdahjI"
    if (this.parameters.RestConnection.value) {
        connection = this.connections[this.parameters.RestConnection.value].acquire();
        connection.connect();
    }
    else {
        connection = new RestConnection();
    }
    {
        "requests"; [
            {
                "deleteSheet": {
                    "sheetId": SheetID
                }
            }
        ]
    }

Я ожидаю, что лист «Ежедневный отчет» электронной таблицы «Информация о компании» будет перезаписываться листом «Ежедневный отчет» таблицы «Ежедневный отчет» всякий раз, когда я запускаю проект SSIS под названием «Обновление ежедневного отчета»."

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 30 апреля 2019

Как оказалось, это был довольно сложный процесс.

В итоге я создал три базовые задачи CozyRoc Javascript в SSIS со ссылкой на API, каждая из которых содержала очень простой и короткий фрагмент кода.

Один шаг, который копирует один лист Google в более крупный лист Google с помощью «copyTo» В результате получается лист в более крупной электронной таблице Google, который называется «Копия ...»

Второй шаг, при котором исходный лист удаляется из большой таблицы Google.

Третий шаг, который переименовывает новую «Копию» в большей электронной таблице в исходное имя.

По сути, у меня были проблемы с тем, что в документации API нет приличных, простых и понятных примеров какой-либо из этих трех функций.

Я знал, как создавать строки Body и URL для этих трех функций, но у меня были большие трудности с синтаксисом. В документации было неясно, где скобки, скобки и кавычки были необходимы на всех трех этапах, особенно когда вы используете переменные SSIS для SpreadsheetId и SheetID. Мне потребовалось несколько дней, чтобы все это заработало, когда помогло бы несколько лучших примеров функций Batchupdatate и copyTo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...