¿Por qué un módulo de función si ABAP es mucho más corto?
Recuerda que si conviertes una variable de tipo T en I (entero), SAP convierte el tiempo en segundos.
DATA(block) = CONV t( char_timestamp+8(6) ) DIV 1800 + 1. " 1800 segundos = 30 minutos
Ejemplos:
DATA: char_timestamp TYPE c LENGTH 14,
block TYPE i.
char_timestamp = '2020063000149'.
block = CONV t( char_timestamp+8(6) ) DIV 1800 + 1.
ASSERT block = 1.
char_timestamp = '20200630003850'.
block = CONV t( char_timestamp+8(6) ) DIV 1800 + 1.
ASSERT block = 2.
EDICIÓN: ten cuidado con la zona horaria en la que se expresa el tiempo, las 11am en Francia (9 o 10am UTC) no es lo mismo que las 11am en Corea del Sur (~2am UTC). UTC es la misma hora para todos en el Universo/Mundo, ahora son las 9:39am para todos en el mundo. Si deseas un "número de bloque UTC" debes convertir tu tiempo a UTC, y primero debes saber en qué zona horaria se expresa tu tiempo. Para más información, consulta la respuesta y el comentario de Michael P.