Как автоматически обновить свойства после того, как файл сгенерирован сервисом автоматизации слова?
Я использовал Open XML + Word Automation, чтобы сгенерировать файл слова из шаблона и преобразовать его в pdf. Теперь и текстовые документы, и сгенерированные PDF-файлы находятся в одной библиотеке документов. Слово документы имеет некоторые свойства, которые добавляются при их создании / загрузке в библиотеку.
Теперь я пытаюсь автоматически добавлять свойства в PDF-файлы после их создания. PDF будет иметь те же свойства, что и документ Word, из которого он создан.
Сначала я пытался использовать Event Receiver, но программа, похоже, не распознает, что в библиотеку документов добавлен новый элемент (сгенерированный PDF).
Затем я попытался использовать рабочий процесс (SharePoint Designer), но он тоже не работает (Не удалось запустить). В результате говорится: "Рабочий процесс AddPDFData был отменен системной учетной записью" и "AddPDFData не удалось запустить". Рабочий процесс запускается при создании элемента. Я знаю, что сам рабочий процесс корректен, потому что он работает нормально, когда я устанавливаю его запуск при изменении элемента.
Пожалуйста, предложите, если есть что-то, что я могу сделать неправильно, или есть какой-то подход, который я могу использовать. Любая идея / предложение будет высоко ценится.
Спасибо!
1 ответ
Очень неприятно, что получатели событий не срабатывают при создании документа, однако, вы определенно можете использовать рабочий процесс и AutoStartOnCreate. Это работает, я сделал это. По крайней мере, это относится к созданным Visual Studio 2010 рабочих процессам в SharePoint 2010.
Я не могу сказать, в чем проблема с вашим рабочим процессом, но я полагаю, что если вы добавите какой-либо элемент в список, рабочий процесс будет "провален при запуске" для этого элемента, а не только сгенерированных WAS элементов. Эта ошибка обычно означает, что рабочий процесс не может корректно проверяться - плохие маркеры корреляции, пропущенные требуемые данные и т. Д., Вы можете найти более подробную информацию в другом месте.