Поля детали "Средства связи контакта" нет возможности редактировать в зависимости от типа средства связи. Более расширенные возможности по настройке прав доступа запланированы в версии 7.9
В качестве обходного решения можно только повыносить отдельными полями в карточку и администрировать уже объект "Контакт" по колонкам.
Собственно вопрос - как разрешить удаленный вызов процедур Web- сервиса? Есть простой WCF Web- сервис, на его основе получен WSDL, из которого сгенерированы прокси- классы. Эти прокси- классы использует простой консольный клиент, например, просто вернуть строку с сервера - вылетает окно:
Судя по ссылке, запрос не проходит авторизацию, хотя в Terrasoft.WebApp\Web.config указано, что:
Отличная статья, как я теперь могу вызвать метод Web- сервиса, используя AuthCookie? Должен- ли я менять код Web- сервиса, чтобы аутентифицировать внешние запросы?
Возвращаясь к началу, хочу отметить одну интересную деталь - если в Visual Studio попытаться добавить ссылку на WSDL (Add Web Reference), то получим такое вот окно:
Добрый день. После обновления до версии 7.7 возникла проблема при открытии БП в дизайнере процессов.
Бесконечно крутится загрузка, а в консоли появляется следующая ошибка:
Путём проб и ошибок выяснилось, что эта ошибка возникает после использования в элементе "Задача" и "Звонок" события "После сохранения записи"(Ошибка возникает даже если в указанное поле вписать только комментарий). Как быть с решением указанной проблемы?
И ещё один вопрос: Как обратиться к параметру в элементе Скрипт?
Обращение в виде LeadId(идентификатор Лида) - вызывает ошибку при публикации БП.
Предположим у нас есть параметр процесса Text с типом "Строка".
В версии 760 (и более ранних) значение этого параметра можно было получить следующим кодом:
var leadId = LeadId;
В версии 770 этот код будет выглядеть по другому:
var leadId = Get("LeadId");
Что Вы хотите реализовать в событии "После сохранения записи"?
Добрый день!
Подскажите, пожалуйста, можно ли с помощью стандартных инструментов в дизайнере построить бизнес-процесс, который бы вызывался кнопкой из карточки физ.лица и автоматически создавал продажу и продукт в продаже?
Общая схема такая:
1. Есть заявка на продукт с сайта, в которой уже указан продукт
2. Сотрудник call-Центра связывается с клиентом, редактирует карточку заявки и карточку физ.лица.
3. Запускает бизнес-процесс создания продажи и продукта в продаже из карточки физ.лица
4. Этот же бизнес-процесс привязывает заявку к продаже
Данную задачу можно реализовать, но не стандартными инструментами.
Вам необходимо:
1) Добавить кнопку на страницу редактирования. Подробнее
2) В обработчик кнопки добавить логику запуска процесса (за пример можно взять действие "Отправить на визирование" на странице редактирования раздела "Договоры"). В процесс необходимо передать Id открытой записи.
3) Собственно реализовать процесс
3. Настроить визуальное отображение поля [Остаток для оплаты]
Для этого нужно в свойстве diff модели представления описать конфигурационный объект с необходимыми параметрами. - Где это найти?
4. В свойство attributes модели представления добавить колонку [UsrBalance]
В конфигурационном объекте колонки [UsrBalance] указать зависимость от колонок [Amount] и [PaymentAmount], а также метод-обработчик — calculateBalance, который будет рассчитывать значение для колонки [UsrBalance]. - Где это найти?
Добрый день! Описание строения любых модулей приведено по ссылке: http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/SchemaStru…
Там вы можете почитать и про свойство diff и attributes.
В системе есть похожая логика на ту, что вы хотите: она реализована в странице активности. Там по нажатию на чекбокс "Напомнить автору" становится доступным поле "Дата напоминания автору". Думаю, вы можете там подсмотреть реализацию.
Если бы Вы писали этот код сами "с чистого листа", то для выполнения пункта 3 Вам необходимо было бы добавить следующие строки в этот модуль (секция diff):
// Визуальное отображение поля [Остаток для оплаты] на странице редактирования.
diff:/**SCHEMA_DIFF*/[{"operation":"insert",
"parentName":"Header",
"propertyName":"items",
"name":"UsrBalance",
"values":{"bindTo":"UsrBalance",
"layout":{"column":12, "row":2, "colSpan":12}}}]/**SCHEMA_DIFF*/
То что внутри внешних фигурных скобок называется конфигурационным объектом.
Для выполнения пунктов 4-6 Вам необходимо было бы добавить следующее.
В секцию attributes добавить конфигурационный объект для атрибута (свойства) UsrBalance (пункт 4):
// Название колонки модели представления."UsrBalance":{// Тип данных колонки модели представления.
dataValueType: Terrasoft.DataValueType.FLOAT,
// Массив конфигурационных объектов, определяющих зависимости колонки [UsrBalance].
dependencies:[{// Значение колонки [UsrBalance] зависит от значений колонок [Amount] // и [PaymentAmount].
columns:["Amount", "PaymentAmount"],
// Метод-обработчик, который вызывается при изменении значения одной из колонок [Amount] // и [PaymentAmount].
methodName:"calculateBalance"}]}
В секцию methods метод calculateBalance (пункт 5) :
// Метод-обработчик, который рассчитывает значение колонки [UsrBalance].
calculateBalance: function (){// Проверяем, проинициализованы ли в момент открытия страницы редактирования// колонки [Amount] и [PaymentAmount]. Если нет, то устанавливаем для// них нулевые значения.if(!this.get("Amount")){this.set("Amount", 0);}if(!this.get("PaymentAmount")){this.set("PaymentAmount", 0);}// Расчет разницы между значениями в колонках [Amount] и [PaymentAmount].
var result =this.get("Amount")-this.get("PaymentAmount");// Результат расчета присваивается в качестве значения колонке [UsrBalance].this.set("UsrBalance", result);}}
В секцию methods метод onEntityInitialized (пункт 6) :
// Переопределение базового метода Terrasoft.BasePageV2.onEntityInitialized, который // срабатывает после окончания инициализации схемы объекта страницы редактирования.
onEntityInitialized: function (){// Вызывается родительская реализация метода.this.callParent(arguments);// Вызов метода-обработчика, который рассчитывает значение колонки [UsrBalance].this.calculateBalance();}
Вам необходимо переопределить метод onSaved в секции methods схемы страницы редактирования
// Переопределение базового метода Terrasoft.BasePageV2.OnSaved.// Выполняет постобработку сохранения записи
onSaved: function(response, config){// Вызов родительской реализации.this.callParent(arguments);//Вызов Вашего метода
fir();}
"Сергей Кy6риш" написал:поскольку произойдет зачистка контента пакета, и все данные будут утеряны.
День добрый Сергей!!!
расскажите пожалуйста поподробнее на каком этапе произойдет зачистка контента в момент изменения? чтобы уже точно знать чего вообще не следует делать. спасибо!!!
Сергей, Михаил, в целом эта операция возможна.
Выполнял несколько раз, особых проблем замечено не было, если это первая фиксация пакета в хранилище. Очистки пакета не происходило.
Здравствуйте, в меня получилось добавить созданный пакет к серверу svn. По поводу потерь данных, это может произойти если пакет уже был ранние настроен на svn сервер. Так как мой пакет при создании не был настроен на svn, то в меня все работает, все сохраняется и нету потерь.
При передачи даты из поля Дата рождения с типом Terrasoft.ContentType.DATE, SelectQuery возвращает ошибку Uncaught The data types nvarchar and date are incompatible in the add operator. Как передавать дату в SelectQuery?
Есть ли примеры запроса даты в SelectQuery?
ваш вопрос был как передать "Дату" в SeleceQuery в виде параметра в фильтр запроса? если да то описывать какого типа передается параметр не требуется. просто выполняется создание фильтра и все, вот пример:
Существует- ли возможность интеграции bpm'online с внешним приложением по протоколу SOAP?
Например, в bpm'online я создаю некий Web- сервис, который читает из базы данных, далее по его WSDL создаю автономного клиента (консоль) и по RPC вызываю методы Web- сервиса bpm'online.. Такое возможно?
Возможно, для этих целей подойдет WCF Web- сервис? Разместить его в IIS, получить WSDL... дальше сгенерировать клиентские артефакты... и все.. или я не прав?
Есть некоторый конфигурационный Web- сервис, размещенный в пакете Custom.
Я хочу иметь возможность вызывать его методы из консольного приложения, для этого мне, соответственно, необходимо сгенерировать классы клиента по WSDL.
Date: 14.04.2016 16:07:28
Date (UTC): 14.04.2016 12:07:28
Exception Message: The service '/WebApp/0/ServiceModel/PaymentsRegisterService.svc' does not exist.
Exception Type: System.ServiceModel.EndpointNotFoundException
Exception Source: System.ServiceModel.Activation
Exception Stack Trace:
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
SessionID: k1zrorhl53nfgmtswhcohchx
Request URL:/WebApp/0/ServiceModel/PaymentsRegisterService.svc?wsdl
Request Path:/WebApp/0/ServiceModel/PaymentsRegisterService.svc
Request Type: GET
User Agent: Mozilla/5.0(Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
User Host Address:::1
User: Пользователь 1
Is Authenticated: True
Authentication Type: Forms
Is Secure Connection: False
Application Version: 7.7.0.2872
Application Path: C:\terrasoft\BankCustomerJourney770_Demo\
Application Virtual Path:/
Application Trust Level: Full
Machine Name: ALEKSEYBYKOV-PC
Is Local: True
Process ID:17564
Process Name: iisexpress.exe
Process Account Name: AlekseyBykov-PC\Aleksey-Bykov
Thread Account Name: AlekseyBykov-PC\Aleksey-Bykov
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
Net Framework Version: 4.0.30319.42000
DBExecutor Type: MSSqlExecutor
Артем, спасибо большое за ответ.
Так... а что же делать? Есть- ли возможность разработки SOAP Web- сервисов? Если я хочу (нужно) из внешнего приложения обращаться к Web- сервису bpmonline, генерируя по его WSDL прокси- классы?..
Web-сервисы
Интеграция приложений bpm’online с другими системами посредством web-сервисов позволяет существенно упростить процесс и значительно сократить время синхронизации данных.
Поддержка открытых стандартов (SOAP, WSDL) и широкая сфера применения web-сервисов позволяет связывать в единую информационную среду бизнес-приложения и системы, созданные на базе различных технологий.
Платформа bpm’online позволяет запрашивать данные из сторонних систем для передачи в bpm’online , равно как и вызывать собственные web-сервисы для получения данных из bpm’online.
В папке Terrasoft.WebApp\ServiceModel создаем файл SPMSUBPService.svc с текстом:
SPMSUBPService.svc
<%@ ServiceHost Language="C#" Debug="true" Service="SPMSUBPService.SPMSUBPService" Factory="System.ServiceModel.Activation.ServiceHostFactory" %>
Добавляем в файл Terrasoft.WebApp\ServiceModel\http\services.config описание нашего сервиса:
services.config
При попытке создания прокси WCF стали появляться ошибки.
1. Если в проект консольного приложения MS Visual Studio добавить ссылку на wsdl Web- сервиса (Add service reference):
An error occured while attempting to find services at h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService.svc?wsdl
Details
Was an error downloading ' h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService.svc?wsdl/$metadata'.
The request failed with the error message:--<html><head><title>Object moved</title></head><body><h2>Object moved to <a href="/0/ServiceModel/UsrSPMSUBPService.svc?wsdl/$metadata">here</a>.</h2></body></html>--
Metadata contains a reference that cannot be resolved:'h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService.svc?wsdl'.
The remote server returned an unexpected response:(302) Found.
Too many automatic redirections were attempted.
If the service is defined in the current solution, try building the solution and adding the service reference again.
2. Если для генерации прокси- классов использовать ServiceModel Metadata Utility Tool (Svcutil.exe), то следующая команда:
svcutil.exe/language:cs /out:generatedProxy.cs/config:app.config h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService.svc?wsdl
Завершается с такой ошибкой:
WS-Metadata Exchange Error
URI: h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService?wsdl
Метаданные содержат неразрешимую ссылку "h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService?wsdl"
Удаленный сервер вернул неожиданный ответ:(302) Found.
Слишком много попыток автоматического перенаправления.
HTTP Get Error
URI: h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService?wsdl
Возникла ошибка при загрузке "h t t p://localhost:8080/0/ServiceModel/UsrSPMSUBPService?wsdl"
Сбой запроса с сообщением об ошибке
<html><head><title>Object moved</title></head><body><h2>Object moved to <a href="/0/ServiceModel/UsrSPMSUBPService.svc?wsdl/$metadata">here</a>.</h2></body></html>
Чтобы протестировать эту службу, необходимо создать клиент и воспользоваться им для вызова службы. Это можно сделать, запустив программу svcutil.exe из командной строки со следующим синтаксисом:
class Test
{staticvoid Main(){
ServiceClient client =new ServiceClient();// Используйте переменную "client", чтобы вызвать операции из службы.// Всегда закройте клиент.
client.Close();}}
Visual Basic
Class Test
Shared Sub Main()
Dim client As ServiceClient = New ServiceClient()' Используйте переменную "client", чтобы вызвать операции из службы.
' Всегда закройте клиент.
client.Close()
End Sub
End Class
С ее помощью можно сгенерировать прокси- классы из сохраненного локально WSDL- файла. Далее скомпилировать эти классы в сборку и включить ссылку на сборку в проект консольного клиента, ну а дальше вызывать методы Web- сервиса из клиента, используя прокси- классы.
Добрый день!
Ошибка связана с тем, что в одном из обновлений Google отключил компонент SVG, которая использовалась в процессах.
Для решения задачи необходимо скопировать оригинальный файл, после чего заменить на новый (во вложении). Путь к файлу Terrasoft.WebApp\Resources\ui\Syncfusion\min\ej-diagram.js.
После замены остановить пул приложения и запустить. (Внимание! Именно Stop – Start, НЕ Recycle). ej-diagram.zip
Ошибка связана с тем, что в одном из обновлений Google отключил компонент SVG, которая использовалась в процессах.
Для решения задачи необходимо скопировать оригинальный файл, после чего заменить на новый (во вложении). Путь к файлу Terrasoft.WebApp\Resources\ui\Syncfusion\min\ej-diagram.js.
После замены остановить пул приложения и запустить. (Внимание! Именно Stop – Start, НЕ Recycle).