none
Странное поведение форм Запроса на обслуживание SCSM2012 RRS feed

  • Вопрос

  • Добрый день коллеги!

    Прошу помочь с такой странностью:

    создал МП с кастомной формой, импортирую, создал шаблон на его основе, создал заявку на основе этого шаблона, все нормально, а вот когда публикую Предложение запросов форма в отрытой заявке странным образом меняется


    • Изменено _CoopeR_ 15 марта 2013 г. 5:09
    13 марта 2013 г. 11:52

Ответы

  • Действительно странно.

    А попробуйте, не меняя вкладок на исходной форме, создать новую, дополнительную вкладку и уже в неё добавлять кастомные поля. Я так делаю. И форму сверстать проще и красивее результат ;).

    Примерно так:

    • Изменено Dismantled 15 марта 2013 г. 7:30
    • Предложено в качестве ответа Dismantled 15 марта 2013 г. 7:33
    • Помечено в качестве ответа _CoopeR_ 18 марта 2013 г. 11:26
    15 марта 2013 г. 7:25

Все ответы

  • Картинка не кликабельна, что-то либо разобрать невозможно.

    SCSMSolutions
    email: freemanru (at) gmail (dot) com

    14 марта 2013 г. 13:59
    Модератор
  • поправил картинку, если неразборчиво, то перелью куда нибудь, смысл в том что появляется разница между шаблоном и формой уже созданной заявки, некоторые поля исчезают, если создать заявку не через портал а из консоли то вроде как теряющиеся поля все присутствуют но значения в них не сохраняются
    15 марта 2013 г. 5:13
  • Действительно странно.

    А попробуйте, не меняя вкладок на исходной форме, создать новую, дополнительную вкладку и уже в неё добавлять кастомные поля. Я так делаю. И форму сверстать проще и красивее результат ;).

    Примерно так:

    • Изменено Dismantled 15 марта 2013 г. 7:30
    • Предложено в качестве ответа Dismantled 15 марта 2013 г. 7:33
    • Помечено в качестве ответа _CoopeR_ 18 марта 2013 г. 11:26
    15 марта 2013 г. 7:25
  • Интересная мысль, надо попробовать
    15 марта 2013 г. 7:35
  • А я вот как-то сразу и не обратил внимания, т. к. у меня была включена английская локализация СМКонсоли - а кастомная форма не цепляет русификацию :( почему-то. Это можно как-то пофиксить?



    • Изменено Dismantled 15 марта 2013 г. 9:53
    15 марта 2013 г. 9:39
  • Почитал тут:

    http://blogs.technet.com/b/servicemanager/archive/2010/02/25/localizing-forms-service-request-example.aspx

    Не совсем понятно, что в этой статье предлагается сделать? Локализовать существующую форму? Зачем, если она уже локализована? Просто в кастомной форме существующая локализация по каким-то причинам не подцепляется системой.

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

    Кто-нибудь может пояснить? Нужно просто чтобы локализация цеплялась в кастомную форму. Консоль SCSM при этом на русском. Авторинг Тул тоже на русском. Быть может, проблема в том, что форма изначально в авторинг туле открывается с английской локализацией? 

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

    Попробовал Консоль СМ переключить на английский - английская локализация тоже по-человечески не цепляется в кастомной форме. Всё равно остаются эти скобочки из макета - "[ General ]"

    16 марта 2013 г. 10:00
  • А у вас новая форма для нового класса или просто кастомизация существующего класса? Если второе, то это очень странно.

    SCSMSolutions
    email: freemanru (at) gmail (dot) com

    16 марта 2013 г. 15:41
    Модератор
  • Это форма нового класса, наследованного от класса "Запрос на обслуживание". Форма загружается вручную через "Добавить настраиваемую" в Авторинг туле. Подгружается из .\Library\ServiceRequest в Авторинг туле.

    Буквально только что обнаружил интересную особенность. Форма всё же частично подцепляет русский язык. Например, вкладка Related Items полностью русифицировалась, кроме собственного названия.

    Провёл аналогию с оригинальным макетом в Авторинге - русифицировалось то, что изначально не заключено в []!

    Просто чудеса. Индусы жгут :).

    16 марта 2013 г. 16:28
  • Если это свой класс, тогда ничего странного. Найдите изначальную форму и скопируйте из неё секцию FormStrings в свою форму. После этого добавьте ссылку на пакет с изначальной формой (SRLibrary! например)

    ЗЫ Она не "подцепляет русский". Она у вас просто не локализована. Строки в квадратных скобках - это значение по умолчанию просто.


    SCSMSolutions
    email: freemanru (at) gmail (dot) com

    16 марта 2013 г. 16:34
    Модератор
  • Антон, а можете немного подробнее описать последовательность действий?

    Изначальную форму я подгружаю из Microsoft.EnterpriseManagement.ServiceManager.Applications.ServiceRequest.Forms.dll. Потом мой МП, уже с модифицированной формой сохраняется в один единственный ХМЛ, в который я добавляю TypeProjection. Затем этот ХМЛ и Вашу замечательную утилиту "MPBundle" кидаю в папку .\Library\ServiceRequest где лежит исходная ДЛЛка с формой. Бандлю и импортирую готовый МПБ в СМ.

    Где же найти эту изначальную форму, если она запечатана в ДЛЛ?

    16 марта 2013 г. 16:59
  • Вот мой МП.

    https://skydrive.live.com/redir?resid=DD4BD3AD28241F53!163

    Вставил FormStrings из импортированного оригинала.

    Поменял ElementID на ссылку по http://blog.scsmsolutions.ru/2011/09/howto-rename-object-in-scsm/

    Ошибка при импорте

    Ошибка импорта пакета управления. 
    Ошибки (1):
    Не удалось добавить элемент с идентификатором ID={0} и Type={1}. Эта коллекция уже содержит элемент с таким идентификатором.
    : Не удалось добавить элемент с идентификатором ID=[ManagementPackElement=System.WorkItem.ServiceRequest.Library in ManagementPack:[Name=System.WorkItem.ServiceRequest.Library, KeyToken=31bf3856ad364e35, Version=7.5.2905.0]] и Type=DisplayString. Эта коллекция уже содержит элемент с таким идентификатором.

    что не так поменял-недоменял?

    18 марта 2013 г. 13:15
  • Что-то вы очень странное сделали )

    Вам надо было только скопировать секцию FormStrings из оригинальной формы (это вы вроде сделали верно), но при этом добавить ссылка на пакет управления. Вы этого не сделали.

    К примеру:

    $MPElement[Name="ServiceManager.ServiceRequest.Library.StringResource.Forms.ActivityStageText"]$

    Т.к. элемент ServiceManager.ServiceRequest.Library.StringResource.Forms.ActivityStageText находится в другом пакете (там, где определена основная форма, это пакет ServiceManager.ServiceRequest.Library), вам надо добавить ссылку на пакет. Для этого загляните в секцию Reference, там есть ссылки на пакеты. В вашем случае ссылка на ServiceManager.ServiceRequest.Library отсутствует. Соответственно вам надо её добавить, а потом изменить все $MPElement.... н-р так:

    <!-- вставлен только значимый код -->
    <!-- Добавляем в секцию References -->
          <Reference Alias="ServiceRequestLibrary">
            <ID>System.WorkItem.ServiceRequest.Library</ID>
            <Version>7.5.2905.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
    
    <!-- Изменяем все MPElement, вставляем ServiceRequestLibrary! (см. Alias выше) -->
              <FormString ID="ActivityStageText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ActivityStageText"]$</FormString>

    Секцию LanguagePacks\DisplayStrings вените к первоначальному виду, у вас там всё не верно ))

    SCSMSolutions
    email: freemanru (at) gmail (dot) com

    • Предложено в качестве ответа Dismantled 18 марта 2013 г. 17:46
    18 марта 2013 г. 15:55
    Модератор
  • Антон, даже не знаю, как Вас благодарить :))! Всё получилось!

    Добавил:

    <Reference Alias="SMLibrary">
    	<ID>ServiceManager.ServiceRequest.Library</ID>
    	<Version>7.5.2905.0</Version>
    	<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
    </Reference>

    И во всех строках String прописал:

    <FormString ID="ActivityStageText">$MPElement[Name="SMLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ActivityStageText"]$</FormString>

    Форма волшебным образом преобразилась :)!
    18 марта 2013 г. 17:45
  • всем привет,

    столкнулся с такой же проблемой, сделал также, сначала алиас:

       <Reference Alias="ServiceRequestLibrary">
            <ID>System.WorkItem.ServiceRequest.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>

    затем строки под секцией <Customization>

    <FormStrings>
              <!--Banner-->
              <FormString ID="ActivityStageText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ActivityStageText"]$</FormString>
              <FormString ID="CreatedOnText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.CreatedOnText"]$</FormString>
              <FormString ID="RequestOfferingText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.RequestOfferingText"]$</FormString>
              <!--General Tab-->
              <FormString ID="GeneralText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.GeneralText"]$</FormString>
              <FormString ID="ServiceRequestInformationText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ServiceRequestInformationText"]$</FormString>
              <FormString ID="AffectedUserText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.AffectedUserText"]$</FormString>
              <FormString ID="UserPickerText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.UserPickerText"]$</FormString>
              <FormString ID="AlternateContactMethodText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.AlternateContactMethodText"]$</FormString>
              <FormString ID="TitleText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.TitleText"]$</FormString>
              <FormString ID="DescriptionText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.DescriptionText"]$</FormString>
              <FormString ID="ComboboxText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ComboboxText"]$</FormString>
              <FormString ID="UrgencyText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.UrgencyText"]$</FormString>
              <FormString ID="PriorityText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.PriorityText"]$</FormString>
              <FormString ID="SourceText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.SourceText"]$</FormString>
              <FormString ID="AreaText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.AreaText"]$</FormString>
              <FormString ID="SupportGroupText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.SupportGroupText"]$</FormString>
              <FormString ID="AssignedToText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.AssignedToText"]$</FormString>
              <FormString ID="UserInputText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.UserInputText"]$</FormString>
              <FormString ID="ActionLogText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ActionLogText"]$</FormString>
              <FormString ID="CommentText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.CommentText"]$</FormString>
              <FormString ID="AddText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.AddText"]$</FormString>
              <FormString ID="ExpandAllText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ExpandAllText"]$</FormString>
              <FormString ID="CollapseAllText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.CollapseAllText"]$</FormString>
              <FormString ID="LogEntryText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.LogEntryText"]$</FormString>
              <FormString ID="CreatedByText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.CreatedByText"]$</FormString>
              <FormString ID="DateTimeText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.DateTimeText"]$</FormString>
              <FormString ID="PrivateText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.PrivateText"]$</FormString>
              <!--Activities Tab-->
              <FormString ID="ActivitiesText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ActivitiesText"]$</FormString>
              <!--Results Tab-->
              <FormString ID="ResultsText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ResultsText"]$</FormString>
              <FormString ID="ImplementationDetailsText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ImplementationDetailsText"]$</FormString>
              <FormString ID="ImplementationResultsText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ImplementationResultsText"]$</FormString>
              <FormString ID="ImplementationNotesText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.ImplementationNotesText"]$</FormString>
              <FormString ID="EstimatedTimeToCompletionText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.EstimatedTimeToCompletionText"]$</FormString>
              <!--RelatedItems Tab-->
              <FormString ID="RelatedItemsText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.RelatedItemsText"]$</FormString>
              <!--SLA Tab-->
              <FormString ID="TabItem_RelatedSLA">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.TabItem_RelatedSLA"]$</FormString>
              <!--History Tab-->
              <FormString ID="HistoryText">$MPElement[Name="ServiceRequestLibrary!ServiceManager.ServiceRequest.Library.StringResource.Forms.HistoryText"]$</FormString>
            </FormStrings>

    сохранил, сделал бандл, импортировал без проблем, но при создании шаблона этого класса производного от сервис реквеста все равно стоят заглушки вида [Tab]

    30 июля 2014 г. 12:46