Как синхронизировать рабочую очередь с файловой директорией - PullRequest
1 голос
/ 21 мая 2019

В Blue Prism я хочу, чтобы моя рабочая очередь состояла из всех файлов, добавленных в каталог файлов.Ключ элемента - это имя файла.Я решаю это, читая все имена файлов, а затем перебираю каждое из них, проверяю, есть ли оно в очереди, и если нет, добавляю его.В каталоге будут тысячи файлов, поэтому я не хочу перебирать все файлы при каждом запуске процесса.В качестве альтернативы, используя «получить все завершенные элементы», я могу получить itemID завершенных элементов, но затем мне нужно использовать «получить данные элемента» для каждого, чтобы получить имя файла, чтобы проверить, нужно ли добавить файл в очередь.,Есть идеи получше?

1 Ответ

0 голосов
/ 22 мая 2019

Это интересная проблема.

Этого можно достичь, выполнив SQL-запрос к базе данных BP. Если у вас есть доступ к нему, то это может быть самым простым и лучшим решением. Я не могу помочь вам с этим, поскольку я никогда не делал этого.

Более простым решением было бы сделать снимок входной папки всякий раз, когда очередь заполнена, и сохранить ее. Я сделал то же самое в моем недавнем проекте:)

Пример потока, который будет включать снимок:

Сначала я создаю книгу Excel с данными из текущего прогона (на листе «Новый») и предыдущего прогона (на листе «Старый»). Я бы сохранил его в каком-то внутреннем месте.

  1. Получить список всех входных файлов
  2. Открыть предыдущую книгу Excel
  3. Удалить данные из "старого" листа
  4. Переместить данные с листа «Новый» на «Старый»
  5. Вставить список всех входных файлов в «Новый» лист
  6. Сохранить и закрыть книгу
  7. Запустите запрос OleDB, чтобы получить список файлов, которые находятся на «новом» листе, но отсутствуют на «старом» листе.
...