Эта запись в блоге написана Тони Мелроузом, инженером по платформенным решениям компании Box

В прошлом месяце несколько членов команды Box отправились в Боулдер, штат Колорадо, чтобы вместе с Zia Consulting принять участие в двухдневном хакатоне, посвященном созданию решений для управления облачным контентом для вымышленной компании. Группа разделилась на команды и сосредоточилась на общей для многих предприятий проблеме: рабочем процессе полевого ремонтника. Эти работники часто работают исключительно с мобильных устройств, оценивая сломанные детали с минимальным доступом к вычислительным ресурсам.

Используя API-платформы Box, веб-хуки и несколько отличных от Box сервисов (о них я расскажу позже), мы создали мобильное приложение, которое принимает фотографии, использует возможности OCR для идентификации серийного номера детали, делает поиск в базе данных информации о продукте на основе этого серийного номера, применение метаданных к файлу изображения в Box и запуск рабочего процесса для замены детали на основе этих метаданных. Хотя платформа Box сама по себе не может решить весь этот рабочий процесс, опыт Zia в рабочих процессах управления корпоративным контентом помог нам связать другие сервисы, чтобы найти жизнеспособное решение.

Процесс

Каждая команда подошла к проблеме немного по-своему, и я собираюсь поделиться с вами подходом, который использовала моя команда, создав небольшое приложение Flask на Python, которое могло бы связываться с каждым из этих других сервисов или предоставлять необходимые значения метаданных, необходимые для запуска. соответствующие рабочие процессы.

Во-первых, мы определили поток информации через приложение и составили приблизительную архитектурную диаграмму, чтобы информировать нас о наших решениях по созданию приложения.

На этом изображении представлен поток данных, начиная с левой стороны с инженером по установке ракет, который фотографирует деталь, нуждающуюся в обслуживании.

Мы создали приложение через Box Developer Console для этого процесса с ключом, который мы будем использовать во всех потоках в приложении. Каждому Rocket Field Engineer (RFE) нужно будет войти в мобильное приложение, но ему не нужен доступ к интерфейсу Box, что делает их идеальными кандидатами для нашей модели пользователя приложения. У нас будет центральный контент с использованием Учетной записи службы, и каждый RFE будет создавать папку в этом центральном репозитории с именем папки Номер заказа на работу ####.

Мы настроили веб-хук для отслеживания событий FILE.UPLOADED в централизованно управляемой папке, которые каскадно передаются во все подпапки, что позволяет нам видеть, когда новое изображение загружается во вновь созданный рабочий заказ, и отправлять его в Ephesoft для сканирования. . Ephesoft предлагает целый портфель интеллектуальных решений для захвата и сканирования. Теперь, когда у нас есть основа, давайте посмотрим на саму суть приложения.

RFE фотографирует часть, которая, по их мнению, нуждается в обслуживании, с помощью специального мобильного приложения (которое можно создать с помощью одного из мобильных SDK Box). Это создает новую папку рабочего задания и загружает в нее файл. Он также запускает веб-перехватчик для нашего приложения, поэтому у нас есть идентификатор файла недавно загруженной фотографии, который мы можем использовать для инициирования запроса на загрузку.

Получив файл, мы можем отправить его в Ephesoft для распознавания символов и поиска в базе данных с помощью Ephesoft Transact. После обработки файла мы получаем XML-ответ от Ephesoft, который включает в себя такую ​​информацию, как серийный номер, название продукта, стоимость продукта и т. д., которые Ephesoft смогла идентифицировать на изображении.

Для удобства в нашем приложении для хакатона мы просто записали ответ в файл, а затем проанализировали его, преобразовав в объект JSON для передачи в запрос Box Metadata API.

Затем объект JSON был преобразован для сопоставления с полями, которые мы использовали в нашем шаблоне метаданных, чтобы мы могли отправить обратный вызов Box с соответствующими метаданными на основе всего, что мы теперь знаем об изображении.

Как только метаданные были применены к файлу, запускался рабочий процесс Nintex, который либо автоматически создавал заказ на покупку, либо направлял запрос на утверждение менеджером, если стоимость продукта превышала определенное значение в долларах. Nintex — это интеллектуальный инструмент автоматизации процессов для создания облачных рабочих процессов. Это упрощенная интерпретация того, как это могло бы выглядеть в реальном мире, но, по сути, Nintex предоставила нам возможность создавать логику в рабочем процессе и направлять один и тот же рабочий процесс разным людям на основе определенного значения метаданных.

После утверждения ракетный полевой инженер мог рассчитывать на получение запасной части для завершения технического обслуживания — и все это без необходимости заполнять какие-либо формы или вручную искать серийные номера — тем самым улучшая свои возможности и существенно устраняя человеческую ошибку при неправильном вводе информации в текст. поле.

Весь этот процесс использует несколько ключевых технологий для создания комплексного решения. Во-первых, мы использовали API-интерфейсы платформы Box и веб-перехватчики для интеграции Box в мобильное приложение для захвата изображений и отправки события веб-перехватчика при загрузке. Затем мы создали интеграцию с Ephesoft для анализа и извлечения информации из файла изображения и записи результатов в API метаданных Box. В ближайшем будущем мы сможем использовать для этого Box Skills Kit, который предоставляет простые в использовании токены доступа для чтения файла и записи метаданных в Box. Затем мы использовали Nintex для запуска рабочего процесса при применении определенных значений метаданных.