我有一个数组可以检查所有“OpEx”,这些都将采用如下格式。
<opex code = "##">
<nettAmount></nettAmount>
<grossAmount></grossAmount>
<accessibility></accessibility>
</opex>
其中可能有 50 个,所以我想取一个特定的(比如说“MA”)并设置它的数量等,我有以下内容,但我只知道如何创建一个新的 opex 并设置它的值。
我不知道我将如何改变现有运营成本的值。(我使用了布尔值,因为在数组访问它们时我无法编辑项目。
rule "Testing"
salience 500
when
$result : Result($opexs : optionalExtras)
Policy($rType : rtpType)
then
boolean opexThere = false;
for (OptionalExtra oe : (ArrayList<OptionalExtra>) $opexs){
logger.info("Array created – Size = ["+$opexs.size()+"]");
if (oe.getCode().equals("MA"))
{
boolean opexThere = true;
}
if (opexThere){
#OptionalExtra opex = new OptionalExtra();
logger.info("OpEx MA exists original net/gross = ["+oe.getCode()+"-/-"+oe.getNettAmount()+"-/-"+oe.getGrossAmount());
opex.setNettAmount(1000);
opex.setGrossAmount(1000);
opex.setAccessibility("C");
$result.addOptionalExtra(opex);
$result.setOpexFlexed(true);
}
}
end
如果我要删除 # 并包含 opex.setCode("MA"); 这只会创建第二个 MA opex,这不是我想要做的。我需要编辑现有的 Opex。
任何帮助将不胜感激,因为我尝试了通常用于此目的的各种技术,但似乎无法使任何工作。