Me respondo a mi mismo
El error estaba en la funcion NUEVO_CODIGO que debería generarme los codigos para la llave primaria de mi tabla asi:
CLI0001
CLI0002
CLI0003
CLI0004
...
...
CLI00NN
Descubri que me estaba duplicando codigos y al momento de guardar a la BD obviamente no me permitia crear llaves duplicadas.
En todo caso el codigo que puse en mi pregunta esta bien.... espero q les sirva !!!