Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
product:api:integration_examples:google_sheets [07.04.2025 11:02] ekaterina.menkhuzinaproduct:api:integration_examples:google_sheets [08.04.2025 10:27] (текущий) ekaterina.menkhuzina
Строка 2: Строка 2:
 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 =====
Строка 70: Строка 72:
 Теперь нужно создать ключ для доступа к сервисному аккаунту из программы, которую будем разрабатывать.  Теперь нужно создать ключ для доступа к сервисному аккаунту из программы, которую будем разрабатывать. 
  
-Перейти по ссылке с именем аккаунта а разделе «Service Accounts»:+Перейти по ссылке с именем аккаунта в разделе «Service Accounts»:
  
 {{ :product:api:integration_examples:gcc9.png?600 |}} {{ :product:api:integration_examples:gcc9.png?600 |}}
Строка 115: Строка 117:
   - Список объектов записывается в 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>