Бизнес процесс

Добрый день!

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

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

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

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

 {

    "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"

                        }

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

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