Привет всем! У меня цель аналогична в посте https://community.terrasoft.ru/questions/kak-massovo-sdelat-pisma-obrab…

 

Действовала по инструкции, создала БП по изменению признака "Нуждается в обработке" == False в активностях.

 

После выполнения процесса в активностях поле изменилось, но вот в коммуникационной панели письма не ушли из "Необработанных".

 

Сможете помочь? Или обраться в службу тех поддержки?

Нравится

1 комментарий
Показать все комментарии

Добрый день . 

Есть стандартный БП Запуск процесса Отправка email сообщения группе о назначении обращения. Работает отлично. Но начиная с версии 7.17 можно отправлять вложения в  ходе БП.

Кто подскажет как модернизировать стандартный БП, что бы вложения отправлялись ? 

 

UserConnection userConnection = UserConnection;
if (userConnection.CurrentUser.ConnectionType == UserType.SSP) {
    userConnection = userConnection.AppConnection.SystemUserConnection;
}
var senderEmail = Terrasoft.Core.Configuration.SysSettings.GetValue<string>(userConnection, 
    "SupportServiceEmail", string.Empty);
if (userConnection.GetIsFeatureEnabled("EmailMessageMultiLanguage") || userConnection.GetIsFeatureEnabled("EmailMessageMultiLanguageV2")) {
    var caseRecordId = (StartSignal1.RecordId != Guid.Empty)
        ? StartSignal1.RecordId 
        : StartSignal2.RecordId;
    var esq = new EntitySchemaQuery(userConnection.EntitySchemaManager, "Case");
    esq.AddColumn("Group");
    var caseEntity = esq.GetEntity(userConnection, caseRecordId);
    if (caseEntity != null) {
        var adminUnitEsq = new EntitySchemaQuery(userConnection.EntitySchemaManager, "SysAdminUnit");
        adminUnitEsq.UseAdminRights = false;
        var emailColumnName = adminUnitEsq.AddColumn("Contact.Email").Name;
        var groupId = caseEntity.GetTypedColumnValue<Guid>("GroupId");
        adminUnitEsq.Filters.Add(adminUnitEsq.CreateFilterWithParameters(FilterComparisonType.Equal, "[SysUserInRole:SysUser].SysRole", groupId));
        var collection = adminUnitEsq.GetEntityCollection(userConnection);
        var result = string.Join(";", collection.Select(e => e.GetTypedColumnValue<string>(emailColumnName)));
        if (!string.IsNullOrWhiteSpace(result)) {
            var emailTemplateSender = new Terrasoft.Configuration.EmailWithMacrosManager(userConnection);
            var emailTemplateId = Terrasoft.Configuration.CaseConsts.GroupTemplateId;
            if (userConnection.GetIsFeatureEnabled("EmailMessageMultiLanguageV2")) {
                emailTemplateSender.SendEmailFromTo(caseRecordId, emailTemplateId, senderEmail, result);
                return true;
            } else {
                var emailTemplateStore = new Terrasoft.Configuration.EmailTemplateStore(userConnection);
                var emailTemplateLanguageHelper = new Terrasoft.Configuration.EmailTemplateLanguageHelper(caseRecordId, userConnection);
                var languageId = emailTemplateLanguageHelper.GetLanguageId(emailTemplateId);
                var templateEntity = emailTemplateStore.GetTemplate(emailTemplateId, languageId);
                emailTemplateSender.SendEmailFromTo(caseRecordId, templateEntity.PrimaryColumnValue, senderEmail, result);
            }
        }
    }
} else {
    Guid sendEmailToCaseGroup = new Guid("C68F5A4E-AD06-4C83-88C4-040D2480FACB");
    var manager = userConnection.ProcessSchemaManager;
    var processSchema = manager.GetInstanceByUId(sendEmailToCaseGroup);
    if (ProcessSchemaManager.GetCanUseFlowEngine(userConnection, processSchema)) {
        var flowEngine = new FlowEngine(userConnection);
        Dictionary<string, string> parameter = new Dictionary<string, string>();
        parameter.Add("CaseRecordId", CaseRecordId.ToString());
        flowEngine.RunProcess(processSchema, parameter);
    } else {
        var moduleProcess = processSchema.CreateProcess(userConnection);
        if (processSchema.Parameters.ExistsByName("CaseRecordId")) {
            moduleProcess.SetPropertyValue("CaseRecordId", CaseRecordId);
        }
        moduleProcess.Execute(userConnection);
    }
}
return true;

Прикрепленные файлы

Нравится

1 комментарий

Добрый день.

Рекомендую вам воспользоваться данной статьей или уже готовое бесплатное расширение, которое можно будет немного отредактировать.

Показать все комментарии

Добрый день!

Есть БП который обращается к веб сервису и получает коллекцию данных стандартными мададами  коллекцию не обработать и не записать в деталь.

Подскажите, пожалуйста, как с помощью сценария обработать данные и записать их есть пример кода буду благодарен.

К сожалению С# не знаю.

Вот пример ответа от веб сервиса.

 {
    "status": "Success",
    "customerActions": [
        {
            "ids": {
                "mindboxId": 
            },
            "actionTemplate": {
                "systemName": "IzmenenieStatusaPozicijZakaza",
                "name": "Изменение статуса позиций заказа в операции Возврат."
            },
            "dateTimeUtc": "2021-03-22T12:07:43.503Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "Administrator"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": -3.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T12:00:52.853Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274870086
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T12:00:52.853Z",
            "pointOfContact": {
                "ids": {
                    "externalId": ""
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 7.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T12:00:52.853Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274848361
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T10:58:17.39Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 2.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T10:58:17.39Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274845374
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T10:49:39.917Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 3.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T10:49:39.917Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274776624
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:41:07.283Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 24.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:41:07.283Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274722801
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:36:37.907Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 11.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:36:37.907Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                },
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": -24.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:36:37.907Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderPayment"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274722578
            },
            "actionTemplate": {
                "systemName": "RetailOrderCancelled",
                "name": "Отмена заказа"
            },
            "dateTimeUtc": "2021-03-22T08:36:36.953Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": -12.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:36:36.953Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274721724
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:36:33.87Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 12.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:36:36.953Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274651119
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:33:26.85Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 12.00,
                    "isAvailable": false,
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274478987
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:31:41.013Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 12.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:31:41.013Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274418137
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:22:29.52Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 12.00,
                    "isAvailable": false,
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 274414067
            },
            "actionTemplate": {
                "systemName": "SoxranenieZakazaVOperaciiProcessingCheka",
                "name": "Сохранение заказа в операции Процессинг чека авторизованного клиента (арбитраж на кассе)."
            },
            "dateTimeUtc": "2021-03-22T08:19:07.17Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 12.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-22T08:19:07.17Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 268222090
            },
            "actionTemplate": {
                "systemName": "UserBalanceChangedFromAdminSite",
                "name": "Корректировка баланса"
            },
            "dateTimeUtc": "2021-03-19T11:15:08.413Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "Administrator"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": -2.00,
                    "comment": "тестовые",
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-19T11:15:08.413Z",
                    "balanceChangeKind": {
                        "systemName": "Custom"
                    }
                }
            ]
        },
        {
            "ids": {
                "mindboxId": 264964916
            },
            "actionTemplate": {
                "systemName": "RetailOrderDelivered",
                "name": "Доставка заказа"
            },
            "dateTimeUtc": "2021-03-18T14:54:04Z",
            "pointOfContact": {
                "ids": {
                    "externalId": "2277"
                }
            },
            "customer": {
                "ids": {
                    "mindboxId": 2882934
                }
            },
            "customerBalanceChanges": [
                {
                    "balanceType": {
                        "ids": {
                            "systemName": "OsnovnojSchet"
                        },
                        "name": "Основной счет"
                    },
                    "changeAmount": 2.00,
                    "isAvailable": true,
                    "availableFromDateTimeUtc": "2021-03-18T14:54:04Z",
                    "balanceChangeKind": {
                        "systemName": "RetailOrderBonus"
                    }
                }
            ]
        }
    ]
}

 

Нравится

10 комментариев

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

Зверев Александр,

 

Не работает данный подход процесс не передает данный в подпроцесс

 

Возможно, неправильно настроили параметр из коллекции в свойстве подпроцесса, проверьте.

Сейчас сервис выдает ошибку
Newtonsoft.Json.JsonException: Path returned multiple tokens.
   at Newtonsoft.Json.Linq.JToken.SelectToken(String path, Boolean errorWhenNoMatch)
   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillServiceParameterValues(IEnumerable`1 parameters, JToken responseToken, Dictionary`2 parameterValues)
   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillComplexArray(ServiceParameter parameter, JArray jsonArray)
   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillArrayValues(JToken token, ServiceParameter parameter, Type valueType)
   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillServiceParameterValues(IEnumerable`1 parameters, JToken responseToken, Dictionary`2 parameterValues)
   at Terrasoft.Services.Runtime.JsonResponseBodyParser.Parse(String body, Dictionary`2 dataAdapters)
   at Terrasoft.Services.Runtime.ServiceClientResponse.FillInBodyParameters(Dictionary`2 parameterValues)
   at Terrasoft.Services.Runtime.ServiceClientResponse.ParseResponse()
   at Terrasoft.Services.Runtime.ServiceClientResponse.get_ParameterValues()
   at Terrasoft.Services.WebServiceUserTaskImplementation.FillResponseParameters(IServiceClientResponse response, ProcessWebService userTask, IProcessParametersMetaInfo schema)
   at Terrasoft.Services.WebServiceUserTaskImplementation.Execute(ProcessWebService userTask, ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

Может  ктото может написать сценарий за оплату ?

А как Вы указали параметр для передачи в подпроцесс? Может, там что не так? И какие настройки получились у веб-сервиса?

дела в том что продлема в ответдела в том что продлема в ответи Bpm не может прочитать массив где есть вложенные колекции а внутри них есть еще вложенные колекции.
А когда их вынисиш в отдельную колекцию то bpm выдает ошибку и Bpm не может прочитать массив где есть вложенные колекции а внутри них есть еще вложенные пораметры

Александр Королев,

Александр Королев,

Как можно обработать такой массив в БП  я получаю его в ответе от веб сервиса 

"DateTime": [

                        {

                            "typeCode": "Message",

                            "value": "2021-03-26T13:00:07+0100"

                        },

                        {

                            "typeCode": "Transaction",

                            "value": "2021-03-25T13:46:29+0100"

                        }

Нужно только значение 

 {

                            "typeCode": "Transaction",

                            "value": "2021-03-25T13:46:29+0100"

                        }

Можно опять же вызовом подпроцесса, а в нём проверять: если код не тот, то ничего не делать.

Показать все комментарии

Добрый день!

Меня интересует интеграция телефонии vonage с Creatio.  Есть ли какое-то готовое решение, модуль? 

 

Можно ли использовать встроенные Webitel коннектор?

 

Заранее спасибо!

Нравится

3 комментария

Татьяна, стандартной интеграции или дополнения для работы с телефонией Vonage в настоящий момент нет. Зарегистрировал пожелание. Вопрос по возможности работы с ней через Webitel лучше задать на их сайте.

Зверев Александр,

Александр поддержка вебитэл ответила, что "

Мы не можем интегрировать телефонию Vonage с Creatio через коннектор
так как Vonage не предоставляет SIP-линию для настроек »."

Прошу подсказать, правильно ли я понимаю, что на текущий момент отсутствует возможность как-то  прописать апи и выполнить небольшие настройки и все готово.

 

Остается один вариант для нас это изучить возможность самостоятельно настроить интеграцию, например, с помощью сторонних подрядчиков? Может есть полезные статьи на академии про способы интеграций (самостоятельно я не нашла)

Значит, нет готового решения. Не нашёл ни тут в маркете, ни на сайте Vonage.

Общая статья о том, как система работает с телефонией, есть тут.

Показать все комментарии

Добрый день!

Возник вопрос по использованию Advanced excel reports for Creatio

А именно правильно указывать формат колонки для числовых значений

Вот что говорит руководство

Системная настройка выглядит так:

Настройки отчета

Результат:

Что я делаю не так?)

Нравится

4 комментария
Лучший ответ

Добрый день.

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

Например, у меня в отчете есть поле с типом 'Дата/время'. По умолчанию оно будет выводиться в том формате, который указан в системной настройке 'Формат колонки с типом "Дата-время"' - 'dd.MM.yyyy HH:mm', но также я могу установить для этой колонки в конкретном отчете формат колонки в виде 'dd.MM.yyyy'.

А, например, для дробного поля Вы можете указать формат '0.000', тогда, как в системной настройке у Вас указан формат '0.00'. И таким образом, в этом отчете для этого дробного поля будет выводиться не 2, а 3 знака после запятой.

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

Добрый день.

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

Например, у меня в отчете есть поле с типом 'Дата/время'. По умолчанию оно будет выводиться в том формате, который указан в системной настройке 'Формат колонки с типом "Дата-время"' - 'dd.MM.yyyy HH:mm', но также я могу установить для этой колонки в конкретном отчете формат колонки в виде 'dd.MM.yyyy'.

А, например, для дробного поля Вы можете указать формат '0.000', тогда, как в системной настройке у Вас указан формат '0.00'. И таким образом, в этом отчете для этого дробного поля будет выводиться не 2, а 3 знака после запятой.

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

Спасибо, попробую.

Еще вопрос, очень часто при формировании отчета все зависает и бывает, что завершается ошибкой (скрин) , может тоже какие нибудь настройки не такие?

Алексей, добрый день!

 

уточните, пожалуйста, по ошибкам формирования отчета - они всегда были или возникли начиная с какой версии? Ошибки возникают при формировании любого отчета или только одного определенного отчета?

Лазоренко Ирина,

Конкретную версию не могу назвать, но такого раньше не было. Просто бухгалтерия пользуется ими пару дней в конце месяца, зависание наблюдается и на других отчетах

Показать все комментарии

Добрый день.

У обращения есть группа ответственных и время разрешения. Если по истечении этого времени не поступило письмо с обратной связью, необходимо запустить БП с отправкой напоминания.

 

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

 

Прошу помочь с созданием процесса

Нравится

2 комментария

Обратите внимание на уже реализованный и доступный в маркете пример процесса «Уведомление о сроке реакции по обращению».

Тут сигнал срабатывает сразу при создании обращения или назначении на ответственного, после чего ставит таймер до нужного момента.

Другой вариант реализации — ежедневный (или чаще) запуск по таймеру процесса, который ищет подходящие записи и отправляет нужные письма. Примером может послужить процесс «Напоминание о дне рождения клиента».

спасибо, посмотрю

 

Показать все комментарии

кейс: КЦ обрабатывает обращения и назначает ответственных. Для разных отделов должны быть свои шаблоны. На данный момент система позволяет отправить один шаблон для всех единичных ответственных и один шаблон для групп ответственных.

задача: создать разные шаблоны для разных групп ответственных

Нравится

4 комментария
Лучший ответ

К с,

Извините, не показалось у меня уведомление о сообщении.

Скрины прилагаю, но, возможно, у нас сложнее условия. Но кратко - вычисляем SLA по разным условиям, из него по параметрам определяем шаблон.
Сам механизм посылки писем взят из Creatio service (это не элемент Send email, а скрипт - он более гибкий).

 

Мы делали свой бизнес-процесс, в котором выбирали шаблон по нужным условиям. Соответственно, стандартный процесс делали неактивным.

Владимир Соколов,

спасибо!

 

К с,

можете скрин показать?

К с,

Извините, не показалось у меня уведомление о сообщении.

Скрины прилагаю, но, возможно, у нас сложнее условия. Но кратко - вычисляем SLA по разным условиям, из него по параметрам определяем шаблон.
Сам механизм посылки писем взят из Creatio service (это не элемент Send email, а скрипт - он более гибкий).

 

Показать все комментарии

кейс: обрабатывая обращение КЦ назначает ответственных. Необходимо добавить два и более человек, но не группу. На данный момент система позволяет добавить только одного ответственного и одну группу. 

Задача: сделать возможность добавлять несколько ответственных и несколько групп для одного обращения.

Нравится

2 комментария

Теоретически, можно в мастере создать в разделе деталь, где вести информацию о пользователях и группах.

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

Зверев Александр,

спасибо

Показать все комментарии

Добрый день.

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

Terrasoft Customer Center Creatio

Нравится

1 комментарий
Лучший ответ

Здравствуйте! Здесь Вам в помощь "Действия Cti панели". При звонке на Cti панели будут отображаться действия которые запускают ранее написанный Бизнес-процесс - https://prnt.sc/v4em3z

Описано в данной статье - https://academy.terrasoft.ru/documents/administration/7-16/chasto-zadav….

Предварительно создайте БП со станицей редактирования контакта в режиме добавления новой записи - https://prnt.sc/v4eo74.

Затем перейдите в Справочники и найдите справочник "Действия Cti панели" и добавьте действие с подвязкой к нему ранее созданного БП - https://prnt.sc/v4eqmn

Здравствуйте! Здесь Вам в помощь "Действия Cti панели". При звонке на Cti панели будут отображаться действия которые запускают ранее написанный Бизнес-процесс - https://prnt.sc/v4em3z

Описано в данной статье - https://academy.terrasoft.ru/documents/administration/7-16/chasto-zadav….

Предварительно создайте БП со станицей редактирования контакта в режиме добавления новой записи - https://prnt.sc/v4eo74.

Затем перейдите в Справочники и найдите справочник "Действия Cti панели" и добавьте действие с подвязкой к нему ранее созданного БП - https://prnt.sc/v4eqmn

Показать все комментарии

Коллеги, мне необходимо реализовать БП, где триггер - добавление обращения в очередь, см. скриншот

 

К сожалению такой тригер не ловится системой. Кто нибудь знает почему и что с этим можно сделать?

 

Прикрепленные файлы

Нравится

2 комментария

Татьяна, на вопрос «почему» ответить несложно: вся логика наполнения этой таблицы реализована в БП «Процесс наполнения очередей единого окна», где вызывают логику функции ProcessAutoUpdateQueues из QueuesUpdateUtilities.

 

Там добавление идёт при помощи Insert, который не вызывает событий:

  /// <summary>
  /// Adds elements from queue with filtration.
  /// </summary>
  /// <param name="entitySchemaName">Entity schema name of queue element.</param>
  /// <param name="entitySelect">Query to queue object with filtration.</param>
  /// <param name="queueId">Identifier of queue.</param>
  /// <param name="queueName">Queue name.</param>
  /// <param name="itemsCount">Count of not handled elements in queue.</param>
  /// <returns>Added queue items count.</returns>
  private int AddEntityQueueItemsByFilter(string entitySchemaName, Select entitySelect, Guid queueId,
    string queueName, int itemsCount) {
   try {
    if (itemsCount >= _maximumQueueItemsInQueue) {
     QueuesUtilities.LogWarn(string.Format(GetResourceValue("QueueMaximumItemsWarning"), queueName));
     return 0;
    }
    entitySelect.Top(_insertQueueItemTopValue)
     .Column(new QueryParameter("QueueId", queueId)).As("QueueId")
     .Column(new QueryParameter("StatusId", _newQueueItemStatusId)).As("StatusId");
    var selectCondition = new QueryCondition();
    selectCondition.IsNot = true;
    selectCondition.Exists(
     new Select(_userConnection)
      .Column("QueueItem", "Id")
     .From("QueueItem")
     .InnerJoin("QueueItemStatus")
     .On("QueueItemStatus", "Id").IsEqual("QueueItem", "StatusId")
     .Where(entitySchemaName, "Id").IsEqual("QueueItem", "EntityRecordId")
     .And("QueueItem", "QueueId").IsEqual(Column.Parameter(queueId))
     .And("QueueItemStatus", "IsFinal").IsNotEqual(Column.Parameter(true)));
    if (!entitySelect.HasCondition) {
     entitySelect.Where(selectCondition);
    } else {
     entitySelect.And(selectCondition);
    }
    var insertSelect = new InsertSelect(_userConnection)
     .Into("QueueItem")
     .Set("EntityRecordId", "QueueId", "StatusId")
     .FromSelect(entitySelect);
    DateTime addedRecordsStartTime = DateTime.Now;
    int addedRecords = insertSelect.Execute();
    if (addedRecordsStartTime.AddSeconds(60) < DateTime.Now) {
     insertSelect.BuildParametersAsValue = true;
     QueuesUtilities.LogDebug(string.Format(GetResourceValue("LongInsertQueueItemsMessage"),
      queueName, _autoUpdateQueuesProcessId.ToString(), insertSelect.GetSqlText()));
    }
    return addedRecords;
   } catch (Exception e) {
    QueuesUtilities.LogError(string.Format(GetResourceValue("InvokeMethodErrorMessage"),
     string.Concat("AddEntityQueueItemsByFilter ", queueName), e.Message), e);
    throw;
   }
  }

Аналогично и с удалением из очереди.

Сам процесс запускается по планировщику, задание создаётся в QueuesUtilities в функции UpdateQueuesTrigger.

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

 

Зверев Александр,

Благодарю за подробный ответ!

Показать все комментарии