Глоссарий - это единая лексика внутри организации. Документирование определений терминов нивелирует двусмысленность и улучшает корпоративные коммуникации. Определения должны быть отчетливыми, строгими в формулировках и пояснять как любые исключения, так и синонимы или варианты.
Корпоративный бизнес-глоссарий имеет первостепенное базовое значение для управления данными:
- Сокращение барьера между Бизнесом и IT, недопонимания между Бизнесом и Бизнесом. Бизнес-глоссарий позволяет сотрудникам на берегу синхронизироваться по контексту, снизить эффект испорченного телефона между участниками разных команд.
- Снижение риска неправильного использования данных из-за двойственного, кусочного понимания бизнес-контекста;
- В зрелой комплаенс среде бизнес-термины связаны с другими бизнес-терминами, метаданными, ключевыми показателями эффективности (KPI) для ускорения анализа.
- Хороший бизнес-глоссарий должен быть интегрирован в эффективную функцию поиска, способную находить контекстно-зависимые релевантные результаты: деловые термины, положения, области бизнес-процессов, метрики, технические метаданные.
- Кросс-функциональным группам трудно работать совместно, когда каждый департамент - по своим окопам. Менеджеры начинают определять условия ведения бизнеса по своим предпочтениями, а не в соответствии со стандартами, политиками и передовыми практиками. Чтобы заинтересованные стороны были своевременно информированы, бизнес-глоссарий должен быть оснащен рабочими процессами управления и согласования.
- Рабочий процесс (workflow) размещения бизнес-терминов в едином репозитории подразумевает роли, ответственность по созданию, редактированию, утверждению и публикации терминов.
- Глоссарий может технически храниться в репозитории моделей данных, а конечным пользователям не важно об этом знать. Им важно знать то место, куда они могут обратиться и быстро найти определения, контекст по ключевой бизнес-информации. Настоящая совместная работа происходит тогда, когда взаимодействие является двунаправленным: стороны могут просматривать термины, оставлять комментарии, тем самым вносить вклад в совершенствование определений.
Отлично, когда термины глоссария имеют широкую видимость (visibility), массово перетекают в архитектуры, метаданные таблиц, многомерные (OLAP) структуры, экранные формы, бизнес-метрики и превалируют в отчетности.
Перейдем к практике. В SAP PowerDesigner бизнес-термины создаются в модели требований (Requirements Model, RQM), на которые затем можно ссылаться в логической модели данных (LDM), физической модели данных (PDM) и других моделях. Если использовать репозиторий, то, например, в PDM при задании наименований полям таблиц, при вводе первых трех букв будут предлагаться термины из глоссария (настраиваемая опция).
Базовый набор свойств термина весьма бедный, но если воспользоваться возможностью расширения модели (Extension), то можно (нужно!) кастомизировать термины для утилитарного применения. Непосредственно в модели RQM создадим расширение,
внутри которого добавим метакласс GlossaryTerm.
Этот метакласс будет оказывать влияние на термины глоссария, поэтому создадим необходимые дополнительные атрибуты. В реальном проекте я запустил в дело следующие поля:
- • Аббревиатура;
- • Синоним / перевод /предыдущее наименование;
- • Альтернативная или предыдущая аббревиатура;
- • Web-ссылка на описание термина (официальный или авторитетный внешний ресурс, где опубликовано подробное описание, положение и т.п.);
- • Предметная область 1 (таксономия бизнеса, обязательное поле, выбор из списка);
- • Предметная область 2 (термин может подпадать под несколько категорий, выбор из того же списка);
- • Предметная область 3 (термин может подпадать под несколько категорий, выбор из того же списка);
- • Распространенность термина (обязательное поле, выбор из списка: Общепринятый или Внутрикорпоративный).
Чтобы отобразить дополнительные поля на форме-карточке термина, переопределим форму General, воспользовавшись конструктором форм.
В результате должна получиться вот такая форма для заполнения:
Ну и поскольку не все пользователи захотят / имеют возможность описывать новые или актуализировать существующие деловые термины в системе SAP PowerDesigner, то они могут делать это в привычной им среде - Microsoft Excel. Описания и характеристики терминов позволяется импортировать / обновить из таблицы Excel посредством разработанного программного метода, который должен быть включен в контекстное меню.
Вот так метод выглядит в действии:
И собственно исходный код метода:
------------------------------------------------------------------------------
Sub %Method%(obj) Dim model Dim trm Dim trmNew Dim objExcel Dim wBook Dim ExcelFileFullName Dim fso Dim okSearch Dim i, termCode, termComm, WhatDo Set model = ActiveModel ' Current active model If (model Is Nothing) Then MsgBox "Прежде необходимо открыть модель требований (RQM)" Exit sub Else If Not model.IsKindOf(PdRQM.cls_Model) Then MsgBox "Текущая модель НЕ является моделью требований (RQM)" Exit sub End if End If ExcelFileFullName = TRIM(InputBox("Введите полное (включая путь) имя Excel-файла с описаниями полей и таблиц. Шаблон вида:" & vbNewLine & vbNewLine _ & "В первой строке 1-го листа Excel - наименования столбцов (наименования могут быть произвольными), в следующих строках:" & vbNewLine _ & "1-ый столбец - Бизнес-термин" & vbNewLine _ & "2-ой столбец - Описание термина" & vbNewLine _ & "3-ий столбец - Web-ссылка на описание термина" & vbNewLine _ & "4-ый столбец - Аббревиатура" & vbNewLine _ & "5-ый столбец - Cиноним, перевод или предыдущее наименование" & vbNewLine _ & "6-ой столбец - Альтернативная или предыдущая аббревиатура" & vbNewLine _ & "7-ой столбец - Предметная область 1" & vbNewLine _ & "8-ой столбец - Предметная область 2" & vbNewLine _ & "9-ый столбец - Предметная область 3" & vbNewLine _ & "10-ый столбец - Распространенность термина (Общепринятый или Внутрикорпоративный)" & vbNewLine & vbNewLine )) IF ExcelFileFullName = "" Then Exit sub End If Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(ExcelFileFullName) Then Else MsgBox "НЕ существует файла " & ExcelFileFullName Exit sub End If WhatDo = MsgBox("Импортировать термины:" & vbNewLine & vbNewLine _ & "ДА - добавить как новые термины" & vbNewLine _ & "НЕТ - заместить, обновить описаниями из файла" , 4 + 32, "") Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set wBook = objExcel.Workbooks.Open(ExcelFileFullName) For i = 2 To 64000 If TRIM(wBook.Sheets(1).Cells(i, 1)) = "" Then Exit For ' выход из цикла, если закончился список полей в Excel-файле End if termCode = TRIM(wBook.Sheets(1).Cells(i, 1).Value) termComm = TRIM(wBook.Sheets(1).Cells(i, 2).Value) okSearch = False For Each trm In model.Glossary If UCase(termCode) = UCase(TRIM(trm.Code)) Then okSearch = True Exit For End if Next If WhatDo = 7 AND okSearch Then output "Обновление: " & trm.Code & " ----Комментарий: " & trm.Comment trm.SetAttribute "Comment", termComm trm.SetExtendedAttribute "URL", TRIM(wBook.Sheets(1).Cells(i, 3).Value) trm.SetExtendedAttribute "abbreviation", TRIM(wBook.Sheets(1).Cells(i, 4).Value) trm.SetExtendedAttribute "synonym", TRIM(wBook.Sheets(1).Cells(i, 5).Value) trm.SetExtendedAttribute "abbreviation_alter", TRIM(wBook.Sheets(1).Cells(i, 6).Value) trm.SetExtendedAttribute "key_phrase_1", TRIM(wBook.Sheets(1).Cells(i, 7).Value) trm.SetExtendedAttribute "key_phrase_2", TRIM(wBook.Sheets(1).Cells(i, 8).Value) trm.SetExtendedAttribute "key_phrase_3", TRIM(wBook.Sheets(1).Cells(i, 9).Value) trm.SetExtendedAttribute "term_spread", TRIM(wBook.Sheets(1).Cells(i, 10).Value) ElseIf WhatDo = 6 AND okSearch = False Then output "Новый: " & termCode Set trmNew = model.Glossary.CreateNew() trmNew.Code = termCode trmNew.Name = termCode trmNew.Comment = termComm trmNew.SetExtendedAttribute "URL", TRIM(wBook.Sheets(1).Cells(i, 3).Value) trmNew.SetExtendedAttribute "abbreviation", TRIM(wBook.Sheets(1).Cells(i, 4).Value) trmNew.SetExtendedAttribute "synonym", TRIM(wBook.Sheets(1).Cells(i, 5).Value) trmNew.SetExtendedAttribute "abbreviation_alter", TRIM(wBook.Sheets(1).Cells(i, 6).Value) trmNew.SetExtendedAttribute "key_phrase_1", TRIM(wBook.Sheets(1).Cells(i, 7).Value) trmNew.SetExtendedAttribute "key_phrase_2", TRIM(wBook.Sheets(1).Cells(i, 8).Value) trmNew.SetExtendedAttribute "key_phrase_3", TRIM(wBook.Sheets(1).Cells(i, 9).Value) trmNew.SetExtendedAttribute "term_spread", TRIM(wBook.Sheets(1).Cells(i, 10).Value) End if Next Set trm = Nothing Set trmNew = Nothing wBook.Close ' обязательно осовбождаем ресурсы при завершении процедуры Set objExcel = Nothing ' обязательно осовбождаем ресурсы при завершении процедуры MsgBox "Завершен импорт терминов из файла " & ExcelFileFullName End Sub