| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| product:api:integration_examples:google_sheets [07.04.2025 11:02] – ekaterina.menkhuzina | product:api:integration_examples:google_sheets [08.04.2025 10:27] (текущий) – ekaterina.menkhuzina |
|---|
| Google предоставляет множество сервисов для совместной работы с документами распространённых офисных форматов. В их числе - **Google Sheets**, облачный редактор электронных таблиц, аналогичный Excel. | Google предоставляет множество сервисов для совместной работы с документами распространённых офисных форматов. В их числе - **Google Sheets**, облачный редактор электронных таблиц, аналогичный Excel. |
| |
| В некоторых ситуациях требуется переносить данные о проектах, сформированных в ADVANTA, в таблицы Google Sheets. | Если требуется регулярно передавать данные о проектах в таблицы Google, можно автоматизировать этот процесс. Для этого надо написать приложение, которое будет получать данные из ADVANTA через ее API и записывать их в электронную таблицу через API системы Google Sheets. |
| | |
| Если передавать данные требуется регулярно, можно автоматизировать этот процесс. Для этого можно написать приложение, которое будет получать данные из ADVANTA через ее API и записывать их в электронную таблицу через API системы Google Sheets. | |
| |
| Шаги, которые надо выполнить для автоматизации передачи информации из ADVANTA в таблицы Google Sheets: | Шаги, которые надо выполнить для автоматизации передачи информации из ADVANTA в таблицы Google Sheets: |
| - Зарегистрировать «сервисный аккаунт» в системе «Google Cloud Console» для вызова к API. | - Зарегистрировать «сервисный аккаунт» в системе «Google Cloud Console» для вызова API и получить «ключ доступа» к нему. |
| - Настроить доступ к файлу электронной таблицы в Google Sheets для связанной с «сервисным аккаунтом» учётной записи. | - Настроить доступ к файлу электронной таблицы в Google Sheets для связанной с «сервисным аккаунтом» учётной записи. |
| | - Настроить в ADVANTA LINQ-запрос, который сформирует таблицу данных. |
| | - Написать приложение, которое выполнит LINQ-запрос и запишет полученные данные в Google Sheets. |
| | |
| | Ниже рассмотрены примеры двух максимально простых приложений на C#, которые получают данные из ADVANTA и записывают их в таблицы Google. На основе этих примеров Вы можете создавать собственные приложения для решения задач по автоматизации передачи данных из ADVANTA в облачные сервисы Google. |
| |
| Также ниже рассмотрены примеры двух максимально простых приложений на C#, которые получают данные из ADVANTA и записывают их в таблицы Google. На основе этих примеров Вы можете создавать собственные приложения для решения задач по автоматизации передачи данных из ADVANTA в облачные сервисы Google. | <image shape="thumbnail">{{ :product:api:integration_examples:a2-googlesheets-16200-630.jpg?700&direct |}}</image> |
| |
| ===== Общие сведения об API сервисов Google ===== | ===== Общие сведения об API сервисов Google ===== |
| Теперь нужно создать ключ для доступа к сервисному аккаунту из программы, которую будем разрабатывать. | Теперь нужно создать ключ для доступа к сервисному аккаунту из программы, которую будем разрабатывать. |
| |
| Перейти по ссылке с именем аккаунта а разделе «Service Accounts»: | Перейти по ссылке с именем аккаунта в разделе «Service Accounts»: |
| |
| {{ :product:api:integration_examples:gcc9.png?600 |}} | {{ :product:api:integration_examples:gcc9.png?600 |}} |
| - Список объектов записывается в Google-таблицу. | - Список объектов записывается в Google-таблицу. |
| |
| <callout type="primary" icon="true">Чтобы открыть и запустить эти примеры, на ПК должен быть установлен [[https://dotnet.microsoft.com/ru-ru/download/dotnet/8.0|DotNet SDK 8]] и сама среда разработки [[https://code.visualstudio.com|Visual Studio Code]]. Для работы с C# в [[https://code.visualstudio.com|Visual Studio Code]] надо добавить расширение «C# Dev Kit». Для выгрузки данных из ADVANTA должен быть настроен LINQ-запрос.</callout> | <callout type="primary" icon="true">Чтобы открыть и запустить эти примеры, на ПК должен быть установлен [[https://dotnet.microsoft.com/ru-ru/download/dotnet/8.0|DotNet SDK 8]] и сама среда разработки [[https://code.visualstudio.com|Visual Studio Code]]. Для работы с C# в [[https://code.visualstudio.com|Visual Studio Code]] надо добавить расширение «C# Dev Kit».</callout> |
| |
| ==== Подготовка LINQ-запроса в ADVANTA ==== | ==== Подготовка LINQ-запроса в ADVANTA ==== |
| | Для выгрузки списка объектов воспользуемся [[product:linq:about|LINQ-запросом]] «Все объекты» (ключ «GetAllObjects»). |
| | |
| | <code csharp> |
| | var projects = dataContext.Projects |
| | .Where(p => p.Name != null) |
| | .OrderBy(p => p.CreationDate) |
| | .Select(p => new { |
| | p.Id, |
| | p.Name, |
| | //p.Code, |
| | }); |
| | return projects; |
| | </code> |
| | |
| | Необходимо убедиться, что запрос работает. Для этого, заходим в раздел [[product:linq:about|LINQ-запросов]] Системы и проверяем, что запрос существует. |
| | |
| | {{ :product:api:integration_examples:gcc16.png?500 |}} |
| | |
| | Далее необходимо перейти на страницу запроса кликом по названию, выполнить его кнопкой «Сделать запрос» и убедиться, что он формирует таблицу с перечнем объектов. |
| | |
| | {{ :product:api:integration_examples:gcc17.png |}} |
| | |
| | ==== Как запустить примеры кода ==== |
| | |
| | === Подготовка каталога для примеров === |
| | С помощью Проводника Windows необходимо создать на диске каталог ''C:\Projects'' и скопировать в него каталоги проектов из прилагаемых архивов {{ :product:api:integration_examples:exporttogooglesheets1libs.zip |ExportToGoogleSheet1Libs.zip}} и {{ :product:api:integration_examples:exporttogooglesheets2nolibs.zip |ExportToGoogleSheet2NoLibs.zip}}. В итоге, в каталоге «Projects» должны располагаться подкаталоги с программными файлами. |
| | |
| | {{ :product:api:integration_examples:gcc18.png?600 |}} |
| | |
| | === Запуск примера «ExportToGoogleSheet1Libs» (с библиотеками Google) === |
| | Необходимо запустить [[https://code.visualstudio.com|Visual Studio Code]] и выполнить команду «File > Open Folder…». В окне «Open Folder» перейти в каталог ''C:\Projects\ExportToGoogleSheet1Libs'' и нажать «Выбор папки». |
| | |
| | Содержащийся в каталоге код откроется в [[https://code.visualstudio.com|Visual Studio Code]]: |
| | |
| | {{ :product:api:integration_examples:gcc19.png |}} |
| | |
| | Прежде, чем запускать его на исполнение, необходимо проверить настройки параметров подключения к ADVANTA и к Google в коде: |
| | |
| | 1. Адрес сервера ADVANTA, логин и пароль пользователя, от имени которого будет выполняться LINQ-запрос: |
| | |
| | {{ :product:api:integration_examples:gcc20.png?500 |}} |
| | |
| | 2. Имя ключа LINQ-запроса и количество объектов, которые программа из него получит. Большое количество объектов может потребовать большого объёма оперативной памяти компьютера, на котором выполняется программа: |
| | |
| | {{ :product:api:integration_examples:gcc21.png?500 |}} |
| | |
| | 3. Далее нужно заменить в каталоге с кодом файл "service-account.json" на тот, который сгенерировали при настройке сервисного аккаунта в [[https://console.cloud.google.com|Google Cloud Console]]. При необходимости, можно разместить в каталоге с кодом несколько файлов авторизации и указать имя нужного в коде: |
| | |
| | {{ :product:api:integration_examples:gcc22.png?500 |}} |
| | |
| | Также нужно зарегистрировать дополнительный ''JSON'' в файле проекта «ExportToGoogleSheets1Lib.csproj», добавив в него код с новым именем файла, аналогично существующему: |
| | <code csharp> |
| | <ItemGroup> |
| | <None Update="service-account.json"> |
| | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | </None> |
| | </ItemGroup> |
| | </code> |
| | |
| | {{ :product:api:integration_examples:gcc23.png |}} |
| | |
| | 4. Далее указать идентификатор Google-таблицы, к которой дали доступ для сервисного аккаунта, а также имя листа в ней, на который требуется выгрузить данные: |
| | |
| | {{ :product:api:integration_examples:gcc24.png |}} |
| | |
| | **Идентификатор** - часть адреса страницы с таблицей, между ''/d/'' и ''/edit'', а имя листа – аналогично Excel: |
| | |
| | {{ :product:api:integration_examples:gcc25.png?600 |}} |
| | |
| | Перед запуском примера необходимо обязательно сохранить изменения. После этого можно запускать решение. Для запуска служат команды справа на панели закладок [[https://code.visualstudio.com|Visual Studio Code]]. |
| | |
| | Работа с примером {{ :product:api:integration_examples:exporttogooglesheets2nolibs.zip |}} полностью аналогична. Доступ к ADVANTA и Google настраивается точно также. |
| | |
| | <callout type="info" icon="true">Если потребуется проводить собственные эксперименты с примерами в [[https://code.visualstudio.com|Visual Studio Code]], рекомендуется создать новый проект, скопировать в него код из примера и подключить библиотеки Google. </callout> |