Вопрос

Формат даты в DataService/json/reply/InsertQuery

Добрый день

Интегрируюсь с BPM Online 7.13 с использованием DataService.

Реализую метод добавления записи звонка Call. Создаю объект InsertQuery

InsertQuery insertQuery = new InsertQuery()

            {

                RootSchemaName = "Call",

                ColumnValues = new ColumnValues()

            };

и добавляю поля через

insertQuery.ColumnValues.Items = new Dictionary();

При добавлении только значения Id запрос выполняется ок, запись сохраняется

При добавлении значения CreatedOn в формате [""\""2000-12-31T09:41:59\""""""""] (без экранирующих символов) после сериализации в JSON получается объект (во вложении) со следующим значением CreatedOn (с экранирующими символами)

"CreatedOn": {

                "ExpressionType": 2,

                "Parameter": {

                    "DataValueType": 7,

                    "Value": "\"\"\\\"\"2019-07-28T07:31:02\\\"\"\"\"\"\"\"\"",

                    "ShouldSkipConvertion": false

                },

                "FunctionType": 0,

                "MacrosType": 0,

                "DatePartType": 0,

                "AggregationType": 0,

                "AggregationEvalType": 0

            }

Вызов BPM DataService/json/reply/InsertQuery возращает ошибку формата JSON

HttpStatusCode: 500

 HttpResponseText: {"responseStatus":{"ErrorCode":"JsonReaderException","Message":"Additional text encountered after finished reading JSON content: \\. Path '', line 1, position 2.","Errors":[]},"rowsAffected":-1,"nextPrcElReady":false,"success":false}

 

Запрос JSON валидируется без ошибок.

Пробовал разные варианты формата, в ответ код JsonReaderException и текст ошибки те же, с отличием в position

Просьба подсказать, где ошибаюсь, и привести пример правильного значения даты после сериализации JSON

Спасибо

 

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

Нравится

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

Открыл Fiddler, записал контакту дату рождения, видно такой формат:

"Date":{  
   "expressionType":2,
   "parameter":{  
      "dataValueType":8,
      "value":"\"2001-07-08T11:46:07.000\""
   }
}

А вообще, при вставке как в таблицы разделов, так и деталей значения CreatedOn и ModifiedOn не передаются, как видно в том же Fiddler. Видимо, при пустом значении сервер сам подставляет текущую дату. Например, запрос на вставку на деталь знаменательных событий целиком:

{  
   "rootSchemaName":"ContactAnniversary",
   "operationType":1,
   "columnValues":{  
      "items":{  
         "Id":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":0,
               "value":"d5094019-1d92-4fc1-ac03-bbcf620a56c9"
            }
         },
         "CreatedBy":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"410006e1-ca4e-4502-a9ec-e54d922d2c00"
            }
         },
         "Contact":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"93a1c457-c22f-48a9-9f7f-65f1dd99dff3"
            }
         },
         "AnniversaryType":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"173d56d2-fdca-df11-9b2a-001d60e938c6"
            }
         },
         "Date":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":8,
               "value":"\"2019-07-08T11:46:07.000\""
            }
         }
      }
   }
}

 

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