Hola Norida, ¿qué tal? Si finalizo correctamente, los códigos de retorno 00 o 04 son válidos. Solamente el 04 te indica que tu programa contiene warnings, los cuales no impiden el correcto funcionamiento del programa.
Mira, te dejo unas pantallas de un warning que salió en mi código, y te digo como buscarlo en el spool, para saber que línea o líneas (en mi caso fue solo una) es / son la(s) que esta(n) devolviendo ese mensaje:
Dentro del SPOOL, en el paso de compilación, que es el delineado en color rojo y que hace referencia al PROCSTEP IKFCBL01, me devolvió un RETCODE = 04
Y desplazándome aquí mismo en el SPOOL hacía abajo, en el área de desglose de mi programa veo la línea “culpable”, también veo el mensaje de warning (en este caso es IKF4008I-W), y la descripción de la acción a tomar en este caso (en este caso solo fue omitido el verbo TO por el compilador):
Ahora, si quieres indagar como corregir ese warning / error, seleccionas el mensaje (en este caso es IKF4008I-W), y lo buscamos en nuestro navegador favorito -he de decirte que es poca la información que podemos encontrar para ciertos warnings en internet-:
Y yo seleccione el segundo enlace, el correspondiente a archive(.)org, para llegar al match de mi mensaje teclee ctrl + F:
Sigo pendiente de cualquier comentario que tengas al respecto 😀