Начать. Это бесплатно
или Регистрация c помощью Вашего email-адреса
Rocket clouds
Win plan создатель Mind Map: Win plan

1. Services

1.1. +DcmManagerService.cs : Service

1.1.1. ContractDcmSchema.cs

1.1.1.1. +Get

1.1.1.2. +Save

1.1.1.3. +DcmSchemaResponse.cs

1.1.1.4. +DcmSchemaRequest.cs

1.1.2. (21) +BaseProcessSchemaDesigner.cs

1.1.2.1. +DcmSchemaDesigner.cs

1.1.2.2. Рефакторинг

1.1.2.2.1. m ReleaseLocalizableValues

1.1.2.2.2. m ApplyResources

1.1.2.2.3. m CheckUniqueSchemaNameInManager

1.1.2.2.4. m CheckUniqueSchemaNameInPackage

1.1.2.2.5. m protected FindExistingSchemaManagerItem

1.1.2.2.6. m protected GetExistingManagerItem

1.1.2.2.7. m protected CreateManagerItem

1.1.2.2.8. m protected GetParentUId

1.1.2.2.9. m protected SaveSchema

1.1.2.2.10. m protected ValidateSchema

1.1.2.2.11. m public Save(ContractProcessSchema schema, ProcessSchemaResponse response)

1.1.3. Сервис

1.1.3.1. +f ILog _logger

1.1.3.2. +UserConnection

1.1.3.3. +DcmSchemaManager

1.1.3.4. +m public SchemaResponse<ContractDcmSchema> Post(DcmSchemaRequest request) {

1.1.3.5. ~m GetReadableMetaDataText(MetaSchema schema, ISchemaManager manager)

1.1.3.6. ~m GetSchemaResources(Schema schema,    bool useCurrentCultureResourcesOnly = false)

1.2. ProcessSchemaManagerService.cs

1.2.1. (сделаем позже) +BaseProcessSchemaManagerService.cs

1.2.1.1. -GetUniqueNameAndCaption

1.2.1.2. -GetSchemasByFilter(PackageUId, ManagerName, UseExtendParent, ExcludedSchemas)

1.2.1.3. -Copy

1.2.1.4. -Delete(На продакшине не используется)

1.2.1.5. -Export

1.2.1.6. -CheckHasNoForeignLock

1.2.1.7. -GetInvalidElements

1.2.1.8. ? GetProcessActivityResultsLookupGridData

1.3. ProcessModuleUtilities.js(Будем использовать)

1.4. (21) Не допустить проблему с разными форматами серверных и клиентских ресурсов

2. Server

2.1. DcmSchema.cs

2.1.1. BaseProcessSchema.cs

2.1.2. Stages

2.1.2.1. BaseProcessSchemaElement.cs

2.1.2.2. +IsAlternate

2.1.2.3. +Order

2.1.2.4. +InnerOrder

2.1.2.5. +Color

2.1.3. Elements -FlowElements

2.1.3.1. DcmSchemaElement.cs(Wrapper)

2.1.3.1.1. BaseProcessSchemaElement.cs

2.1.3.1.2. PRIVATE ProcessSchemaFlowElement

2.1.4. ? -Удалить Mappings

2.1.5. +StageConditions

2.1.5.1. +DcmSchemaStageCondition

2.1.5.1.1. +StageUId

2.1.5.1.2. +DestinationStages - List<Guid>

2.1.6. +ElementConditions

2.1.6.1. +DcmSchemaElementCondition

2.1.7. +IsActive

2.1.8. +EntitySchemaUId

2.1.9. +StageColumnUId

2.2. +SysSchemaUserProperty

3. Client

3.1. Designer

3.1.1. DcmSchemaDesignerViewModel.js

3.1.1.1. base-process-schema-designer-view-model.js

3.1.1.2. +m save

3.1.2. +DcmSchema.js

3.1.2.1. +stages аля process-schema.lanes

3.1.2.1.1. DcmStages.js

3.1.2.2. +elements

3.1.2.2.1. Ключом будет UId не Name

3.1.2.3. + m public getFlowElements()

3.1.2.4. +stageConditions

3.1.2.5. +elementConditions

3.1.2.5.1. не добавляем

3.1.2.6. -mappings

3.1.2.6.1. ? Грумминг

3.1.2.7. +base-process-schema.js(Рефакторинг)

3.1.2.7.1. Разносим тесты по файлам

3.1.2.8. +методы по сериализации

3.1.2.9. Не допустить проблему с разными форматами серверных и клиентских ресурсов

3.1.2.9.1. ? Грумминг

3.1.3. +DcmSchemaManager.js

3.1.3.1. При сохранении всей DcmSchema говорим DataManager.save()

3.1.3.2. +DcmSchemaManagerItem.js

3.1.3.3. +DcmSchemaRequest

3.1.3.4. +DcmSchemaResponse

3.1.3.4.1. +m initPropertyValue

3.1.3.5. +m public copy

3.1.4. (13) +DcmSchemaElement.js(аля Wrapper)

3.1.4.1. +BaseProcessSchemaElement.js

3.1.4.1.1. +containerUId

3.1.4.1.2. +typeName

3.1.4.1.3. +parentSchema

3.1.4.1.4. base-schema.js аналог meta-item.js

3.1.4.2. +p INTERNAL processFlowElement

3.1.4.2.1. PRIVATE НЕ ПОЛУЧИТСЯ ИЗ-ЗА КАРТОЧЕК РЕДАКТИРОВАНИЯ

3.1.4.2.2. Что делать со свойством processElement.processSchema

3.1.4.2.3. Нужен рефакторинг ProcessMappingPage и его модулей?

3.1.4.3. +m Сериализация/Десериализация

3.1.5. +DcmElementSchemaManager.js

3.1.5.1. +DcmElementSchemaManagerItem.js

3.1.5.1.1. ActivityUserTask

3.1.5.2. +BaseProcessFlowElementSchemaManager(Рефакторинг) - миксин?

3.1.5.2.1. serviceTaskElementNames

3.1.5.2.2. notImplementedElementNames

3.1.5.2.3. itemsInitialConfigs

3.1.5.2.4. m getIsElementNotImplemented

3.1.5.2.5. m getItemByType

3.1.5.2.6. m initialize

3.1.5.2.7. m getInstanceConfig

3.1.5.2.8. m createInstance

3.1.5.2.9. m clear

3.1.5.2.10. m getIsEmailElement

3.1.5.3. +dbo.SysDcmProcessUserTask

3.1.5.3.1. +SchemaUId

3.1.5.3.2. +Position

3.1.5.4. +DcmUserTaskSchemaManager.js

3.1.5.4.1. наследник ProcessUserTaskSchemaManager

3.1.5.5. Что с тестами, разносим после рефакторинга?

3.1.5.5.1. Разносим

3.1.6. +DcmSchemaStage.js

3.1.6.1. BaseProcessSchemaElement.js

3.1.6.2. +Альтернативная стадия

3.1.6.3. +Индекс

3.1.6.4. +Альтернативный индекс

3.1.6.5. +Цвет

3.1.6.6. +m Сериализация/Десериализация

3.1.7. +DcmSchemaStagesControl.js

3.1.7.1. Доработки

3.1.7.1.1. + 3 Вынести в конфу

3.1.7.1.2. Быстродействие при перемещении - если использовать MOVE вставка в дом идет в другую позицию

3.1.7.1.3. Дроп стадии работает только при наведении на заголовок другой стадии

3.1.7.1.4. При перемещении DcmStageElement-a дергается оранжевая дроп полосочка

3.1.7.2. Добавить описание как реализован контрол

3.1.7.2.1. Саша Дудка и Дима Крестов опишут

3.1.8. +DcmSchemaDesigner.js

3.1.8.1. Встроить DcmStages в дизайнер кейсов

3.1.8.1.1. Встроить

3.1.8.1.2. Реализовать пункт меню у stage - три точки + логика пунктов меню (удаление)

3.1.8.1.3. Реализовать выбор стадии из справочника стадий при добавлении

3.1.8.1.4. Перемещение альтернативных стадий

3.1.8.2. Один загрузчик дизайнера на все типы схем

3.1.8.2.1. завести таску

3.1.8.3. (38) Встроить DcmStageElement в дизайнер кейсов

3.1.8.3.1. Байдинг как на демке контрола

3.1.8.3.2. Синхронизация контрола и DcmSchema

3.1.8.3.3. (23) Добавление элемента

3.1.8.3.4. Удаление элемента

3.1.8.4. +actions

3.1.8.4.1. (21) +Copy Schema

3.1.8.5. Низкая скорость загрузки - разработки

3.1.8.5.1. Грумминг

3.1.9. (39) +DcmSchemaStagePropertiesPage.js

3.1.9.1. При клике на stage открывать карточку

3.1.9.2. (21) Карточка + возможность указать переходы между стадиями

3.1.9.3. (13) Изменение заголовка стадии в справочнике

3.1.9.3.1. DataManager.js

3.1.10. (11) +DcmActivityUserTaskPropertiesPage.js

3.1.10.1. Добавить Dcm page в дизайнер UserTask-ов

3.1.10.2. Сделать все override в миксине

3.1.10.2.1. +atr "DcmElement"

3.1.10.2.2. +over saveValues

3.1.10.2.3. +over onElementDataLoad(element, callback, scope)

3.1.11. (13) +DcmSchemaPropertiesPage.js

3.1.11.1. ProcessProreties(Рефакторинг)

3.1.11.1.1. BaseProcessSchemaPropertiesPage

3.1.11.1.2. DcmSchemaPropertiesPage

3.1.12. (21) +DcmEntityColumnsMappingPage

3.1.12.1. Встроить в окно маппинга

3.1.12.2. Еще можно наверное поменять название атрибута "ProcessSchema" в схеме ProcessMappingPage.js. И в его наследнике ProcessParameterSelectionPage.js И событие "GetProcessSchema"

3.2. RunTime

3.2.1. ProgressBar

3.2.1.1. BasePageV2

3.2.1.1.1. (13) +DcmStagesContainer

3.2.1.1.2. +CanManageDcm

3.2.1.2. (21) SectionActionsDashboard.js

3.2.1.2.1. ~initDashboardConfig

3.2.1.3. Привязка к разделу

3.2.1.3.1. 5 +dbo.SysModuleDcmSettings(бывшая SysDcmSettings)

3.2.1.3.2. 5 +dbo.VwSysDcmLib

3.2.1.4. +Terrasoft.configuration.ModuleEntityDcmStructure

4. Delivery

4.1. (21) Конвертация справочника в DcmSchema при первом входе в дизайнер кейсов

4.1.1. Передать через url в дизайнер имя справочника переходов по стадиям

4.1.1.1. +DcmSchemaUpdateHelper.js

4.2. Скрипт деактивации коробочных DcmSchema

4.2.1. По умолчанию все новые DcmSchem-ы 7.8 будут активны

4.2.2. При обновлении до 7.8  в сценарий обновления добавим скрипт деактивации коробочных дсм схем

4.3. Важно! Как отключить старые процессы по кейсам?

5. Аккордеон CRM-35286

5.1. Page parameters

5.1.1. New parameter

5.1.2. Existing parameter

5.1.2.1. +ExistingParameterDraggableItems

5.2. Page elements

5.2.1. Elements

5.2.2. Widgets

5.3. this.dataModelCollection

5.3.1. EntitySchemaManager.getPackageInstance()

5.3.1.1. ClientUnitSchema

5.3.1.2. Entity0(Primary)

5.3.1.2.1. New column

5.3.1.2.2. Existing column

5.3.1.3. EntityN

5.3.1.4. Заливка D.Krestov

5.3.1.4.1. В dataModelCollection сейчас попадает только primary entitySchema, из dataModels ничего не попадает

5.3.2. ColumnGridLayoutEditItemModel

5.3.2.1. this.designSchema

5.4. CurrentDataModel

5.4.1. Сделать так чтобы ClientUnitSchema могла cсуществовать вместе с dataModelCollection

5.4.1.1. Сломалась

5.4.1.1.1. Автонумерация новых параметров

5.4.1.1.2. Подсветка используемых колонок на странице

5.4.1.1.3. Удаление параметров

5.4.1.1.4. Переименование

5.4.1.1.5. UsedColumns

5.4.1.1.6. Не добавляется Widgets

5.4.1.1.7. Автонумерация существующих парметров при добавлении на стрницу

5.4.1.1.8. PageDesigner

5.5. Add data source

5.5.1. Карточка

5.5.2. Генерация в схеме блока DataModels

5.6. Фиксированный скролл

5.6.1. Зафиксировать высоту лефт контейнера

5.7. Схлопывание/Расхлопывание

5.7.1. Переключать CurrentDataModel

5.8. Верстка

5.8.1. Хидер для контрол групп

5.8.1.1. Иконка

5.8.1.2. Расхлопывание справа

5.8.2. Убрать рамку для DraggbleItems

5.9. Пофиксить все TODO

5.10. Ctrl+S в мастере

5.11. План на 20.03.2018

5.11.1. Верстка аккордеона

5.11.1.1. Кнопочка добавть внизу

5.11.1.2. скролл

5.11.1.3. Заголовки групп локализировать

5.11.1.4. Иконки для котрол групп слева

5.11.1.5. Убрать TODO

5.11.2. Починить удаление параметров

5.11.3. Починить автогенерацию имен при добавлении на диаграмму существующих элементов

5.11.4. Добавление виджетов

5.11.5. Рефакторинг PageElements

5.11.6. Рефаторинг _initDataModels

5.11.7. Реализовать поведение кнопочки AddDataModel

5.12. План на 22.03.2018

5.12.1. Сломалось восстановление параметров для PageDesigner

6. SectionWizard

6.1. ContactPageV2(на tsagent-ах)

6.1.1. 1е-открытие

6.1.1.1. 30сек

6.1.2. 2е-открытие

6.1.2.1. 13сек

6.1.3. Получение ресурсов по сети

6.1.3.1. 5-7сек

6.1.4. onScriptLoadCompleate

6.1.4.1. 2 сек

6.1.5. Переход по вкладкам Page-MiniPage-Rules 5-6сек

6.1.5.1. в основном это время на повторную инициализцию ViewModelSchemaDesignerSchema и рендеринг, на сервер почти не обращаемся

6.1.5.1.1. chain keepAlive?

6.1.6. Сохранение

6.1.6.1. Сохранение изменений

6.1.6.2. Билд МФС

6.1.6.2.1. Предлагаю выполнять его в фоне

6.1.7. Ресерч

6.1.7.1. 1. Перейти на протокол HTTP/2

6.1.7.2. 2. Отложенная загрузка картинок(забивают канал)

6.1.7.2.1. Частично реализовано, есть нюансы

6.1.7.3. 3. Перейти на бандлирование

6.1.7.3.1. Протестировано, даёт существенный эффект при повторном открытии, выиграш +/-5 сек

6.1.7.4. 4. Отключить загрузку ej-common-all (2.3s) сkeditor(300ms парсинг)

6.1.7.5. 5. Promise.all где это возможно

6.1.7.5.1. Сделано, дало незначительный прирост в пару секунд

6.1.7.6. 6. Долго инициализируются клиентские менеджеры. Как тупой вариант использовать менеджер из window.opener.Terrasoft.ClientUnitSchema...

6.1.7.6.1. Оптимизировать запрос

6.1.7.6.2. Закешировать запрос на клиенте

6.1.7.6.3. Закешировать запрос на сервере

6.1.7.6.4. Основная идея - один менеджер на весь домен(открытые вкладки) приложений

6.1.7.6.5. 2 сек на ClientUnitSchemaManager 1.5 сек на EntitySchemaManager, 1 сек DcmSchemaManager

6.1.7.7. 7. Дата менеджеры нельзя инициализировать посредством BatchQuery. и Зачем они нужны в момент загрузки? Они забивают канал

6.1.7.7.1. 2 сек

6.1.7.8. 8. Получения профиля повторяется несколько раз на загрузке страницы

6.1.7.8.1. Вся работа с профилем самого мастера переведена на localstore

6.1.7.9. 9. Ускорить получение CurrentPackageuId

6.1.7.10. 10. Убрать из entitySchemaManager.js вызов сервиса получения макс длины имени колонки getMaxEntitySchemaNameLength

6.1.7.10.1. 1сек

6.1.7.11. 11. Переделать checkSchemasOnForeignLock, вызывать асинхронно (edited)

6.1.7.11.1. Сделано

6.1.7.12. 12. Закешировать PackageHierarchy на клиенте в store

6.1.7.13. 13. Переделать инициализацию заголовков деталей, сейчас берутся инстансы всех деталей по иерархии, пока что переделал на асинхронный запрос

6.1.7.13.1. Вызов переделан на асинхронный, выиграш небольшой

6.1.7.14. 14. DesignEnitySchemaRequest по одному и тому же объекту раздела происходит трижды

6.1.7.14.1. 0.5 - 1 сек

6.1.7.15. 15. all-combined.less

6.1.7.15.1. 0.5 сек

6.1.7.16. 16. Билд PageSchema в карент пакете для мастера, если она еще не создана

6.1.7.17. 0. Открывать SectionWizard в том же окне что и страница

6.1.7.17.1. Сходу не получилось это сделать

6.2. Наша цель

6.2.1. Переход в мастер на вкладку Section за 6 сек

6.2.1.1. 10. Убрать из entitySchemaManager.js вызов сервиса получения макс длины имени колонки getMaxEntitySchemaNameLength

6.2.1.1.1. 1сек

6.2.1.1.2. Закешировать в

6.2.1.2. 9. Ускорить получение CurrentPackageuId

6.2.1.3. 6. Долго инициализируются клиентские менеджеры. Как тупой вариант использовать менеджер из window.opener.Terrasoft.ClientUnitSchema...

6.2.1.3.1. Оптимизировать запрос

6.2.1.3.2. Закешировать запрос на клиенте

6.2.1.3.3. Закешировать запрос на сервере

6.2.1.3.4. Основная идея - один менеджер на весь домен(открытые вкладки) приложений

6.2.1.3.5. 2 сек на ClientUnitSchemaManager 1.5 сек на EntitySchemaManager, 1 сек DcmSchemaManager

6.2.1.3.6. Переключить базовый менеджер на SysSchema вместо VwSysSchemaInWorkspace

6.2.1.3.7. Сжимать response от SelectQuery, доходит до 1.2MB на бандлах

6.2.1.3.8. Кешировать DataTable сразу после инициализации серверного SchemaManager, все нужные данные имеются

6.2.1.4. Дергаются системные настройки котрых нет в приложении

6.2.1.5. Возможность полностью отключить использование профиля SchemaBuilderV2.initSchemaProfile

6.2.1.6. Включить и настроить статическое и динамическое сжатие запросов на IIS

6.2.1.7. Закешировать настройку SchemaNamePrefix

6.2.1.7.1. SectionMainSettings.setCodePrefix

6.2.2. Ускорить переходы по вкладкам мастера (Section-Page-MiniPage-Cases)

6.2.2.1. ViewModelSchemaDesignerSchema.init происходит дважды

6.2.2.2. 14. DesignEnitySchemaRequest по одному и тому же объекту раздела происходит трижды

6.2.2.2.1. 0.5 - 1 сек

6.3. Сейчас(bpm'online)

6.3.1. Section

6.3.1.1. без кеша 1 минута

6.3.1.2. кеш 12 сек

6.3.2. Page

6.3.2.1. без кеша 1 минута

6.3.2.2. кеш 20 сек

6.4. Открытие раздела вызывает инициализацию EntitySchemaManager BaseSectionV2.init -> initTags

6.4.1. в ответ приходит респонс на 1MB

7. Dcm