Вопрос

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

После обновлении( https://academy.terrasoft.ru/documents/instrukciya-po-obnovleniyu-bpmonline-7-12-4?document=enterprise#HT_user_upgrade_instruction_backup) новой версий приложения, вошёл в систему все нормально, но когда я нажал компилировать все, до конца не дошёл, появляется несколько ошибок.

Это системные файлы, изменить нельзя.

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

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

У меня такой же вопрос

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день! 

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

У меня такой же вопрос

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

Уточните, речь идет о базовой конфигурации или у Вас доработанная версия со своей логикой?

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

Добрый день. Можно ли как-то вызвать из C# кода установку данных, зная id или название требуемого элемента?

У меня такой же вопрос

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

Что вы подразумеваете под установкой данных? В моем понимании это всего лишь записи в БЛ с определенной структурой, и на c# вы можете их добавлять через esq или insert запросы или выполнять пользовательские sql запросы через CustomQuery

 

Григорий Чех,

Я имею в виду данные пакета. 

Добрый день!
Получаете Uid данных и вызываете код:

var utilities = new Terrasoft.Core.Packages.PackageInstallUtilities(userConnection);
utilities.InstallSortedData(uids, true);

 

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

Добрый день,
у меня версия 7.12.3, и хочу обновить до версии 7.12.4, и согласно инструкциям(https://academy.terrasoft.ru/documents/instrukciya-po-obnovleniyu-bpmonline?utm_source=newsletter&utm_medium=email&utm_campaign=regular_updates_v7133_partners_ru&bulk_email_rid=8931&bpmtrackid=4&bpmreplica=0&contactId=3ab32569-7f5a-4cc8-a6f6-fd19fcac2ec5&bulkEmailRecipientId=99611cd5-0227-450f-a60d-9ba30890d353), сначала надо выполнить действия Сгенерировать исходный код для всех элементов, и когда я это делаю, появляться ошибка.  В логах  такая ошибка: 

Ошибка генерации исходного кода схемы "PredictCaseFieldValuesProcess" из пакета "MLCaseClassification". UId ce078417-ab31-44be-9c43-9199d72e8a92: Unable to cast object of type 'Terrasoft.Core.Process.ProcessSchemaStartSignalEvent' to type 'Terrasoft.Core.Process.ProcessSchemaActivity'.
2019-04-22 16:27:18,176 System.InvalidCastException: Unable to cast object of type 'Terrasoft.Core.Process.ProcessSchemaStartSignalEvent' to type 'Terrasoft.Core.Process.ProcessSchemaActivity'.
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AddParameterMapInfo(Dictionary`2 processParameters, String match)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AnalyzeParameterScriptCode(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterInfo(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter, String keyPrefix)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterMappings(Dictionary`2 parametersMapInfo, IEnumerable`1 schemaParameters, Guid schemaElementUId)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.GenerateProcessParameterMappings()
   at Terrasoft.Core.Process.FlowSchemaGenerator.Generate()
   at Terrasoft.Core.Process.BaseProcessSchema.GenerateFlowSchema(IProcessComponentSetStateService stateService)
   at Terrasoft.Core.Process.ProcessSchemaManager.SaveFlowSchema(ProcessSchema schema, UserConnection connection)
   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.ActualizeSchemaInfo(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)
   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.GetSchemaSources(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)
   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(TSchemaManagerSchema schema, Guid schemaId, UserConnection userConnection)
   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(Guid sysSchemaId, ISchemaManagerItem schemaManagerItem, UserConnection userConnection)
   at Terrasoft.Core.Packages.PackageInstallUtilities.InternalInstallSchemasAssociatedData(Guid schemaId, SchemaDescriptor schemaDescriptor, Boolean continueIfError)
2019-04-22 16:27:18,184 Ошибка выполнения операции на элементе "PredictCaseFieldValuesProcess", UId = ce078417-ab31-44be-9c43-9199d72e8a92.
2019-04-22 16:27:18,184 System.InvalidCastException: Unable to cast object of type 'Terrasoft.Core.Process.ProcessSchemaStartSignalEvent' to type 'Terrasoft.Core.Process.ProcessSchemaActivity'.
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AddParameterMapInfo(Dictionary`2 processParameters, String match)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AnalyzeParameterScriptCode(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterInfo(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter, String keyPrefix)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterMappings(Dictionary`2 parametersMapInfo, IEnumerable`1 schemaParameters, Guid schemaElementUId)
   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.GenerateProcessParameterMappings()
   at Terrasoft.Core.Process.FlowSchemaGenerator.Generate()
   at Terrasoft.Core.Process.BaseProcessSchema.GenerateFlowSchema(IProcessComponentSetStateService stateService)
   at Terrasoft.Core.Process.ProcessSchemaManager.SaveFlowSchema(ProcessSchema schema, UserConnection connection)
   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.ActualizeSchemaInfo(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)
   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.GetSchemaSources(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)
   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(TSchemaManagerSchema schema, Guid schemaId, UserConnection userConnection)
   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(Guid sysSchemaId, ISchemaManagerItem schemaManagerItem, UserConnection userConnection)
   at Terrasoft.Core.Packages.PackageInstallUtilities.InternalInstallSchemasAssociatedData(Guid schemaId, SchemaDescriptor schemaDescriptor, Boolean continueIfError)

Подскажите что нужно сделать что бы ее исправить?

Конфигурация успешно компилируется. Сайт работает.

Прикрепленные файлы
Error.png169.44 КБ

У меня такой же вопрос

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

Для решения необходимо добавить запись <add key="Feature-UseCodeAnalyzer" value="false" /> (или если она есть модифицировать значением false), в конфиге приложения  и WorkspaceConsole (Terrasoft.WebApp\Web.config и Terrasoft.Tools.WorkspaceConsole.exe.config). Затем выполнить команду "Сгенерировать для требующих генерации" и команду "Компилировать все".

Мотков Илья,

Спасибо, внес изменения в Web.config и Terrasoft.Tools.WorkspaceConsole.exe.config и заработало.

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

Здравствуй, уважаемое сообщество!

Долгое время назад был написан бизнес-процесс, который до некоторого времени стабильно выполнял свои функции, и в конце отправлял email пользователю... но последние несколько дней перестал это делать.

Решил проверить БП и при нажатии на элемент "Отправить email" появляются ошибки в консоли "Cannot read property 'setValue' of undefined", и параметры элемента не отображаются - вечная "Загрузка".

 

Подскажите, пожалуйста, куда копать и что можно глянуть?

У меня такой же вопрос

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

Попробуйте перегенерировать схемы  очистить редис и скомпилировать все. При компиляции если ошибка останется вы должны увидеть в какой схеме происходит ошибка (источник ошибки).

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

Доброго дня,

столкнулся с проблемой, прошу вашей помощи.

при попытке обновлении guid("UsrRegistrationStatusId") с помощью odata используя json формат полезной нагрузки получаю ошибку 

"message": "Cannot convert a primitive value to the expected type 'Edm.Guid'. See the inner exception for more details."
"message": "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)."

 привожу пример

http метод put,

передаваемый json  

{
"UsrRegistrationStatusId":"a9d44061-de29-4578-9df6-d2f226573a06",
"UsrTitle":"myvalue",
"UsrFirstName":"myvalue",
"UsrLastName":"myvalue",
"UsrPreferredEmail":"myvalue@mm.mm",
"UsrDateOfBirth":"2019-04-18T11:14:26.697Z",
"UsrOccupation":"myvalue",
"UsrJobTitle":"myvalue",
"UsrCompanyPersonal":"myvalue",
"UsrComment":"myvalue",
"UsrModifiedOn":"2019-04-18T11:14:26.697Z",
"UsrPassportNumber":"myvalue",
"UsrContactNumber":"myvalue",
"UsrDateOfExpiry":"2019-04-18T11:14:26.697Z",
"UsrNationality":"myvalue",
"UsrGuestTypeId":"myvalue",
"UsrMainGuestId":"myvalue",
"UsrIsAccompanyingPerson":"myvalue",
"UsrFlightsModifiedOn":"2019-04-18T11:14:26.697Z"
}

Возможно ли сформировать поля в json  с определенным типом например Edm.Guid ? Было бы круто если покажите пример с описанием типа данных.

Спасибо за внимание!

 

 

У меня такой же вопрос

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

Представьте Id  Guid в вашем Json как

guid'9d44061-de29-4578-9df6-d2f226573a06'

Спасибо за ответ!

но не помогло  ошибка таже,

urn запроса 0/ServiceModel/EntityDataService.svc/UsrGuestCollection(guid'3b42f755-1f62-4358-878c-47f460ab9e57')
json

{
"UsrRegistrationStatusId":"guid'a9d44061-de29-4578-9df6-d2f226573a06'"
}
полный ответ 

{
  "error": {
    "code": "4",
    "message": {
      "lang": "",
      "value": "An error occurred while processing this request."
    },
    "innererror": {
      "message": "An error occurred while processing this request.",
      "type": "System.Data.Services.DataServiceException",
      "stacktrace": "   at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)\r\n   at System.Data.Services.Serializers.Deserializer.HandlePutRequest()\r\n   at System.Data.Services.DataService`1.HandlePutOperation(RequestDescription description, IDataService dataService)\r\n   at System.Data.Services.DataService`1.ProcessIncomingRequest(RequestDescription description, IDataService dataService)\r\n   at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)\r\n   at System.Data.Services.DataService`1.HandleRequest()",
      "internalexception": {
        "message": "Cannot convert a primitive value to the expected type 'Edm.Guid'. See the inner exception for more details.",
        "type": "Microsoft.Data.OData.ODataException",
        "stacktrace": "   at Microsoft.Data.OData.Json.ODataJsonReaderUtils.ConvertValue(Object value, IEdmPrimitiveTypeReference primitiveTypeReference, ODataMessageReaderSettings messageReaderSettings, ODataVersion version, Boolean validateNullValue)\r\n   at Microsoft.Data.OData.Json.ODataJsonPropertyAndValueDeserializer.ReadPrimitiveValueImplementation(IEdmPrimitiveTypeReference expectedValueTypeReference, Boolean validateNullValue)\r\n   at Microsoft.Data.OData.Json.ODataJsonPropertyAndValueDeserializer.ReadNonEntityValueImplementation(IEdmTypeReference expectedTypeReference, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, CollectionWithoutExpectedTypeValidator collectionValidator, Boolean validateNullValue)\r\n   at Microsoft.Data.OData.Json.ODataJsonEntryAndFeedDeserializer.ReadEntryProperty(IODataJsonReaderEntryState entryState, IEdmProperty edmProperty)\r\n   at Microsoft.Data.OData.Json.ODataJsonEntryAndFeedDeserializer.ReadEntryContent(IODataJsonReaderEntryState entryState, IEdmNavigationProperty& navigationProperty)\r\n   at Microsoft.Data.OData.Json.ODataJsonReader.ReadAtEntryStartImplementation()\r\n   at Microsoft.Data.OData.ODataReaderCore.ReadImplementation()\r\n   at Microsoft.Data.OData.ODataReaderCore.InterceptException[T](Func`1 action)\r\n   at System.Data.Services.Serializers.EntityDeserializer.ReadEntry(ODataReader odataReader, SegmentInfo topLevelSegmentInfo)\r\n   at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo)\r\n   at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)",
        "internalexception": {
          "message": "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).",
          "type": "System.FormatException",
          "stacktrace": "   at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)\r\n   at System.Guid.TryParseGuidWithDashes(String guidString, GuidResult& result)\r\n   at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)\r\n   at System.Guid..ctor(String g)\r\n   at Microsoft.Data.OData.Json.ODataJsonReaderUtils.ConvertStringValue(String stringValue, Type targetType)\r\n   at Microsoft.Data.OData.Json.ODataJsonReaderUtils.ConvertValue(Object value, IEdmPrimitiveTypeReference primitiveTypeReference, ODataMessageReaderSettings messageReaderSettings, ODataVersion version, Boolean validateNullValue)"
        }
      }
    }
  }
}

Так же обратите внимание, на формирование строка запроса, в примере изменения имени контакта с идентификатором 00000000-0000-0000-0000-000000000000 из коллекции контактов ContactCollection.

// Строка запроса:
// PUT <Адрес приложения BPMonline>/0/ServiceModel/EntityDataService.svc/ContactCollection(guid'00000000-0000-0000-0000-000000000000')
// или
// MERGE <Адрес приложения BPMonline>/0/ServiceModel/EntityDataService.svc/ContactCollection(guid'00000000-0000-0000-0000-000000000000')

Григорий Чех,

Сейчас выполняется запрос вида 

 PUT <Адрес приложения BPMonline>0/ServiceModel/EntityDataService.svc/UsrGuestCollection(guid'3b42f755-1f62-4358-878c-47f460ab9e57')

А если без двойных кавычек

Json

{
"UsrRegistrationStatusId":guid'a9d44061-de29-4578-9df6-d2f226573a06'
}

Григорий Чех,

Без двойных кавычек сработает ошибка парсинга json 

{
"UsrRegistrationStatusId":guid'a9d44061-de29-4578-9df6-d2f226573a06'
}

 "message": "Invalid JSON. A token was not recognized in the JSON content."

 

В принципе должно быть

{
"UsrRegistrationStatusId":"a9d44061-de29-4578-9df6-d2f226573a06"
}

А если попробовать поменять простое текстовое поле например Name (если оно есть в вашем объекте) запрос корректно отработает?

Григорий Чех,

Да если менять обычное текстовое поле всё проходит успешно.

Были проблемы с типами данных - числами и датой, та же ошибка с преобразованием типов, на дату решилось преобразованием строки к виду "2019-04-18T11:14:26.697Z" , с числом не получается воспроизвести.

{
"UsrRegistrationStatusId":"a9d44061-de29-4578-9df6-d2f226573a06"
}

На такой формат выводит ошибку приведенную во  2 коментарии 

Привидите полный код формирования запроса с установкой всех служебных заголовков и обратите внимание на примеры для c# 

Прошу прощёния, данном формате запрос работает корректно.
{
"UsrRegistrationStatusId":"a9d44061-de29-4578-9df6-d2f226573a06"
}
Извините что ввёл в заблуждение.
Проявилось не сразу.. запросы выполнял в rest api клиенте после перезапуска клиента данный формат успешно обновил запись.

Премного вам благодарен! Огромное спасибо за ваше время!

Есть и более сложный способ, там не просто голый Guid надо, а с упоминанием названия коллекции, как тут с полом:

{
    Name: 'John',
    BirthDate: new Date(123321123321),
    Gender: {__metadata: { uri: 'GenderCollection(guid\'FC2483F8-65B6-DF11-831A-001D60E938C6\')' }}
}

И в таком случае справочное поле пишется без Id в конце.

Больше примеров в этом обсуждении.

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

Добрый день, уважаемое сообщество!

Возникла необходимость передать во внешний сервис список проектов, привязанных к контакту текущего пользователя (под которым была выполнена аутентификация через AuthService.svc). При вызове процесса через  ProcessEngineService.svc я могу получить контакт текущего пользователя и выполнить нужный запрос, но не могу вернуть его результат (или могу?).

А при обращения через OData я могу получить результат запроса, но не представляю, как в него добавить фильтр по текущему контакту.

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

У меня такой же вопрос

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

Посмотрите в академии ПРИМЕРЫ ЗАПРОСОВ НА ВЫБОРКУ С ФИЛЬТРАЦИЕЙ

На вскидку вам надо получить id текущего пользователя в переменую ContactCurrentUserId и вызвать чтото типа

В примере ниже e71dceda-9b0f-4509-aa10-f479aa69a9eb - Id контакта текущего пользователя а фильтрация идет по значению Guid в поле Contact объекта Project

Url сайта>/0/ServiceModel/EntityDataService.svc/ProjectCollection?$filter=Contact/Id eq guid'e71dceda-9b0f-4509-aa10-f479aa69a9eb'

 

Через OData можно считать SysAdminUnit с фильтрацией по логину пользователя, тем самым получить contactId. А дальше делать уже запрос на выборку и фильтрацию проектов.

Через ProcessEngineService можно получить значение пвраметра (указав название параметра в ResultParameterName), но с интерпретируемыми процессами это работает плохо

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

Добрый день!

Подскажите, где (в каком месте) заполняется параметр БП [#Id созданного счета#] в БП CreateInvoice?

В этот параметр попадает Id вновь созданного счета, на каком этапе, не могу понять, помогите разобраться

У меня такой же вопрос

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

Заполняется в методе CreateInvoice БП CreateInvoiceFromOrder

public virtual void CreateInvoice() {
	OrderInvoiceHelper helper = Factories.ClassFactory.Get<OrderInvoiceHelper>(new Factories.ConstructorArgument("userConnection", UserConnection));
CreatedInvoiceId = helper.CreateEntity("Order", "Invoice", CurrentOrder, new Dictionary<string, string> {
	{"Currency", "Currency"},
	{"CurrencyRate", "CurrencyRate"},
	{"Contact", "Contact"},
	{"Account", "Account"},
	{"Owner", "Owner"},
	{"Amount", "Amount"},
	{"Opportunity", "Opportunity"}
}, new Dictionary<string, object> { { "Order", CurrentOrder } });
}

 

Вот я слепошарый! Спасибо!

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

Всем доброго дня. Версия 7.12.

Существует ли способ отписки от сообщения? Обычно в init идёт подписка на sandbox примерно в таком виде:

init: function(callback, scope) {
	this.callParent(arguments);
 
	this.sandbox.subscribe("startMessageEvent", function(arg) {
		console.log(arg)
	}, this, ["messageId"]);
},

Можно ли отписаться от sandbox? Конкретная задача - изменить обработчик, т.е. то, что внутри функции function(arg){}. Предполагаю, что для этого нужно сначала отписаться от сообщения, после чего подписаться на него заново.

У меня такой же вопрос

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

Попробуйте полностью переопределить метод init.

Проще использовать базовый функционал а именно unsubscribePtp примерно так:

this.sandbox.unsubscribePtp("startMessageEvent");
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Подскажите, как можно в аналитике (тип график), в "показать данные" таблице показать количество активнотей у ответственного, и отфильтровать за указаный период без привязки к разделу?

таблице со столбцами

Ответственный | Количество активностей

У меня такой же вопрос

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

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

За основу можете взять пример воронки продаж в дешбордах - там тоже реализована возможность фильтрации периода.

Также посмотрите статью на Академии по добавлению пользовательского виджета итогов.

Войдите или зарегистрируйтесь, чтобы комментировать