漏洞 ID 编号 |
BUG-000174676 |
已提交 | February 28, 2025 |
上次修改时间 | March 24, 2025 |
适用范围 | ArcGIS Pro |
找到的版本 | 3.2.1 |
操作系统 | Windows Server |
操作系统版本 | 2016 64 Bit |
状态 | As Designed
经开发团队审核,已确定此行为符合设计。 有关详细信息,请参阅“其他信息”部分。
|
附加信息
This is the intended design, but the rule is written incorrectly. A literal value cannot be returned if no field is assigned.
Currently, the rule is not assigned to any field. However, there is an else statement that may execute and return a value of 101. If that branch is executed, 101 is returned without a designated field to store it.
var gID = $feature.Foreign_Key
var related_Features = Filter(FeatureSetByName($datastore, 'cities', ["CITY_FIPS", "STATE_CITY"]), 'GlobalID = @gID')
var test = First(related_Features)
if (!IsEmpty(test)){
return {
"result" : {"attributes" : {"XY" : test.CITY_FIPS, "STATE_CITY" : test.POP1990}}
}
} else {
return 101
}
The user need to specify which field to return the 101 to or simply if they don't want to do anything replace it with return;
var gID = $feature.Foreign_Key
var related_Features = Filter(FeatureSetByName($datastore, 'cities', ["CITY_FIPS", "STATE_CITY"]), 'GlobalID = @gID')
var test = First(related_Features)
if (!IsEmpty(test)){
return {
"result" : {"attributes" : {"XY" : test.CITY_FIPS, "STATE_CITY" : test.POP1990}}
}
} else {
return;
}
解决办法
As a workaround, create multiple rules for one table, where each rule will dedicatedly calculate the values for one field.
重现步骤