Мобильный телефон
Технические вопросы
7.x

Здравтвуйте!
Подскажите пожалуйста как я могу запретить изменять Мобильный телефон в карточке контакта?

ТОисть мне нужно отредактировать Деталь: Средства связи Контакта. Нада поставить ему галочку (только чтение). Как мне это сделать и где?

Это только нужно для мобильного телефона. Для домашнего и рабочего - пусть можна менять. Спасибо!

Нравится

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

Добрый день, Николай!

Поля детали "Средства связи контакта" нет возможности редактировать в зависимости от типа средства связи. Более расширенные возможности по настройке прав доступа запланированы в версии 7.9
В качестве обходного решения можно только повыносить отдельными полями в карточку и администрировать уже объект "Контакт" по колонкам.

Показать все комментарии
WCF
Web- сервис
wsdl
xml-rpc
авторизация
интеграция
Технические вопросы
7.x

Коллеги, приветствую.

Собственно вопрос - как разрешить удаленный вызов процедур Web- сервиса? Есть простой WCF Web- сервис, на его основе получен WSDL, из которого сгенерированы прокси- классы. Эти прокси- классы использует простой консольный клиент, например, просто вернуть строку с сервера - вылетает окно:

Судя по ссылке, запрос не проходит авторизацию, хотя в Terrasoft.WebApp\Web.config указано, что:

 
   
     
       
     

   
 

Как отключить авторизацию для RPC?

Был бы весьма признателен за информацию.

Спасибо.

--
С уважением, Алексей Быков.

Нравится

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

Переехали решать задачу в рамках технической поддержки:smile:

Здравствуйте, Алексей! Спасибо! :smile:

Вот некоторые подробности.

1. В \Terrasoft.WebApp\ServiceModel добавил UsrService.svc:

<%@ ServiceHost Language="C#" Debug="true" Service="Terrasoft.WebApp.ServiceModel.UsrService" CodeBehind="UsrService.svc.cs" %>

2. В \Terrasoft.WebApp\Web.config добавил:

  <appSettings>
    ...
    <add key="AllowedLocations" value="...;ServiceModel/UsrService.svc"/>
   ...
  </appSettings>
 
  ...
 
  <location path="ServiceModel/UsrService.svc">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
   ...

Контракт Web- сервиса в конфигурации (UsrIService.svc):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
 
namespace SimpleCustomService
{
    [ServiceContract]
    public interface UsrIService
    {
        [OperationContract]
        string SPMClientInfo();
    }
}

Реализация Web- сервиса в конфигурации (UsrService.svc):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
 
namespace SimpleCustomService
{
    public class UsrService : UsrIService
    {
        public string SPMClientInfo()
        {
            return "test string";
        }
    }
}

В \Terrasoft.WebApp\ServiceModel\http\services.config добавил:

...
 	<service behaviorConfiguration="BaseServiceBehavior" name="SimpleCustomService.UsrService">
        	<endpoint name="UsrServiceEndPoint"
           		binding="webHttpBinding"
           		behaviorConfiguration="RestServiceBehavior"
           		bindingNamespace="http://Terrasoft.WebApp.ServiceModel"
           		contract="SimpleCustomService.UsrIService" />
	        <endpoint address="soap" binding="basicHttpBinding" contract="SimpleCustomService.UsrIService"/>
	        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    	</service>
...

Нашел вот статью, попробую сделать как там описано. Аутентификация внешних запросов к веб-сервисам bpm'online

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

Здравствуйте.
Обратите внимание на ресурс: http://stackoverflow.com/questions/16028014/how-can-i-pass-a-username-p…

Здравствуйте, Александр! Спасибо большое за ответ, попробую сделать так.

Возвращаясь к началу, хочу отметить одну интересную деталь - если в Visual Studio попытаться добавить ссылку на WSDL (Add Web Reference), то получим такое вот окно:

URL тот же самый, что и в консоли:

http://localhost:8080/NuiLogin.aspx?ReturnUrl=%2f0%2fServiceModel%2fSimpleCustomService.svc

Здравствуйте, Алексей!

Даже если сделать так?

Показать все комментарии
7.7
автоматизация бизнес-процессов
Технические вопросы
7.x

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

Путём проб и ошибок выяснилось, что эта ошибка возникает после использования в элементе "Задача" и "Звонок" события "После сохранения записи"(Ошибка возникает даже если в указанное поле вписать только комментарий). Как быть с решением указанной проблемы?

И ещё один вопрос: Как обратиться к параметру в элементе Скрипт?
Обращение в виде LeadId(идентификатор Лида) - вызывает ошибку при публикации БП.

Нравится

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

Предположим у нас есть параметр процесса Text с типом "Строка".
В версии 760 (и более ранних) значение этого параметра можно было получить следующим кодом:
var leadId = LeadId;
В версии 770 этот код будет выглядеть по другому:
var leadId = Get("LeadId");

Что Вы хотите реализовать в событии "После сохранения записи"?

"Демьяник Алексей" написал:В версии 770 этот код будет выглядеть по другому:
var leadId = Get("LeadId");

"Демьяник Алексей" написал:В версии 770 этот код будет выглядеть по другому:
var leadId = Get("LeadId");

А как передать значение параметру? В документации информации не нашёл.

"Демьяник Алексей" написал:Что Вы хотите реализовать в событии "После сохранения записи"?

Обновление поля. Но на данный момент даже наличие комментария в этом поле вызывает ошибку.

"Коновалов Игорь" написал:

А как передать значение параметру? В документации информации не нашёл.

Топики:

http://www.community.terrasoft.ru/forum/topic/16294
http://www.community.terrasoft.ru/forum/topic/16335
http://www.community.terrasoft.ru/forum/topic/16361
http://www.community.terrasoft.ru/forum/topic/11784
http://www.community.terrasoft.ru/forum/topic/13848
http://www.community.terrasoft.ru/forum/topic/12023
http://www.community.terrasoft.ru/forum/topic/9477

Академия:
http://academy.terrasoft.ru/documents/docs/technic/BPMS/7.7.0/BPMonline…
http://academy.terrasoft.ru/documents/docs/technic/BPMS/7.7.0/BPMonline…
http://academy.terrasoft.ru/documents/?product=BPMS&ver=7.7.0

"Коновалов Игорь" написал:

Обновление поля. Но на данный момент даже наличие комментария в этом поле вызывает ошибку.

Насколько мне известно это исправлено в последних версиях 7.7 (для sales enterprise это 7.7.0.2875).

Спасибо за информацию.

Добрый день!
Подскажите, пожалуйста, можно ли с помощью стандартных инструментов в дизайнере построить бизнес-процесс, который бы вызывался кнопкой из карточки физ.лица и автоматически создавал продажу и продукт в продаже?
Общая схема такая:
1. Есть заявка на продукт с сайта, в которой уже указан продукт
2. Сотрудник call-Центра связывается с клиентом, редактирует карточку заявки и карточку физ.лица.
3. Запускает бизнес-процесс создания продажи и продукта в продаже из карточки физ.лица
4. Этот же бизнес-процесс привязывает заявку к продаже

Здравствуйте, Дарья!

Данную задачу можно реализовать, но не стандартными инструментами.
Вам необходимо:
1) Добавить кнопку на страницу редактирования. Подробнее
2) В обработчик кнопки добавить логику запуска процесса (за пример можно взять действие "Отправить на визирование" на странице редактирования раздела "Договоры"). В процесс необходимо передать Id открытой записи.
3) Собственно реализовать процесс

Алексей, спасибо за ответ!
Не отображается страница по ссылке "Подробнее" (ошибка 404, страница не найдена).

Здравствуйте!

Поправил.

Показать все комментарии
Технические вопросы
7.x

Добрый день!

Подскажите, пожалуйста.
Читаю сей мануал http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/CalculatedF...
Моя задача добавить чекбокс и по нажатию на него делать что-то с другим полем.
Пока не понятны пункты 3 и 4.

3. Настроить визуальное отображение поля [Остаток для оплаты]

Для этого нужно в свойстве diff модели представления описать конфигурационный объект с необходимыми параметрами. - Где это найти?

4. В свойство attributes модели представления добавить колонку [UsrBalance]

В конфигурационном объекте колонки [UsrBalance] указать зависимость от колонок [Amount] и [PaymentAmount], а также метод-обработчик — calculateBalance, который будет рассчитывать значение для колонки [UsrBalance]. - Где это найти?

Пожалуйста, тыкните носом. Спасибо.

Нравится

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

Добрый день! Описание строения любых модулей приведено по ссылке: http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/SchemaStru…
Там вы можете почитать и про свойство diff и attributes.
В системе есть похожая логика на ту, что вы хотите: она реализована в странице активности. Там по нажатию на чекбокс "Напомнить автору" становится доступным поле "Дата напоминания автору". Думаю, вы можете там подсмотреть реализацию.

Здравствуйте!
В конце пункта 6 статьи http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/CalculatedFields.html
приведен результирующий исходный код модуля OrderPageV2 как результат выполнения пунктов 2...6.

Если бы Вы писали этот код сами "с чистого листа", то для выполнения пункта 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();
                }
Показать все комментарии
добавление
контакт
Контрагент
редактирование
Технические вопросы
7.x

Здравствуйте! Подскажите, пожалуйста, как добавить JS событие при сохранении контрагента/контакта?
Вот кусок кода на странцие:

methods: {
fir: function()
{
if (this.get("UsrKey").checked)
{
this.set("UsrLoyaltyOfContact", "Лояльно");
}
else
{
this.set("UsrLoyaltyOfContact", "Не определено");
}
}

}

UsrKey - Boolen Checkbox, UsrLoyaltyOfContact - Справочник.

Не могу разобраться, куда подвесить событие?

Нравится

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

Здравствуйте!

Что-то похожее ранее обсуждалось здесь.

Вам необходимо переопределить метод onSaved в секции methods схемы страницы редактирования

                        // Переопределение базового метода Terrasoft.BasePageV2.OnSaved.
			// Выполняет постобработку сохранения записи
			onSaved: function(response, config) {
				// Вызов родительской реализации.
				this.callParent(arguments);
                                //Вызов Вашего метода
                                fir();
			}
Показать все комментарии

Добрый день.
Подскажите как добавить адрес хранилища SVN в уже созданный пакет.

Нравится

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

Здравствуйте!

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

"Сергей Кy6риш" написал:поскольку произойдет зачистка контента пакета, и все данные будут утеряны.

День добрый Сергей!!!

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

Здравствуйте, Михаил!

Проблемы могут возникнут при commit'е (синхронизации с сервером) или обновлении.
Также, могут возникнуть сложности с сохранением или удалением схем.

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

"Пащенко Александр Сергеевич" написал:

Сергей, Михаил, в целом эта операция возможна.

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


Александр, у меня не получается зафиксировать пакет, выдает ошибку. Что я делаю не так?

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

Здравствуйте, в меня получилось добавить созданный пакет к серверу svn. По поводу потерь данных, это может произойти если пакет уже был ранние настроен на svn сервер. Так как мой пакет при создании не был настроен на svn, то в меня все работает, все сохраняется и нету потерь.

Показать все комментарии
Технические вопросы
7.x

При передачи даты из поля Дата рождения с типом Terrasoft.ContentType.DATE, SelectQuery возвращает ошибку Uncaught The data types nvarchar and date are incompatible in the add operator.
Как передавать дату в SelectQuery?
Есть ли примеры запроса даты в SelectQuery?

Нравится

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

Посмотрел в конфигурации и не нашел такого типа. Возможно его нет и поэтому возникает ошибка.

Попопробуйте испольозвать Terrasoft.DataValueType.DATE_TIME или Terrasoft.DataValueType.DATE.
А также ESQ - http://academy.terrasoft.ru/documents/docs/technic/SDK/7.7.0/UsingEntit…

День добрый Роман!!!

ваш вопрос был как передать "Дату" в SeleceQuery в виде параметра в фильтр запроса? если да то описывать какого типа передается параметр не требуется. просто выполняется создание фильтра и все, вот пример:

     esq.filters.addItem(this.Terrasoft.createColumnFilterWithParameter(
          this.Terrasoft.ComparisonType.EQUAL, "StartDate", this.get("StartDate")));

если у вас в другом проблема, то прошу более подробно пояснить в чем у вас проблема. спасибо!!!

Показать все комментарии
soap
Web- сервисы
wsdl
интеграция
Технические вопросы
7.x

Коллеги, приветствую.

Существует- ли возможность интеграции bpm'online с внешним приложением по протоколу SOAP?
Например, в bpm'online я создаю некий Web- сервис, который читает из базы данных, далее по его WSDL создаю автономного клиента (консоль) и по RPC вызываю методы Web- сервиса bpm'online.. Такое возможно?

Был бы весьма признателен за информацию.

Спасибо.

--
С уважением Алексей Быков.

Нравится

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

Возможно, для этих целей подойдет WCF Web- сервис? Разместить его в IIS, получить WSDL... дальше сгенерировать клиентские артефакты... и все.. или я не прав?

Добрый день!

Посмотрите пост https://community.terrasoft.ru/node/16393#comment-62259

Отлично, спасибо!

Показать все комментарии
WCF
Web- сервис
wsdl
интеграция
Технические вопросы
7.x

Коллеги, приветствую.

Есть некоторый конфигурационный Web- сервис, размещенный в пакете Custom.

Я хочу иметь возможность вызывать его методы из консольного приложения, для этого мне, соответственно, необходимо сгенерировать классы клиента по WSDL.

Как получить доступ к WSDL моего сервиса?

Был бы весьма признателен за информацию.

Спасибо.

--
С уважением, Алексей Быков.

Нравится

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

Или же SOAP Web- сервисы и клиенты полностью разрабатываются в MS Visual Studio, а затем код Web- сервиса переносится (копируется) в конфигурационный?

Добрый день.
WSDL можно получить, например, так:
https://my_site/0/ServiceModel/my_web_service.svc?wsdl

Здравствуйте, Артем! Спасибо. Про параметр wsdl я знаю.. Не могли бы Вы проконсультировать
относительно пути до Web- сервиса -

ttps://my_site/0/ServiceModel/my_web_service.svc?wsdl

my_site - ? (в принципе, понятно...)
ServiceModel - ?

Требуется- ли какая- либо дополнительная настройка?

Ой, сорри, немного ошибся. Это не совсем конфигурационные web-сервисы.

Путь складывается так:
https://имя_сайта/0/rest/имя_сервиса
(это можно увидеть в модуле ServiceHelper)

Далее, что касается wsdl. По конфигурационным сервисам не получится получить wsdl. С ними нужно работать как с REST - простимы Post/Get запросами

При таких запросах:

http://localhost:8080/WebApp/0/ServiceModel/PaymentsRegisterService.svc?wsdl
http://localhost:8080/0/ServiceModel/PaymentsRegisterService.svc?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 прокси- классы?..

К вопросу об интеграции..

https://www.terrasoft.ru/products/bpmonline/integration

Web-сервисы
Интеграция приложений bpm’online с другими системами посредством web-сервисов позволяет существенно упростить процесс и значительно сократить время синхронизации данных.

Поддержка открытых стандартов (SOAP, WSDL) и широкая сфера применения web-сервисов позволяет связывать в единую информационную среду бизнес-приложения и системы, созданные на базе различных технологий.

Платформа bpm’online позволяет запрашивать данные из сторонних систем для передачи в bpm’online , равно как и вызывать собственные web-сервисы для получения данных из bpm’online.

Вполне вероятно, что мне подойдет WCF Web- сервис. DLL можно разместить в IIS и получить WSDL.

Добрый день!
Собственно то, о чем я говорил в самом первом ответе :), но для этого нужно дополнительные настройки (только если у Вас on-site)

В конфигурации создаем схему исходного кода c контрактом сервиса:
SPMSUBPServiceContract

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
 
namespace SPMSUBPService
{
    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        SPMClientInfoResponse SPMClientInfo(string Login);
    }
 
    [DataContract]
    public class SPMClientInfoResponse
    {
        bool success = true;
        string errorText = "";
 
        [DataMember]
        public bool Success
        {
            get { return success; }
            set { success = value; }
        }
 
        [DataMember]
        public string ErrorText
        {
            get { return errorText; }
            set { errorText = value; }
        }
    }
}

и схему исходного кода c реализацие сервиса:
SPMSUBPService

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
 
namespace SPMSUBPService
{
    public class SPMSUBPService : IService
    {
        public SPMClientInfoResponse SPMClientInfo(string Login)
        {
            return new SPMClientInfoResponse();
        }
    }
}

В папке 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

<services>
    ...
    <service behaviorConfiguration="BaseServiceBehavior" name="SPMSUBPService.SPMSUBPService">
        <endpoint name="SPMSUBPServiceEndPoint"
            binding="webHttpBinding"
            behaviorConfiguration="RestServiceBehavior"
            bindingNamespace="http://Terrasoft.WebApp.ServiceModel"
            contract="SPMSUBPService.IService" />
        <endpoint address="soap" binding="basicHttpBinding" contract="SPMSUBPService.IService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>
    ...
</services>

Модифицируем Terrasoft.WebApp\Web.config
Web.config

...
<location path="ServiceModel/SPMSUBPService.svc">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
</location>
...

Готово!
Сервис доступен по адресу: /0/ServiceModel/SPMSUBPService.svc
WSDL тоже есть: /0/ServiceModel/SPMSUBPService.svc?singleWsdl

Артем, спасибо большое за ответ, попробую сделать.

Отлично, все получилось. Спасибо!

При попытке создания прокси 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>

Сам сервис и WSDL доступны:

--

UsrSPMSUBPService Служба

Служба создана.

Чтобы протестировать эту службу, необходимо создать клиент и воспользоваться им для вызова службы. Это можно сделать, запустив программу svcutil.exe из командной строки со следующим синтаксисом:

svcutil.exe http://localhost:8080/0/ServiceModel/UsrSPMSUBPService.svc?wsdl
Доступ к описанию службы также можно получить как к одному файлу:

http://localhost:8080/0/ServiceModel/UsrSPMSUBPService.svc?singleWsdl
Это ведет к созданию файла конфигурации и файла кода, содержащего класс клиента. Добавьте эти два файла в клиентское приложение и используйте сгенерированный класс клиента для вызова службы. Например:

C#

class Test
{
    static void 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

Почему не удается сгенерировать прокси- классы?

C ?FlatWsdl я удаляю все ссылки xsd:import, но это не помогает.

Артем, не могли бы Вы подсказать, как теперь сгенерировать прокси- классы для клиента?

Получилось примерно таким образом.

Есть утилита wsdl.exe

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\wsdl.exe

С ее помощью можно сгенерировать прокси- классы из сохраненного локально WSDL- файла. Далее скомпилировать эти классы в сборку и включить ссылку на сборку в проект консольного клиента, ну а дальше вызывать методы Web- сервиса из клиента, используя прокси- классы.

На этом тему можно считать закрытой.

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

Когда запускаю бизнес процесс "Визирование заказа" в конфигураторе, появляется такая ошибка в консоли браузера. Как ее можно решить?

Нравится

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

Решение on-site или on-demand?

Добрый день!
Ошибка связана с тем, что в одном из обновлений Google отключил компонент SVG, которая использовалась в процессах.
Для решения задачи необходимо скопировать оригинальный файл, после чего заменить на новый (во вложении). Путь к файлу Terrasoft.WebApp\Resources\ui\Syncfusion\min\ej-diagram.js.
После замены остановить пул приложения и запустить. (Внимание! Именно Stop – Start, НЕ Recycle).
ej-diagram.zip

"Демьяник Алексей" написал:

Решение on-site или on-demand?


on-site

"Зарицкий Олег Васильевич" написал:

Добрый день!

Ошибка связана с тем, что в одном из обновлений Google отключил компонент SVG, которая использовалась в процессах.

Для решения задачи необходимо скопировать оригинальный файл, после чего заменить на новый (во вложении). Путь к файлу Terrasoft.WebApp\Resources\ui\Syncfusion\min\ej-diagram.js.

После замены остановить пул приложения и запустить. (Внимание! Именно Stop – Start, НЕ Recycle).

ej-diagram.zip


Спасибо, помогло

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