Добрый день, коллеги,
Подскажите, пожалуйста, как с помощью БП добавить Активность типа email в раздел "Обработка" на странице "Обращение", ID Активности и ID Обращения мне известны.
Спасибо.
Нравится
Просто в активность (фильтр по ее Id) заполните поле Обращение указав нужное вам обращение (В историю которого вы хотите чтобы была добавлена ваша уже созданная активность)
Добрый день!
Для решения этой задачи используйте элемент бизнес-процесса 'Добавить данные'.
Просто в активность (фильтр по ее Id) заполните поле Обращение указав нужное вам обращение (В историю которого вы хотите чтобы была добавлена ваша уже созданная активность)
mdv,
Имела ввиду элемент 'Изменить данные'.
Но вижу, что Вы уже разобрались))))
Григорий Чех,
Активность успешно добавляется в историю Обращения, ID которого я указал в поле Обращение объекта Активность, как Вы и посоветовали. Спасибо.
Далее я пытаюсь с помощью БП удалить обращение, к которому активность была привязана ранее, возникает ошибка. Может перед удалением обращения, нужно как-то удалить активность из истории этого обращения, к которому была привязана активность ранее?
Спасибо.
Ошибка при удалении обращения:
==
Terrasoft.Common.DbOperationException: The DELETE statement conflicted with the REFERENCE constraint "FKiJYurD7rxTiCfe1DLABURNLUvA". The conflict occurred in database "real-geo", table "dbo.Activity", column 'CaseId'.
The statement has been terminated. ---> System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FKiJYurD7rxTiCfe1DLABURNLUvA". The conflict occurred in database "real-geo", table "dbo.Activity", column 'CaseId'.
The statement has been terminated.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Polly.Policy.<>c__DisplayClass119_0`1.<Execute>b__0(Context ctx, CancellationToken ct)
at Polly.Policy.<>c__DisplayClass129_0`1.<ExecuteInternal>b__0(Context ctx, CancellationToken ct)
at Polly.Policy.<>c__DisplayClass103_0.<NoOp>b__1(Context ctx, CancellationToken ct)
at Polly.NoOp.NoOpEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken)
at Polly.Policy.<>c.<NoOp>b__103_0(Action`2 action, Context context, CancellationToken cancellationToken)
at Polly.Policy.ExecuteInternal[TResult](Func`3 action, Context context, CancellationToken cancellationToken)
at Polly.Policy.Execute[TResult](Func`3 action, Context context, CancellationToken cancellationToken)
at Polly.Policy.Execute[TResult](Func`1 action)
at Terrasoft.DB.MSSql.MSSqlExecutor.FailoverExecute[TResult](DbCommand command, Func`1 func)
at Terrasoft.Core.DB.DBExecutor.ExecuteCommand[TResult](Func`2 commandExecutionCallback, String sqlText, QueryParameterCollection queryParameters, CancellationToken cancellationToken)
at Terrasoft.Core.DB.DBExecutor.Execute(String sqlText, QueryParameterCollection queryParameters)
at Terrasoft.Core.Entities.Entity.ExecuteDelete(Delete delete, Object keyValue)
at Terrasoft.Core.Entities.Entity.InternalDelete(Object keyValue)
--- End of inner exception stack trace ---
at Terrasoft.Core.Entities.Entity.InternalDelete(Object keyValue)
at Terrasoft.Core.Entities.Entity.Delete(Object keyValue)
at Terrasoft.Core.Entities.Entity.Delete()
at Terrasoft.Core.Process.Configuration.DeleteDataUserTask.InternalExecute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessActivity.Execute(ProcessExecutingContext context)
==
mdv,
Ваша ошибка связана с тем, что к обращению, которое Вы пытаетесь удалить, привязаны 1 и более других активностей.
То есть перед удалением Вам нужно проверить, есть ли другие связанные с обращением активности и если есть, то сначала отвязать их от обращения (если в БП, то можно опять воспользоваться элементом 'Изменить данные'), а потом уже удалять обращение.
Также учтите, что удаляемое обращение, может быть связано и с другими сущностями, помимо активностей.
mdv,
Через элемент 'Изменить данные' для таблицы активностей по фильтру обращение = Id обращения, которое хотите удалить.
Изменять поле 'Обращение' - оставить незаполненным.
Либо можно удалить все активности, которые связаны с удаляемым обращением, либо перепривязать их к новому обращению.
mdv пишет:
А на какое значение нужно изменить значение поля Обращение?
Попробуйте оставить пустым.
Если таким образом не получится очистить значение поля 'Обращение', тогда сделайте это в элементе 'Задание-сценарий'.
mdv,
Если с элементом 'Изменить данные' возникала таже ошибка, что и без, это значит, что изменение данных нужно было делать через скрипт.
А если оставлять поле незаполненным, его значение не очищается.
Когда у меня будет возможность проверить данный момент, тогда точно напишу работает так или нет.
mdv,
Ну, тут уже у меня 'спортивный интерес', поэтому всё-таки для себя хочу этот момент прояснить