It is not possible to write a callback in OPL script.
If you are able to generate all your cuts up front the you can use the addUserCuts() method of the IloCplex scripting class. Dynamic separation of cuts is not possible.
A rather cumbersome emulation of this that is possible in OPL script would be the following:
-
Relax the model to LP
-
Solve
-
Get the solution, find violated cuts and add them as constraints (or cuts) to the model
-
Goto 2
#CPLEXOptimizers#DecisionOptimization