Добрый день!
Есть БП который обращается к веб сервису и получает коллекцию данных стандартными мададами коллекцию не обработать и не записать в деталь.
Подскажите, пожалуйста, как с помощью сценария обработать данные и записать их есть пример кода буду благодарен.
К сожалению С# не знаю.
Вот пример ответа от веб сервиса.
{
"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"
}
}
]
}
]
}
Нравится
Александр, судя по этой статье, можно настроить и без написания кода: после элемента веб-сервиса добавить элемент подпроцесса, который будет запускаться для каждой записи полученной коллекции. Потом настоить передачу значений полей коллекции в параметры. А внутри подпроцесса уже выполнять стандартным элементом сохранение записи на основе данных из параметров в нужный объект.
Зверев Александр,
Не работает данный подход процесс не передает данный в подпроцесс
Возможно, неправильно настроили параметр из коллекции в свойстве подпроцесса, проверьте.
Сейчас сервис выдает ошибку
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"
}
Можно опять же вызовом подпроцесса, а в нём проверять: если код не тот, то ничего не делать.