Las funciones pueden dividirse en dos clases dentro de una aplicación, de acuerdo con su alcance o visibilidad:
Públicas
Son las funciones visibles en toda la aplicación. Estas pueden ser llamadas (utilizadas) por cualquier rutina o programa que conforma la aplicación.
Las funciones públicas se definen con el comando FUNCTION.
Estáticas
Son las funciones visibles únicamente para las rutinas del programa (archivo .PRW) en las cuales están incluidas. Es decir, estas pueden ser llamadas por otras funciones localizadas en el mismo programa. Las funciones incluidas en otros programas de la misma aplicación no las reconocerán. Por lo tanto, una función estática será invisible para los otros programas.
Las funciones estáticas se definen con el comando STATIC FUNCTION.
La utilización de funciones estáticas es interesante por una serie de motivos, entre los cuales podemos resaltar la posibilidad de la existencia de funciones diferentes con nombres idénticos dentro de una aplicación, siempre y cuando estén en programas diferentes y que una de las funciones sea estática. Otro motivo sería la optimización del código ejecutable de los programas.