Introducción
En ciertos casos, es posible que necesites ordenar una tabla interna en orden ascendente y descendente basado en ciertas columnas para lograr una salida específica. SAP ya ha proporcionado la solución anteriormente. Estoy escribiendo esta publicación en el blog porque me encontré con una situación similar hace unos días.
Solución
Primero que todo, debemos revisar la sintaxis del comando SORT. Luego un poco de teoría.
SORT <itab> [<orden>] [COMO TEXTO]
[POR <f1> [<orden>] [COMO TEXTO]]... <fn> [<orden>] [COMO TEXTO]].
Si la opción POR no se utiliza, entonces la tabla interna <itab> se ordenará por su clave estándar.
Para definir una clave de ordenación diferente, utiliza la opción POR. El sistema ordenará el conjunto de datos según los componentes especificados <f1>... <fn>. Estos campos pueden ser de cualquier tipo, incluidos campos de tipo P, I y F, o tablas. Las opciones que especifiques detrás de los campos individuales sobrescriben para estos campos las opciones especificadas antes de POR.
Si un criterio de ordenación no se conoce hasta tiempo de ejecución, puedes configurarlo dinámicamente escribiendo (<nombre>) en lugar de <fi>. El campo <nombre> contiene el nombre del campo clave de ordenación. Si <nombre> está vacío en tiempo de ejecución, el sistema lo ignora. Si contiene un nombre de componente no válido, se produce un error en tiempo de ejecución.
Puedes especificar la secuencia de ordenación utilizando DESCENDENTE o ASCENDENTE en la opción de orden. El valor predeterminado es ascendente.
Sin la opción COMO TEXTO, el sistema ordena los campos de caracteres binariamente y según su codificación interna dependiente de la plataforma. Con la opción COMO TEXTO, el sistema ordena los campos de caracteres alfabéticamente según el entorno de texto actual.
Palabra clave Estable
Te permite realizar una ordenación estable, es decir, la secuencia relativa de líneas que no cambian por la ordenación no se modifica. Si no utilizas la opción ESTABLE, la secuencia de ordenación no se conserva. Si ordenas una tabla varias veces por la misma clave, la secuencia de las entradas de la tabla cambiará en cada ordenación. Sin embargo, una ordenación estable tarda más que una ordenación inestable.
Ahora, por favor revisa las líneas de código a continuación para más referencia.
Antes de ordenar
Después de ordenar
Eso es todo.
🙂