今天在用web api创建一条记录时报了个标题里的错,咋看这错说的很明白了,属性字段的值超范围了,但咱们看下具体的问题
请求url是这样的http://xx/api/data/v8.0/new_recommendedrecords,请求参数是这样的
{我在把详细的错误贴出来The value of 'new_workyear' on record of type 'new_positions' is outside the valid range
"new_recommender@odata.bind":"/accounts(daf8a302-bbba-e611-80ed-d7ac411ee81d)",
"new_job@odata.bind":"/new_positionses(a26e9683-a080-e611-9429-ecf3deb0d460)",
"new_company@odata.bind":"/new_companies(ca56f22e-9a80-e611-9428-ed0f9fb7b50e)",
"new_workwith":false
}
咋看这条错误是不是很奇怪,我的请求里没有 new_workyear这个字段,我创建的记录的实体也是new_recommendedrecord而不是new_positions,为什么会报字段值超出范围呢?
我们再回过头来看请求参数,第二个参数是个查找字段,关联的是new_positions这个实体,问了一圈以后确定有人动过了这个实体中new_workyear这个picklist的值,最后再去看下需要关联的那条记录,这个字段之前是有值的现在显示是空的,通过后台数据库查看value确实已经不存在于picklist字段的value集中了,再把记录的字段值恢复后就能创建了。
至于在创建A记录,A记录中关联的B记录,而B记录中的picklist字段值异常导致的A记录无法创建成功,这个问题的原因就需要专家来解读了。