Объявление

Свернуть
Пока нет объявлений.

В запросе назначение нескольких Ответственных

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • В запросе назначение нескольких Ответственных

    Добрый день!
    Прошу помочь на назначение нескольких ответственных в одном запросе.При выборе Ответственного1-Одного сотрудника оно указывается на Ответственного2 и Ответственного3 $INCLUDE 'shared_functions'
    $INCLUDE 'global_change'
    'создаем папку
    Set objActiveRequest = ActiveSession.GetRequestByUniqueID(ScriptParameter s.userdata)

    Set requests = objActiveRequest.UserFields("LinkedIncidets").TVal ue
    objActiveRequest.UserFields("Comment").Value = CStr(requests.Count)

    message = vbCrLf & "При закрытии скопировано из мастер-запроса №" + CStr(objActiveRequest.UserFields("ID").Value) + ": "

    For Each obj In requests
    If (objActiveRequest.UniqueId <> obj.UniqueId) And (obj.UserFields("State").Value <> "Closed") Then
    If objActiveRequest.UserFields("Comment").Value <> "" Then
    objActiveRequest.UserFields("Comment").Value = message + objActiveRequest.UserFields("Comment").Value
    End If
    obj.UserFields("ShortDescription").Value = obj.UserFields("ShortDescription").Value + " (" + objActiveRequest.UserFields("ShortDescription").Va lue + ")"
    obj.UserFields("ClosureCode").TValue = objActiveRequest.UserFields("ClosureCode").TValue
    obj.UserFields("Solution").Value = obj.UserFields("Solution").Value + message + objActiveRequest.UserFields("Solution").Value
    obj.UserFields("CI").TValue = objActiveRequest.UserFields("CI").TValue
    obj.UserFields("Group").TValue = objActiveRequest.UserFields("Group").TValue
    obj.UserFields("Service").TValue = objActiveRequest.UserFields("Service").TValue
    obj.UserFields("Responsible1").TValue = objActiveRequest.UserFields("Responsible1").TValue
    obj.UserFields("Responsible2").TValue = objActiveRequest.UserFields("Responsible2").TValue
    obj.UserFields("Responsible3").TValue = objActiveRequest.UserFields("Responsible3").TValue
    obj.UserFields("State").Value = "Closed"
    obj.SaveEx 257
    End If

    objActiveRequest.UserFields("ScriptYouCanCloseMe") .Value = True
    objActiveRequest.UserFields("State").Value = "Closed"

    objActiveRequest.UserFields("ScriptYouCanCloseMe") .Value = True
    objActiveRequest.UserFields("State").Value = "Closed"
    Else

    'сохраняем объект
    objActiveRequest.SaveEx 257
    'открываем объект
    PerformAction.OpenObject objActiveRequest, False, True
    End Sub

    ' процедура, вызываемая по кнопке отклонения выполнения запроса НЕТ
    Sub request_cancellation
    'получаем объект по UniqueID
    Set objActiveRequest = ActiveSession.GetRequestByUniqueID(ScriptParameter s.userdata)

    If objActiveRequest.UserFields("CountNotAccept").Valu e = 1 Then

    objActiveRequest.UserFields("Responsible1").Value = ""
    objActiveRequest.UserFields("Responsible2").Value = ""
    objActiveRequest.UserFields("Responsible3").Value = ""

    End If
    If objActiveRequest.UserFields("CountNotAccept").Valu e = 2 Then

    objActiveRequest.UserFields("Group").TValue = ActiveSession.GetRequestByUniqueID(146083) '146083 UniqueID ГРУППЫ МЕНЕДЖЕРА
    objActiveRequest.UserFields("Responsible1").Value = ""
    objActiveRequest.UserFields("Responsible2").Value = ""
    objActiveRequest.UserFields("Responsible3").Value = ""
    End If

    objActiveRequest.UserFields("State").Value = "Work"
    objActiveRequest.UserFields("CountNotAccept").Valu e = objActiveRequest.UserFields("CountNotAccept").Valu e + 1


    'сохраняем постоянный объект
    objActiveRequest.SaveEx 257
    'открываем постоянный объект
    PerformAction.OpenObject objActiveRequest, False, True
    End Sub

    ' процедура, вызываемая по кнопке Возврат Диспетчеру
    Sub request_return_to_Dispetcher

    'получаем объект по UniqueID
    Set objActiveRequest = ActiveSession.GetRequestByUniqueID(ScriptParameter s.userdata)
    ' PerformAction.MsgBox objActiveRequest.UserFields("Comment").Value, "test", 2
    If objActiveRequest.UserFields("Comment").Value <> "" Then


    objActiveRequest.UserFields("State").Value = "Assigned"
    objActiveRequest.UserFields("Group").TValue = ActiveSession.GetRequestByUniqueID(4994406) 'Группа первой линии поддержки

    'сохраняем постоянный объект
    objActiveRequest.SaveEx 257

    objActiveRequest.UserFields("Responsible1").Value = ""
    objActiveRequest.UserFields("Responsible2").Value = ""
    objActiveRequest.UserFields("Responsible3").Value = ""
    objActiveRequest.UserFields("CountReturnToOperator ").Value = objActiveRequest.UserFields("CountReturnToOperator ").Value + 1

    'сохраняем постоянный объект
    objActiveRequest.SaveEx 257
    PerformAction.OpenObject objActiveRequest, False, True

    Else

    ' выводим ошибку
    PerformAction.MsgBox "В случае возврата Диспетчеру необходимо указать причину в поле Коментарий (на вкладке Протокол).", "Ошибка", 2
    Exit Sub

    End If

    End Sub

    ' процедура, вызываемая по кнопке Быстрое решение
    Sub request_fast_closing

    'создаем объект по UniqueID
    Set objActiveRequest = ActiveSession.GetRequestByUniqueID(ScriptParameter s.userdata)
    Set fld = ActiveSession.RequestFolders("fcRequests")

    If objActiveRequest.UserFields("LinkedChange").IsNull Then

    If objActiveRequest.UserFields("ClosureCode").Value <> "" Then

    If objActiveRequest.UserFields("Group").Value = "" Then
    objActiveRequest.UserFields("Group").TValue = ActiveSession.GetRequestByUniqueID(4994406) 'Группа первой линии поддержки
    End If

    If objActiveRequest.UserFields("Responsible1").Value = "" Then
    objActiveRequest.UserFields("Responsible1").TValue = ActiveUser.Object.UserFields("Employe").TValue
    End If

    If objActiveRequest.UserFields("Responsible2").Value = "" Then
    objActiveRequest.UserFields("Responsible2").TValue = ActiveUser.Object.UserFields("Employe").TValue
    End If

    If objActiveRequest.UserFields("Responsible3").Value = "" Then
    objActiveRequest.UserFields("Responsible3").TValue = ActiveUser.Object.UserFields("Employe").TValue
    End If

    ' проверка обязательности полей
    strRequiredFieldsMsg = CheckRequiredFields(objActiveRequest, objActiveRequest)
    If strRequiredFieldsMsg <> "" Then
    PerformAction.MsgBox strRequiredFieldsMsg, "Обязательное поле", 2
    Exit Sub
    End If
    End If

    '================================================= ================================================== ================================================== =
    'сохраняем постоянный объект
    objActiveRequest.UserFields("ScriptYouCanCloseMe") .Value = True
    objActiveRequest.SaveEx 257 ' otSaveDoNotCheckPermissions + otSaveDoNotExecuteActions + otSaveDoNotCheckPrivileges
    objActiveRequest.UserFields("State").Value = "Work"
    objActiveRequest.SaveEx 257
    objActiveRequest.UserFields("State").Value = "Executed"
    objActiveRequest.SaveEx 257
    objActiveRequest.UserFields("State").Value = "Closed"
    objActiveRequest.SaveEx 257
    Else
    PerformAction.MsgBox strRequiredFieldsMsg, "Для Запросов со связанными Изменениями Быстрое закрытие недоступно!", 2
    Exit Sub
    End If
    'открываем постоянный объект
    PerformAction.OpenObject objActiveRequest, False, True

    End Sub
    '================================================= ================================================== ================================================== =


    Sub request_error_closing

    'создаем объект по UniqueID
    Set objActiveRequest = ActiveSession.GetRequestByUniqueID(ScriptParameter s.userdata)
    Set fld = ActiveSession.RequestFolders("fcRequests")
    Set objUser = ActiveUser.Object.UserFields("Employe").TValue

    If objActiveRequest.UserFields("LinkedChange").IsNull Then

    If objActiveRequest.UserFields("State").TValue.Alias <> "Closed" Then
    objActiveRequest.UserFields("Group").TValue = ActiveSession.GetRequestByUniqueID(4994406) 'Группа первой линии поддержки
    objActiveRequest.UserFields("Responsible1").TValue = ActiveSession.GetRequestByUniqueID(2267962) '908484=>2267962 Системный пользователь первой линии поддержки
    objActiveRequest.UserFields("Responsible2").TValue = ActiveSession.GetRequestByUniqueID(2267962) '908484=>2267962 Системный пользователь первой линии поддержки
    objActiveRequest.UserFields("Responsible3").TValue = ActiveSession.GetRequestByUniqueID(2267962) '908484=>2267962 Системный пользователь первой линии поддержки

    objActiveRequest.UserFields("ClosureCode").TValue = GetObjectByAlias("fcClosureCodes", "Alias", "Canselled")
    objActiveRequest.UserFields("Solution").Value = "Закрыт как ошибочно поданный (" & objUser.UserFields("Name").Value & ") " & CStr(Now)

    'сохраняем постоянный объект
    objActiveRequest.UserFields("ScriptYouCanCloseMe") .Value = True
    objActiveRequest.SaveEx 257
    objActiveRequest.UserFields("State").Value = "Work"
    objActiveRequest.SaveEx 257
    objActiveRequest.UserFields("State").Value = "Executed"
    objActiveRequest.SaveEx 257
    objActiveRequest.UserFields("State").Value = "Closed"
    objActiveRequest.SaveEx 257

    End If

    Else
    Set objChange = objActiveRequest.UserFields("LinkedChange").TValue
    objChange.UserFields("UID").Value = objChange.UniqueId
    objChange.SaveEx 257
    CloseChange(objChange.UserFields("UID").Value)
    End If
    'открываем постоянный объект
    PerformAction.OpenObject objActiveRequest, False, True

    End Sub


  • #2
    Здравствуйте, а в чём именно вам помочь?
    Сергей Осадчий

    Комментарий


    • #3
      Сообщение от Sergey Osadchy Посмотреть сообщение
      Здравствуйте, а в чём именно вам помочь?
      При выборе Ответственного1-Одного сотрудника оно указывается на Ответственного2 и Ответственного3. Не получается сохранить разных сотрудников

      Комментарий


      • #4
        Тут не техническая проблема, а организационная. Если за некую задачу ответственно более одного человека - значит, по факту за задачу никто ответственности не несёт.
        OMNITRACKER® Version 10 Certified Professional (OCP)

        Комментарий


        • #5
          СТОП СТОП СТОП!!!

          Посмотрел внимательно ваш код.
          Похоже, кто-то (и я даже знаю кто) использовал темплейт, который разрабатывался в 2012 году под НАШУ КОМПАНИЮ! Узнаю целые куски кода, причём не лучшие.

          Нехорошо.
          OMNITRACKER® Version 10 Certified Professional (OCP)

          Комментарий

          Обработка...
          X