根据时间窗滚动查询变动的职等信息
POST
/TenantBaseExternal/api/v5/JobGrade/GetByTimeWindow
2.主要用于全量数据查询
2.每批次数据量必须小于等于300
3.滚动查询有过期时间限制。两次滚动查询接口调用间隔不能超出10秒,超出间隔后,查不到下批次数据。故必须通过while循环查出全部数据后再处理具体业务。
4.滚动查询不能跳页,拿了第一页后要拿第三页,滚动查询不支持
5.滚动查询不能回跳,拿了第三页之后要跳回第二页,滚动查询不支持
6.使用滚动查询而非分页查询,是为了防止大批量获取数据时,深分页导致超时
7.该接口暂时不支持旧版的元数据字段入参、出参控制
2.默认排序条件:若排序参数为空,则默认先按照组织名称升序
错误码示例
"data": null,
"code": "417",
"message": "只支持查询90天范围内的数据,请分段查询"
}
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://openapi.italent.cn/TenantBaseExternal/api/v5/JobGrade/GetByTimeWindow' \
--header 'Content-Type: application/json' \
--data-raw '//示例请求参数
{
"timeWindowQueryType":1,//时间窗查询类型
"startTime":"2021-01-01",//时间范围开始时间
"stopTime":"2021-03-21",//时间范围结束时间
"capacity":100,//每批次数目
"columns":["Name","OId","StartDate"],//查询列
"extQueries": [//自定义字段查询条件
{
"fieldName": "extExtQueryFloat_127666_832132060",
"queryType": 5,//等于
"values": [
"1"
]
},
{
"fieldName": "extExtQueryText_127666_1870946722",
"queryType": 6,//不等于
"values": [
"文本1"
]
},
{
"fieldName": "extExtQueryInt_127666_637453549",
"queryType": 7,//区间
"values": [
"1",
"1000"
],
"includeLowerValue": true,//包含最小值
"includeUpperValue": false//不包含最大值
}
],
"isWithDeleted": false,
"enableTranslate": true,//开启数据源自动翻译功能
"sort":{"Name":1},//排序
"scrollId":"DXF1ZXJ5QW5kRmV0Y2gBAAAAAAVrsaUWdnVycEd3OEFRRm02aEpHRFZQZ2htdw=="//本批次的ScrollId
}
------------------------------------------------------
//do-while调用Scroll接口示例
var allData = new List<XXXQueryV5ResultDTO>();//用于保存全部数据
string scrollId = null;//下批次滚动ID
bool isOver;//是否完成
int totalCount = 0;//数据总数
do
{
//请求参数,注意:scrollId参数,第一次是空,后续为上次结果返回的ScrollId
XXXTimeWindowScrollQueryV5Args args = new XXXTimeWindowScrollQueryV5Args
(
DateTime.Now.AddMonths(-1).Date,//时间范围开始时间
DateTime.Now.Date,//时间范围结束时间
scrollId,//本批次的ScrollId,第一次查询为空,后续为上次结果返回的ScrollId
100 //每批次数目
);
//调用API,注意判断响应结果是否成功后再处理
var result = provider.GetByTimeWindow(args);
if(result!=“200”)
break;//调用接口失败,需要记录错误日志信息便于后续排查
isOver = result.IsLastData;//是否结束
scrollId = result.ScrollId;//注意:scrollId赋值后供下次循环使用
if (result.Data.Count>0)
allData.AddRange(result.Data);
if (totalCount == 0)
totalCount = result.Total;
}
while (isOver != true);'
响应示例响应示例
{
"scrollId": "string",
"isLastData": true,
"total": 0,
"data": [
{
"name": "string",
"oId": "string",
"startDate": "2019-08-24T14:15:22Z",
"stopDate": "2019-08-24T14:15:22Z",
"status": 0,
"oIdResourceSet": "string",
"jobLayer": "string",
"grade": 0,
"businessModifiedBy": 0,
"businessModifiedTime": "2019-08-24T14:15:22Z",
"orderCode": 0,
"scoreHigh": 0,
"scoreLow": 0,
"objectId": "string",
"customProperties": {
"property1": {},
"property2": {}
},
"translateProperties": {
"property1": "string",
"property2": "string"
},
"createdBy": 0,
"createdTime": "2019-08-24T14:15:22Z",
"modifiedBy": 0,
"modifiedTime": "2019-08-24T14:15:22Z",
"stdIsDeleted": true
}
],
"code": "string",
"message": "string"
}
请求参数
Body 参数application/json