Вопрос

Как правильно задать ColumnPath при использовании фильтрации по справочнику в DataService

День добрый.

Не смог отыскать примера структуры JSON'а для DataService.

В запросе отправляю следующий Json для поиска обращений, хочу настроить фильтр таким образом, что бы отражались обращения только одного контакта (по номеру телефона или по id), подскажите пожалуйста пример такого запроса, не понимаю как правильно в этом случае задать ColumnPath. Может нужны еще какие-то настройки для фильтра

Сам думал, что структура должна быть похожей на:

{
    "RootSchemaName":"Case",
    "OperationType":0,
    "AllColumns": true,
     "Filters":{
        "RootSchemaName": "Contact",
        "FilterType": 1,
        "ComparisonType":11,
        "LogicalOperation":0,
        "IsEnabled":true,
        "LeftExpression": { "ExpressionType":0,"ColumnPath":"Id"},
        "RightExpression":{"ExpressionType":2,
            "Parameter":{"DataValueType":0, "Value":""}
        }
      
    }
    
    }

но при этом возникает ошибка:
The data types nvarchar and uniqueidentifier are incompatible in the add operator.

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

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

В этом примере Вы сравниваете Id с пустой строкой, потому и ошибка.

Вообще, с DataService работает интерфейс из браузера, можно настроить в разделе фильтр и отловить во встроенных в браузер «Инструментах разработчика» или отдельной программе Fiddler запрос. Например, раздел обращений с фильтром по какому-то контакту:

{  
   "rootSchemaName":"Case",
   "operationType":0,
   "filters":{  
      "items":{  
         "64d48f74-4e87-4740-bfd5-2b86f52e6747":{  
            "items":{  
               "FixedFilters":{  
                  "items":{  
 
                  },
                  "logicalOperation":0,
                  "isEnabled":true,
                  "filterType":6
               },
               "CustomFilters":{  
                  "items":{  
                     "customFilterContact_Case":{  
                        "filterType":1,
                        "comparisonType":3,
                        "isEnabled":true,
                        "trimDateTimeParameterToDate":false,
                        "leftExpression":{  
                           "expressionType":0,
                           "columnPath":"Contact"
                        },
                        "rightExpression":{  
                           "expressionType":2,
                           "parameter":{  
                              "dataValueType":10,
                              "value":"b9e98250-72c5-df11-b1ad-001d60e938c6"
                           }
                        }
                     }
                  },
                  "logicalOperation":0,
                  "isEnabled":true,
                  "filterType":6
               },
               "FilterStatus":{  
                  "filterType":1,
                  "comparisonType":3,
                  "isEnabled":true,
                  "trimDateTimeParameterToDate":false,
                  "leftExpression":{  
                     "expressionType":0,
                     "columnPath":"Status.IsFinal"
                  },
                  "rightExpression":{  
                     "expressionType":2,
                     "parameter":{  
                        "dataValueType":1,
                        "value":false
                     }
                  }
               }
            },
            "logicalOperation":0,
            "isEnabled":true,
            "filterType":6
         }
      },
      "logicalOperation":0,
      "isEnabled":true,
      "filterType":6
   },
   "columns":{  
      "items":{  
         "Id":{  
            "caption":"",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"Id"
            }
         },
         "Number":{  
            "caption":"",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"Number"
            }
         },
         "Subject":{  
            "caption":"Тема",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"Subject"
            }
         },
         "Category":{  
            "caption":"Категория",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"Category"
            }
         },
         "Owner":{  
            "caption":"Ответственный",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"Owner"
            }
         },
         "Status":{  
            "caption":"Состояние",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"Status"
            }
         },
         "SolutionDate":{  
            "caption":"Время разрешения",
            "orderDirection":2,
            "orderPosition":1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"SolutionDate"
            }
         },
         "RegisteredOn":{  
            "caption":"Дата регистрации",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":0,
               "columnPath":"RegisteredOn"
            }
         },
         "EntryPointsCount":{  
            "caption":"",
            "orderDirection":0,
            "orderPosition":-1,
            "isVisible":true,
            "expression":{  
               "expressionType":3,
               "aggregationType":1,
               "columnPath":"[EntryPoint:EntityId].Id",
               "subFilters":{  
                  "items":{  
                     "8ad3363d-df30-4bf7-a8b0-b769234f03d4":{  
                        "filterType":1,
                        "comparisonType":3,
                        "isEnabled":true,
                        "trimDateTimeParameterToDate":false,
                        "leftExpression":{  
                           "expressionType":0,
                           "columnPath":"IsActive"
                        },
                        "rightExpression":{  
                           "expressionType":2,
                           "parameter":{  
                              "dataValueType":1,
                              "value":true
                           }
                        }
                     }
                  },
                  "logicalOperation":0,
                  "isEnabled":true,
                  "filterType":6
               }
            }
         }
      }
   },
   "isDistinct":false,
   "rowCount":30,
   "rowsOffset":0,
   "isPageable":true,
   "allColumns":false,
   "useLocalization":true,
   "useRecordDeactivation":false,
   "serverESQCacheParameters":{  
      "cacheLevel":0,
      "cacheGroup":"",
      "cacheItemName":""
   },
   "queryOptimize":false,
   "useMetrics":false,
   "querySource":0,
   "ignoreDisplayValues":false,
   "conditionalValues":null,
   "isHierarchicShow more

Конкретно за это поле «Контакт» отвечает блок:

"CustomFilters":{  
   "items":{  
      "customFilterContact_Case":{  
         "filterType":1,
         "comparisonType":3,
         "isEnabled":true,
         "trimDateTimeParameterToDate":false,
         "leftExpression":{  
            "expressionType":0,
            "columnPath":"Contact"
         },
         "rightExpression":{  
            "expressionType":2,
            "parameter":{  
               "dataValueType":10,
               "value":"b9e98250-72c5-df11-b1ad-001d60e938c6"
            }
         }
      }
   },
   "logicalOperation":0,
   "isEnabled":true,
   "filterType":6
},

По телефону можно настроить и посмотреть аналогично.

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

Можно еще подробнее уточнить, где можно увидеть в браузерных инструментах разработчика вид настроенного фильтра?

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