Проэктирование базы

  • Автор темы Hedg
  • Дата начала
H

Hedg

Обращаюсь ко Всем кто имеет опыт создания документооборота на Lotus.

Потребовалось создать систему документооборота, но Lotus я только начал изучать. Пожалуйста расскажите как спроектировать базу.
Документы должны циркулировать между различными подразделения, начальники подразделений и начальник фирмы должны иметь доступ к документу постоянно, на всех стадиях выполнения. Текущий бумажный документооборот приблизительно 20 документов в неделю, но фирма расширяется и эта цифра увеличивается.
На всё это мне дали срок 1 месяц, т.е. 1 июля я должен показать что система функционирует.
Буду рад любым советам.
Если есть примеры, буду благодарен если поделитесь.
Мой e-mail hedg_u4@ukr.net
 
G

Guest

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

Думаю начинать проектировку нужно именно с этого - ознакомления с конкретной задачей. :angry:
 
D

Domino6

За 1 месяц не реально.

Либо это будет просто база типа "Библиотека документов"

P.S. "Даже если собрать 9 беременных женщин, за 1 месяц не родят"
 
H

Hedg

Мне не нужно вводить сразу все виды документов, для начала мне нужно ввести всего 2 типа документов. Просто со временем, если конечно будет удачная реализация, все документы будут переведены с бумаги на Лотус.
А хочется создать базу с прицелом на будущее, чтобы по 20 раз не переделывать.

Документ на закупку чего-либо
Создаётся сотрудником любого отдела.
Документы направляется сначала начальнику отдела, тот его пересылает начальнику фирмы на одобрение/отклонение. Если документ одобрен, то отсылается в бухгалтерию, на выделение средств, потом он отправляется к завхозу, после того как там всё сделали, отправляется в архив.
Начальник фирмы и начальник отдела должны видеть что документ изменяется, документ собой представляет(на бумаге) набор пунктов, где ставиться отметка если данный пункт выполнен.

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

Guest

Моменты, которые нужно уточнить:
1. будет ли путь согласования менятся, ветвится, нужны ли возвраты и на какие статусы, нужны ли предупреждения для забывчивых руководителей. Если путь согласования сложный (а так бывает чаще всего), то нужно создать настоечный документ по каждому типу согласования или форме.
2. кто и на каких статусах что должен видеть. Разграничение прав можно сделать по ролям/должностям.
3. определить какие нужны справочники. Например явно нужен справочник сотрудников/должностей, справочник отделов.
4. какие должны быть отчеты, выборки?

Вот тут есть кое-какие базы бесплатные -
 
H

Hedg

За ссылку спасибо.
1. Путь согласования не будет меняться. Должен быть выставлен срок на выполнение , по истечении которого уведомляется начальник отдела.
Что такое - "настоечный документ по каждому типу согласования или форме"

2. Начальник Фирмы и начальник отдела должны видеть весь документ, а все остальные только те части которые качаются их.

3.Нужен справочник отделов, сотрудников/должностей

4. Отчёты должны содержать заголовок документа, дату выполнения и имя сотрудника который что-то там делал.
 
G

Guest

1. Документ, где указывается название и номер статуса, ФИО (или роли/должности) тех, кто согласует документ, условия при которых доступен этот этап согласования.
Пример на картинке.
 

Вложения

  • ________________.jpg
    ________________.jpg
    15 КБ · Просмотры: 693
G

Guest

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

Вложения

  • _________________2.jpg
    _________________2.jpg
    7,5 КБ · Просмотры: 632
G

Guest

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

Вложения

  • _________________3.jpg
    _________________3.jpg
    19,7 КБ · Просмотры: 588
G

Guest

2. Это проще, чем согласование. Сначала надо посчитать много ли таких начальников на фирме. :)
Если 2-3, то лучше всего завести роль в базе и скрывать части документа, если в Hide поля или раздела
!@Contains(@UserRoles;"[Boss]")
Если больше, то стоит завести поле в котором будет выясняться все роли в справочнике сотрудников для текущего юзера и опять же тем же принципом проверяться скрытие/открытие поля или раздела.

4. Тоесть фактически нужно печатать документ?
Это можно сделать стандартными средствами.
 
H

Hedg

Большое спасибо за примеры.
Меня ещё интересует один вопрос, как и где, хранить документы.
И можно ли сделать ссылку на документ и рассылать её необходимым лицам?
 
G

Guest

Хранить документы в базе.
Если доков будет очень много, можно создать базе-архив (на каждый год), куда перекидывать устаревшие документы.
Ссылку пересылать можно. вот пример на LS для согласования (второй вариант).

Код:
.... (объявление переменных) ....

formula={Form = "Permission" & Rule="Руководитель" & PKod= "} + Cstr(uidoc.FieldGetText("RKod")) + {" & Visible!="0"}	
Set collection = db.Search(formula, Nothing,0)
If collection.Count = 0 Then
Msgbox "В справочнике не найдены соответствующие Руководители !", 32, "Внимание!"
Exit Sub
End If
doc.BossList=""
Set wdoc = collection.GetFirstDocument
While Not wdoc Is Nothing
n=Evaluate({Field BossList:=@Unique(@Trim(BossList:'} & wdoc.PersonFullName(0) & {'));@Success},doc)
Set wdoc = collection.GetNextDocument(wdoc)
Wend

If Not workspace.DialogBox( "SelectBoss", True, True, True , False, False, False, "Отправка на согласование руководителем", doc , False, True) Then Exit Sub
doc.Status = "1"
doc.StatusWho = doc.BossName(0)	
doc.OwOKDate =Date+Time 

'История	
n = Evaluate({Field HistoryWhen:=@Now;@Success},doc)
n = Evaluate({Field HistoryWho:=@Name([CN];@UserName);@Success},doc)
n = Evaluate({Field HistoryAction:="Отправлен на согласование руководителю";@Success},doc)
n = Evaluate({Field History:=History:(@Text(HistoryWhen) + " " + HistoryWho + ": "+HistoryAction);@Success},doc)	
'Уведомление руководителю
Set mdoc = db.CreateDocument	
mdoc.Form = "Memo"
mdoc.SendTo = doc.BossNotesName(0)	
mdoc.Subject = "Уведомление о согласовании заявки"
Set rtitem = New NotesRichTextItem( mdoc, "Body" )
Call rtitem.AppendText("Требуется согласование заявки в")
Call rtitem.AddNewLine(2)  
Call rtitem.AppendText("Ссылка на документ -> ")
Call rtitem.AppendDocLink( doc, "документ" )	
Call mdoc.Send(False)
'Сохраняем и закрываем
Call uidoc.Save
Call uidoc.Close
 
H

Hedg

Благодарю за пример.

Как создать эту самую ссылку?
Ещё вопрос, как размещать документы, чтобы остальные сотрудники или отделы не видели документов, которые их не касаются?
 
G

Guest

В примере есть линк на документ -
Call rtitem.AppendDocLink( doc, "документ" )

Можно сделать вид в котором первый столбец катигоризировать по ФИО сотрудников.
С примерно такой формулой отбора:

Код:
@Trim(OwnerNotesName:
@If(
Status="0";OwnerNotesName;
Status="1";BossNotesName;
Status="2";Boss2NotesName;
OwnerNotesName))

Тоесть на статусе 0 видит только создатель дока, на 1-ом статусе - босс и создатель, на 2-ом босс2 и создатель и т.д.

Потом сделать форму со встоенным видом и в Show single categiry записать формулу отбора @UserName.

Тогда в представлении будут показываться только документы тем юзерам, которые или сами создали документ или должны его сейчас согласовывать.
 
D

Domino6

<!--QuoteBegin-Юлия+28:04:2006, 14:20 -->
<span class="vbquote">(Юлия @ 28:04:2006, 14:20 )</span><!--QuoteEBegin-->Тоесть на статусе 0 видит только создатель дока, на 1-ом статусе - босс и создатель, на 2-ом босс2 и создатель и т.д.

Потом сделать форму со встоенным видом и в Show single categiry записать формулу отбора @UserName.

Тогда в представлении будут показываться только документы тем юзерам, которые или сами создали документ или должны его сейчас согласовывать.
[snapback]34591" rel="nofollow" target="_blank[/snapback]​
[/quote]

А поля Ридер начто? Тоже самое только вычисление в поле ридер
 
H

Hedg

Спасибо всем кто ответил. Вопросы с проэктированием отпали. Теперь буду потихоньку реализовывать всё что на думал.
 
H

Hedg

Вопрос по сокрытию частей документа.
Как сделать чтобы скрытые части могли быть видны нескольким ролям? Например Босу и Админу.
 
G

Guest

Поставить соотвествующе условие скрытия на поле (Field) или на раздел (Section). Это закладка Paragraph Hide When.
Если роль [Admin], то формула будет выглядеть примерно так:
!@Contains(@UserRoles;"[Admin]")

Если раздел должен быть виден еще и юзеру с ролью [Boss], то формула скрытия будет такая:
!@Contains(@UserRoles;"[Admin]") & !@Contains(@UserRoles;"[Boss]")
 
H

Hedg

<!--QuoteBegin-Юлия+5:05:2006, 13:23 -->
<span class="vbquote">(Юлия @ 5:05:2006, 13:23 )</span><!--QuoteEBegin-->Если раздел должен быть виден еще и юзеру с ролью [Boss], то формула скрытия будет такая:
!@Contains(@UserRoles;"[Admin]") & !@Contains(@UserRoles;"[Boss]")
[snapback]35047" rel="nofollow" target="_blank[/snapback]​
[/quote]

Не работает. Невиден ни тому и другому
 
G

Guest

А какое полное название роли?
Выведи в отдельное поле значение @UserRoles.
Попробуй сначала сделать скрытие по отдельности, а потом совместить.

@UserRoles - это список. Подходит не только !@Contains, но и @IsNotMember.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!