* Opa, agora que sabemos mexer com objeto de intervalo, vamos aprender
* a usar a função que informa o ultimo numero do nosso intervalo, essa
* função é a 'NUMBER_GET_NEXT'.
REPORT z_gera_serializacao.
DATA : v_number TYPE char10.
START-OF-SELECTION.
* Geração do serial usando o Primeiro Range do Objeto de Intervalo
PERFORM f_gera_serial
USING '01' 'Z_DOCS'.
* Geração do serial usando o Segundo Range do Objeto de Intervalo
PERFORM f_gera_serial
USING '02' 'Z_DOCS'.
*&---------------------------------------------------------------------*
*& Form F_GERA_SERIAL
*&---------------------------------------------------------------------*
FORM f_gera_serial
USING nr_range TYPE inri-nrrangenr
object TYPE inri-object .
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = nr_range
object = object
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
number = v_number
* QUANTITY =
* RETURNCODE =
EXCEPTIONS
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
OTHERS = 8.
IF sy-subrc = 0.
WRITE : / 'Doc', v_number, 'Gerado, com o Range',
nr_range, 'do objeto', object.
ENDIF.
ENDFORM. " F_GERA_SERIAL
* Se deu tudo certo o Log será assim .
* Valeo Galera !!!
* a usar a função que informa o ultimo numero do nosso intervalo, essa
* função é a 'NUMBER_GET_NEXT'.
REPORT z_gera_serializacao.
DATA : v_number TYPE char10.
START-OF-SELECTION.
* Geração do serial usando o Primeiro Range do Objeto de Intervalo
PERFORM f_gera_serial
USING '01' 'Z_DOCS'.
* Geração do serial usando o Segundo Range do Objeto de Intervalo
PERFORM f_gera_serial
USING '02' 'Z_DOCS'.
*&---------------------------------------------------------------------*
*& Form F_GERA_SERIAL
*&---------------------------------------------------------------------*
FORM f_gera_serial
USING nr_range TYPE inri-nrrangenr
object TYPE inri-object .
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = nr_range
object = object
* QUANTITY = '1'
* SUBOBJECT = ' '
* TOYEAR = '0000'
* IGNORE_BUFFER = ' '
IMPORTING
number = v_number
* QUANTITY =
* RETURNCODE =
EXCEPTIONS
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
OTHERS = 8.
IF sy-subrc = 0.
WRITE : / 'Doc', v_number, 'Gerado, com o Range',
nr_range, 'do objeto', object.
ENDIF.
ENDFORM. " F_GERA_SERIAL
* Se deu tudo certo o Log será assim .
* Valeo Galera !!!
Tem que lembrar que o intervalo, mesmo entre clients, tem que refazer, e não é transportável.
ResponderExcluir