Регистрация

Создание новой карточки в сценарии БП {DV5.4} {Решено}

Вопросы, связанные с разработкой дополнительных справочников, карточек и т.п. на базе DocsVision

Модератор: Модераторы форума

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 05 июн 2018, 10:57

Коллеги, всем привет!
Может кто поделиться примером скрипта по созданию новой карточки в определенной папке и с установленным видом?
Задача веселая стоит)) Мониторить определенную папку, при появлении файла, копировать его к себе на сервер, создавать новую карточку в папке, заполнить в ней некоторые поля, прикрепить этот файл и изменить состояние.
Мониторинг и перенос я сделал, а вот как теперь новую карточку создать - тупик(((
Последний раз редактировалось Яков 07 июн 2018, 12:48, всего редактировалось 1 раз.
DV 5.4 (НО9), а когда-то было 4.5)

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4}

Сообщение Яков » 07 июн 2018, 11:23

Все, разобрался!
Последний раз редактировалось Яков 07 июн 2018, 12:48, всего редактировалось 1 раз.
DV 5.4 (НО9), а когда-то было 4.5)

Опытный
Сообщения: 144
Зарегистрирован: 27 авг 2009, 08:43
Откуда: Ангарск

Re: Создание новой карточки в сценарии БП {DV5.4}

Сообщение Finist » 07 июн 2018, 11:28

Не успел пример скрипта залить как уже решено, но все равно оставлю небольшой пример:
Код: Выделить всё
// подключение системных библиотек
using System;
using DocsVision.BackOffice.ObjectModel;
using DocsVision.Platform.ObjectManager;
using DocsVision.Platform.ObjectModel;
using DocsVision.Workflow.Functions;
using DocsVision.Workflow.Runtime;
using DocsVision.BackOffice.ObjectModel.Services;
using DocsVision.Platform.ObjectModel.Search;
using DocsVision.Platform.ObjectManager.SystemCards;

// подключение библиотек СУБП

namespace DVScriptHost
{
    class DVScript
    {
        public void Execute(
            ObjectContext context
            ,ProcessInfo process
            ,UserSession session
            , [VariableName("Путь к файлу")] ProcessVariable filePathVar
            )
        {
            IDocumentService documentService = context.GetService<IDocumentService>();
            KindsCardKind cardKind = context.FindObject<KindsCardKind>(new QueryObject(KindsCardKind.NameProperty.Name, "<kindName>"));
            Document newDocument = documentService.CreateDocument(filePathVar.Value.ToString(), cardKind);
            newDocument.MainInfo.Name = "<Название документа>";
            context.SaveObject(newDocument);
            //далее можно заполнять поля карточки и т.д.

            //создание ярлыка в папке
            FolderCard folderCard = (FolderCard)session.CardManager.GetCard(new Guid("{DA86FABF-4DD7-4A86-B6FF-C58C24D12DE2}"));
            folderCard.CreateShortcut(new Guid("ID папки"), newDocument.GetObjectId(), false);
        }
    }
}

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4}

Сообщение Яков » 07 июн 2018, 12:46

Finist все равно спасибо!

Вопросик, а как поля заполнять?
Пытаюсь заполнить Дату регистрации:
Код: Выделить всё
document.MainInfo["RegistrationDate"] = DateTime.Now.Date;

Карточка создается, но поле нифига не заполняется((
DV 5.4 (НО9), а когда-то было 4.5)

Опытный
Сообщения: 144
Зарегистрирован: 27 авг 2009, 08:43
Откуда: Ангарск

Re: Создание новой карточки в сценарии БП {DV5.4}

Сообщение Finist » 08 июн 2018, 06:49

Яков писал(а):Finist все равно спасибо!

Вопросик, а как поля заполнять?
Пытаюсь заполнить Дату регистрации:
Код: Выделить всё
document.MainInfo["RegistrationDate"] = DateTime.Now.Date;

Карточка создается, но поле нифига не заполняется((

После заполнения полей карточку надо обязательно сохранить.
Код: Выделить всё
context.SaveObject(document);

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 08 июн 2018, 09:15

Сохранял
Код: Выделить всё
document.MainInfo.SetGuid("RegNumber", numberID);
document.MainInfo["Дата создания"] = DateTime.Now.Date; //Дата регистрации
objectContext.SaveObject(document)


И в конце вот так
Код: Выделить всё
objectContext.AcceptChanges();


Самое интересное, номер отображается в карточке, а вот дата - нифига
DV 5.4 (НО9), а когда-то было 4.5)

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 08 июн 2018, 09:28

Блин, вот я........
Посмотрел в DVExplorer как эти поля называются, написал правильные названия полей и вуаля, даты проставились)))
Finist большое тебе человеческое спасибо!!! Напиши как тебе на пенный напиток скинуть)) :D
DV 5.4 (НО9), а когда-то было 4.5)

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 14 июн 2018, 11:41

Коллеги, назрела новая задача в рамках данного процесса:
Карточка успешно создается, файл находится в определенной папке.
Подскажите, пожалуйста, как добавить в файл регистрационный номер и дату документа?
Перерыл кучу сайтов, не могу найти то - что мне нужно(((((
Вопрос жизни и смерти просто
DV 5.4 (НО9), а когда-то было 4.5)

Опытный
Сообщения: 144
Зарегистрирован: 27 авг 2009, 08:43
Откуда: Ангарск

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Finist » 14 июн 2018, 11:48

Яков писал(а):Коллеги, назрела новая задача в рамках данного процесса:
Карточка успешно создается, файл находится в определенной папке.
Подскажите, пожалуйста, как добавить в файл регистрационный номер и дату документа?
Перерыл кучу сайтов, не могу найти то - что мне нужно(((((
Вопрос жизни и смерти просто

Подгружаются файлы какого типа? .doc/.docx или вообще любой может быть?

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 14 июн 2018, 11:51

файлы doc иногда могут быть docx
Если это критично, могу надресировать пользаков на сохранение файла определенного формата
DV 5.4 (НО9), а когда-то было 4.5)

Опытный
Сообщения: 144
Зарегистрирован: 27 авг 2009, 08:43
Откуда: Ангарск

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Finist » 14 июн 2018, 12:16

Номер и дату нужно писать в определнное место в тексте?
Напрашивается такоей алгоритм:
1. Создаем карточку и выделяем номер;
2. Записываем номер в файл;
3. Прикрепляем файл к созданному документу.

Если файлы MS Word, то надо определить какую-то область в файле куда все время будет записан номер+дата.
Записать номер и дату в файл можно используя автоматизацию ms word (Microsoft.Office.Interop.Word) или OpenXml.
В OpenXml есть ограничение, работает только с файлами .docx и если есть возможность надресировать юзеров сохранять в этом формате, то лучше использовать именно этот способ - не требует установленного MS Office на сервере и работает быстрее.
Автоматизация ms word по большей части клиенская и не всегда стабильно работает, но за неимением альтернатив приходится использовать иногда и в бизнес-процессах.
Еще, как вариант, посмотреть в сторону свойств, ДВ раньше умел записывать инфу в свойства файла и наоброт - толком не помню уже, не уверен что получится применить в данной задаче.

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 14 июн 2018, 12:22

Да, именно такой алгоритм.
Карточка уже создается, номер и дата выделяются (отдельно записываю значения в переменные БП)
Уточнил - файлы всегда сохраняются в формат docx
Нужно в верхний левый угол файла вставить дату и номер.
Вот как это сделать - фиг знает.

P.S.
MS Office на серваке установлен.
DV 5.4 (НО9), а когда-то было 4.5)

Опытный
Сообщения: 144
Зарегистрирован: 27 авг 2009, 08:43
Откуда: Ангарск

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Finist » 14 июн 2018, 12:59

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

Гуру
Сообщения: 274
Зарегистрирован: 04 дек 2008, 13:40
Откуда: Москва

Re: Создание новой карточки в сценарии БП {DV5.4} {Решено}

Сообщение Яков » 14 июн 2018, 13:54

Самое и обидное, что файл формируется из шаблона, но он в 1С (оттуда формируют этот документ)
В колонтитул не получится. В верхнем колонтитуле шапка организации
DV 5.4 (НО9), а когда-то было 4.5)

Вернуться в Разработка на платформе Docsvision

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2