PHP Inside

 
   
 

Главная


Начало
страница1
страница2
страница3
страница4
страница5
страница6
страница7
страница8
страница9
страница10
страница11
страница12
страница13
страница14
страница15
страница16
страница17
страница18
страница19
страница20
страница21
страница22
страница23
страница24
страница25
страница26
страница27
страница28
страница29
страница30
страница31
страница32
страница33
страница34
страница35
страница36
страница37
страница38
страница39
страница40
страница41
страница42
страница43
страница44
страница45
страница46
страница47
страница48
страница49
страница50
страница51
страница52
страница53
страница54
страница55
страница56
страница57
страница58
страница59
страница60
страница61
страница62
страница63
страница64
страница65
страница66
страница67
страница68
страница69
страница70
страница71
страница72
страница73
страница74
страница75
страница76
страница77
страница78
страница79
страница80
страница81
страница82
страница83
страница84
страница85
страница86
страница87
страница88
страница89

 
 
 

 

 

Теперь можно уточнить логику ра­ боты надстройки с учетом особен­ ностей реализации схемы . Для нача­ ла будут рассмотрены этапы сцена­ рия переноса пользователя из отде­ ла А в отдел Б .

¦ Начало операции . Начинает опе­ рацию менеджер по персоналу от­ дела А . Создается объект коман­ ды начала перемещения (UserMove StartMoveCommand). Учетная за­ пись отключается ( состояние disabled), так как теперь он не яв­ ляется членом ни одного отде­ ла и помещается внутрь команды . Поскольку команды не отобража­ ются в стандартных оснастках ( что­ бы отображались , нужно устано­ вить флажок « Show objects of this class while browsing » в свойствах класса ), объект пользователя как бы исчезает . Далее устанавливают­ ся атрибуты объекта класса коман­ ды : целевая организационная еди­ ница ( отдел Б ), инициатор операции


( менеджер по персоналу А ), источ­ ник ( отдел А ), время начала опера­ ции и комментарий для менедже­ ра по персоналу отдела Б ( напри­ мер , «Убедиться , что приказ о пере­ воде уже подписан» ). На этом кли­ ентская часть инициации переме­ щения завершается . Сервер сле­ дит за появлением объектов ко­ манд в организационных едини­ цах . При обнаружении команды на­ чала перемещения создается объ­ ект класса MoveUserChair, куда и помещается пользователь . В кон­ це объект пользователя , упакован­ ный в MoveUserChair, помещается в комнату ожидания целевой ор­ ганизационной единицы Б . Ожидание . Далее для краткос­ ти я буду описывать работу над­ стройки в целом , не разделяя ее на клиентскую и серверную час­ ти . Помните лишь , что менеджер только создает объект команды , всю реальную работу по переме­ щению пользователя выполняет сервер . Пользователь находится в комнате ожидания . Менеджер по персоналу отдела А может от­ менить операцию , просматривая список инициированных им ожида­ний . В этом случае объект пользо­ вателя разблокируется , удаляется из комнаты ожидания и возвраща­ ется в старый отдел . Также правом отмены операции обладает менед­ жер по персоналу отдела Б . Од­ нако здесь поведение надстрой­ ки должно быть несколько иным . Пользователь должен в заблоки­ рованном виде попасть в комнату ожидания своего отдела А , так как окончательное решение теперь уже за менеджером по персоналу организационной единицы А . Си­ туация , когда пользователь «за­ висает» между двумя отделами , вследствие того , что менеджеры по персоналу двух отделов отме­ няют переводы друг друга , явля­ ется нештатной и может быть раз­ решена администраторами более высокого уровня . Завершение операции . Менеджер по персоналу отдела назначения Б подтверждает операцию перевода . Учетная запись пользователя раз­ блокируется , удаляется из комнаты ожидания и попадает в отдел Б .