Show/Hide Toolbars

Методические рекомендации по настройке системы "Первая Форма"



Хранимые процедуры SQL

Хранимые процедуры заданий "Первой Формы"

Содержание Назад Вверх Вперед E-mail

В данном разделе представлены основные процедуры заданий, их параметры и краткое описание, а также некоторые примеры кода. Все значения параметров в примерах могут изменяться в зависимости от бизнес-задач.

@TaskID (int)  – это входящий параметр с номером задачи.

Процедура

Параметры и краткое описание

tc_ws_addAcceptant

 

Добавление подписчика в текущую запрошенную динамическую подпись.

Параметры:

@TaskSignatureId (int) - номер запрошенной подписи, обязателен,

@InitUserID (int) - ID пользователя который добавил акцептанта, обязателен,

@UserID (int) - ID пользователя, которого добавляют в акцептанты, обязателен ,

@WriteComment(bit) - нужно ли писать комментарий, необязателен,

@SendEmail(bit) - отправлять ли письмо, необязателен.

Пример кода:

DECLARE @id int
select @id = ID from TaskSignatures 
where signatureId = 5 and taskId = @taskId and SignatureStateID = 1
EXEC dbo.tc_ws_addAcceptant
         @TaskSignatureID=@id,
         @InitUserID=2,
         @WriteComment=0,
         @SendEmail=0,
         @UserID=123

tc_ws_addComment

Добавление комментария в задачу.

Параметры:

@UserID (int) - ID пользователя, от имени которого генерируется комментарий,

@TaskID (int) - ID задачи, в которой пишут комментарий, обязателен,

@Comment  nvarchar(4000) - текст комментария, обязателен.

Пример кода:

declare @Comment varchar(1000)
set @Comment = 'привет, мир!'
exec dbo.tc_ws_addComment @UserID = 123, @TaskID = @taskID, @Comment = @Comment

tc_ws_addNewPerformer

Назначение нового исполнителя задачи.

Параметры:

@UserID (int) - ID пользователя, является исполнителем,

@TaskID (int)  - ID задачи, в которой назначается новый исполнитель,

@SessionUserID (int) - ID пользователя, который назначает пользователя исполнителем, обязателен.

Пример кода:

EXEC tc_ws_addNewPerformer
      @TaskID = @TaskID, 
      @UserID = 123, 
      @SessionUserID = 1

tc_ws_AddNewSignatureToTask

Запрос подписи в задачу.

Параметры:

@TaskID (int) - ID задачи, в которой запрашивают подпись, обязателен,

@SignatureID (int) - ID подписи, которую запрашивают, обязателен,

@UserID (int) - ID пользователя, который запрашивает подпись, обязателен,

@IsDynamic (bit) - динамическая ли подпись, необязателен,

@Reason (nvarchar(4000)) - причина запроса подписи, необязателен.

Пример кода:

exec dbo.tc_ws_AddNewSignatureToTask
   @taskid = @taskid,
   @signatureid = 3, 
   @userid = 123 ,
   @isDynamic = 1,
   @reason ='нужно ли это делать?'     

tc_ws_AddResponsiblePerformer

Добавление ответственного исполнителя.

Параметры:

@TaskID (int) - ID задачи, обязателен,

@SessionUserID (int) - ID пользователя, который назначает пользователя заказчиком, обязателен,

@UserToAddID (int) - ID пользователя, которого назначают заказчиком

tc_ws_addSubscriber

Добавление пользователя в подписчики задачи.

Параметры:

@UserID (int) - ID пользователя, которого надо подписать к задачи, обязателен,

@TaskID (int) -  ID задачи, к которой надо подписать, обязателен,

@IsSubscribeChildTask (bit) - подписывание к дочерним задачам, необязателен,

@SubscribeType (int) тип подписки (принимает значение 2 -Акцептант, 6 - Прочее\Автоматизация, 4 - Консультант\Исполнитель\Заказчик\Автоподписка  1 - Добавление вручную , 5 - Не определено, 3 - Скопирован из родительской), необязателен,

@SessionUserId (int) - ID пользователя, который подписывает, обязателен.

Пример кода:

exec dbo.tc_ws_addSubscriberMailed 
    @userid =  123,
    @taskid = @taskid,
    @SessionUserId = 1

tc_ws_addSubscriberMailed

Добавление пользователя в подписчики с уведомлением по почте (на данный момент на почту уведомления не отправляются, фактически работает как dbo.tc_ws_addSubscriber).

Параметры:

@UserID (int) - ID пользователя, которого надо подписать к задачи, обязателен,

@TaskID (int) -  ID задачи, к которой надо подписать, обязателен,

@IsSubscribeChildTask (bit) - подписывание к дочерним задачам, необязателен,

@ActingUserID  - ID пользователя, который подписывает, обязателен.

Пример кода:

exec dbo.tc_ws_addSubscriberMailed 
    @userid =  123,
    @taskid = @taskid,
    @IsSubscribeChildTask = 0,
    @actinguserid = 1

tc_ws_AddUserComment

Отправление комментарий конкретному пользователю.

Параметры:

@TaskID (int) ID задачи, в которой надо написать комментарий, обязателен,

@CommentRecipients (nvarchar(4000)) - список через точку с запятой логин (на англиском) получателей, обязателен,

@UserID (int) - ID пользователя отправителя, обязателен,

@Text (nvarchar(4000)) - текст комментария , обязателен,

@NeedSubscribe (bit) - нужно ли подписываться на задачу, необязателен

tc_ws_AddUserCommentWithSms

Отправление пользователю комментарий через смс (требуется подключение к системе Clickatell).

Параметры:

@TaskID (int) ID задачи, в которой надо написать комментарий, обязателен,

@CommentRecipients (nvarchar(4000)) - список через точку с запятой логин (на английском) получателей, обязателен,

@UserID (int) - ID пользователя отправителя, обязателен,

@Text (nvarchar(4000)) - текст комментария , обязателен,

@NeedSubscribe (bit) - нужно ли подписываться на задачу, необязателен

tc_ws_changeTaskStep

Совершение перехода в задаче.

Параметры:

@StepID (int) - номер перехода который надо сделать, обязателен,

@Userid (int) - ID пользователя, который делает переход, обязателен,

@Taskid (int) -  ID задачи, в которой надо сделать переход, обязателен

tc_ws_DeleteRequestedSignature

Удаление запрошенной подписи.

Параметры:

@UserID (int) - ID пользователя, который удаляет запрошенную подпись, обязателен,

@TaskSignatureID (int) - номер запрошенной подписи, обязателен

tc_ws_DeleteTask

Удаление задачи.

Параметры:

@UserID (int) - ID пользователя, который удаляет задачу, обязателен,

@TaskID (int) -  ID задачи, которая удаляется, обязателен

tc_ws_FindSidForNick

Поиск уникального ключа (SID) в Active Directory по логину пользователя.

Параметры:

@Nick nvarchar(50) - ник пользователя, обязателен,

@SID nvarchar(4000) - параметр ввод-вывода сюда записывается найденный SID или null, обязателен

tc_ws_moveTask

Перемещение задачи в категорию.

Параметры:

@UserID (int) - ID пользователя, от имени которого будет сделано перемещение, обязателен,

@TaskID (int) - ID перемещаемой задачи, обязателен,

@SubcatID (int) - ID категории, в которую будет перемещена задача, обязателен

tc_ws_newTask

Создание новой задачи.

Параметры:

@UserID (int) - IDd пользователя, который будет являться заказчиком, обязателен,

@Task (nvarchar(4000)) - текст задачи, обязателен,

@OrderedTime (datetime) - срок задачи, обязателен (в зависимости от настройки категории),

@Category (int) - ID категории, в которую будет поставлена задача, обязателен,

@Comment (nvarchar(4000)) - первый комментарий к задаче, не обязателен,

@ExtParamStr (nvarchar(4000)) - служебная строка для заполнения доп. параметров, описание см. ниже, обязателен (в зависимости от настройки обязательных ДП при постановке в категории),

@PerfID (int) - ID исполнителя при постановке, обязателен (в зависимости от настройки категории),

@PriorityID (int) - ID приоритета задачи, не обязателен,

@D3TaskID - не используется,

@ParentID (int) - ID родительской задачи, не обязателен,

@UserNick (nvarchar(20))- ник пользователя, ставящего задачу, не обязателен (может использоваться вместо @UserID),

@Remind (bit) - напоминание о приближении срока задачи, не обязателен,

@PropagateSubscribers (bit) - подписать подписчиков родительской задачи, не обязателен,

@PropagateFiles (boolean) - перенести файлы в дочернюю задачу,

@TaskStartTime (datetime) - постановка даты начала работ, не обязателен

tc_ws_newTaskFromName

Создание новой задачи от имени пользователя.

Параметры аналогичны tc_ws_newTask, с небольшим отличием:

@UserID (int) - ID пользователя, от имени которого будет поставлена задача, обязателен,

@SessionUserID (int) - ID пользователя, фактически ставящего задачу, обязателен,

PropagateFiles (boolean) - перенести файлы в дочернюю задачу

tc_ws_newTaskIgnoreError

Постановка новой задачи с дальнейшим игнорированием ошибок. Не рекомендуется для использования.

Параметры аналогичны tc_ws_newtask

tc_ws_SendSmsToGroup

Отправка СМС группе пользователей.

Параметры:

@GroupID (int) - id группы пользователей, обязателен,

@Text (nvarchar(4000)) - текст СМС, обязателен,

@TaskID int = null

tc_ws_SendSmsToPhone

Отправка СМС на указанный номер.

Параметры:

@Number (nvarchar(4000)) - номер телефона, обязателен,

@Text (nvarchar(4000)) - текст СМС, обязателен,

@TaskID (int) - ID задачи, обязателен

tc_ws_SendSmsToPhoneList

Отправка СМС по списку номеров.

Параметры:

@Numbers (nvarchar(4000)) - список телефонов, вводится через ";", обязателен,

@Text (nvarchar(4000)) - текст СМС, обязателен,

@TaskID (int) - ID задачи, обязателен

tc_ws_SendSmsToUser

Отправка СМС пользователю.

Параметры:

@UserID (int) - ID пользователя, обязателен,

@Text (nvarchar(4000)) - текст СМС, обязателен,

@TaskID (int) - ID задачи, обязателен

tc_ws_sub_InsertDatesIntoCalendar

Проставляет отсутствия в календарь (служебная).

Параметры:

@TaskID (int) - ID задачи, обязателен

tc_ws_updateExtParamsInTasks

Обновление дополнительных параметров в задаче.

Параметры:

@TaskID (int) - id задачи, обязателен,

@Str (nvarchar(4000)) - служебная строка для заполнения доп. параметров, описание см. ниже, обязателен,

@SessionUserID (int) - id пользователя, от имени которого будут обновлены параметры, обязателен

tc_ws_updateOrderedTime

Обновление срока задачи.

Параметры:

@TaskID (int) - ID задачи, обязателен,

@OrderedTime (datetime) - срок задачи, обязателен

tc_ws_updateTaskDescription

Обновление текста задачи.

Параметры:

@TaskID (int) - ID задачи, обязателен,

@Description (nvarchar(max)) - новый текст, обязателен

tc_ws_updateTaskStartTime

Обновление даты начала работ.

Параметры:

@TaskID (int) - ID задачи, обязателен,

@StartTime (datetime) - дата начала работ, обязателен,

@UserID (int) - ID пользователя, обязателен,

@Reason (nvarchar(4000)) - причина, обязательна

tc_job_ws_PeriodicExecution

Явное выполнение периодических заданий из очереди

@ExtParamStr (@str)

Заполняет/изменяет дополнительные параметры. Например: '#n_номер_#v_значение::#n_номер1_#v_значение1::'

Параметры:

#n_номер - id доп. параметра,

#v_значение - то, что нужно внести.

Все значения должны быть приведены к типу varchar

Пример кода:

В задаче 123456 от имени диспетчера задач нужно обновить доп. параметр 111 (тип текст), вставить туда значение 'Иван Иванович', а в параметр 222, тип дата+время, указать текущую дату.

Строку мы можем задекларировать следующим образом:

set @str = '#n111#vИван Иванович::#n222#v'+ cast (getdate() as varchar) + '::'

ID диспетчера задач получим следующим образом:

select @UserID = SystemRobotID from Settings where CustomerID = 1

Наконец, сделаем вызов процедуры:

exec tc_ws_UpdateExtParamsInTasks
   @TaskID = 123456,
   @Str = @str,
   @SessionUserID = @userid

!warning Обратите внимание:

символы '::' внутри значения ДП экранируются с помощью обратного слеша – '\::'

слеш в значении значении ДП также экранируется, и поэтому повторяется дважды – '\\::'

Полезные ссылки