You were on the right track; the operation is rejected (and the process continues to search for an alternative operation/tool) if no matching tool can be found. In this case, you still want to have a successfull tool selection. The operation will subsequently be automatically ignored (at least in NX11.0.1) if your machining feature doesn't have a chamfer.
One way to do that is to make the "tool assignments" conditional:
IF mwf.DEPTH_TOP_CHAMFER > 0 THEN tool.'(C) Chamfer Length' = mwf.DEPTH_TOP_CHAMFER * 2.0
You must do this for all your tool.xxx = mwf.yyy conditions
Finally, add one more condition to make sure that your operation gets a "dummy" tool assigned if no chamfer exists. Somethink like
IF mwf.DEPTH_TOP_CHAMFER = 0 THEN tool.libref = "ugt...."
Make sure to replace my "ugt..." with a libref of a tool that can be used by the operation that you are creating.