2014-08-27 48 views
1

我對EPL查詢很新。 寫了這個,它是拋出語法錯誤。EPL語法錯誤

@Name('ExpressionTotalQuantitySoFar') 
@Description('Gets the total quantity of a symbol so far') 
create expression totalQuantitySoFar{ (TAX) => 
    (Select sum(T.quantity) from TaxlotWindow as T where T.symbol = TAX.symbol and T.taxlotId < TAX.taxlotId) 
}; 


create variable double totQty = 5.0 ; 
@Name('ExpressionLongDebitBalanceTaxlotNoBox') 
@Description('Check is if a trade side is invalid, returns rue for invalid statements') 
create expression longDebitBalanceTaxlotNoBox{ (SECUR,TAX,ORD,AUE,FX) => 
    totQty = totalQuantitySoFar(TAX) 

    case when (totQty > 0) 
     then cashImpactBase(SECUR,TAX,ORD,AUE,FX)*(-1) 
    else 
     0.0 
    end 

}; 

它給大約情況下的語法錯誤。

任何幫助?

回答

1

發佈時始終包含語法錯誤文本。否則,人們應該如何提供幫助。

我的提示將是簡化,直到語法好。然後加回東西。

很可能這個奇怪的聲明「totQty = ..」是錯誤的原因。 EPL表達式不是一種編程語言,並且不允許Java或Scala中的變量聲明。也許只是使用Java靜態方法來計算,而不需要編程語言。