In the following example, none of the methods in the runBonus object are a compatible match because they are static. The last method would be compatible if it were an instance method; therefore, remove the STATIC keyword from its signature to ensure a match.
class-id bonusPout. method-id main STATIC. declare myDel as type myDelegate declare runBonus as type bonusPout. set myDel to method runBonus::calcBonus end method. method-id calcBonus (by value sal1 as binary-long by value sal2 as binary-long) returning finalB as binary-long STATIC. ... end method. method-id calcBonus (by value sal1 as binary-long) returning finalB as binary-long STATIC. ... end method. method-id calcBonus STATIC. ... end method. end class. delegate-id myDelegate. end delegate.