cancel
Showing results for 
Search instead for 
Did you mean: 

Call function ZRV_BELEG

Former Member
0 Kudos

Hello,

We need to create a ZRV_BELEG number range, my question is if possible to call on function module RV_INVOICE_DOCUMENT_ADD, to this Z range:

  • Neue Nummernvergabe außer im Simulationsmodus

IF NOT kom-posting EQ 'H'.

CALL FUNCTION 'NUMBER_GET_NEXT'

EXPORTING

nr_range_nr = da_numki

object = 'RV_BELEG'

ignore_buffer = no_buffer

IMPORTING

returncode = ld_returncode

number = xvbrk-vbeln

EXCEPTIONS

Analysing i have seen enhancement point,begore calling the FM 'NUMBER_GET_NEXT'

ENHANCEMENT-POINT rv_invoice_document_add_15 SPOTS es_saplv60a.

IF xvbrk-vbeln(1) = '$'.

ADD 1 TO vbsk-vbnum.

  • interne Nummernvergabe

DATA: da_numki LIKE tvfk-numki.

  • Can be set in userexit to turn off buffering for specific countries

CLEAR no_buffer.

da_numki = tvfk-numki.

IF xvbrk-numki = tvfk-numki.

PERFORM userexit_number_range USING da_numki.

IF da_numki NE tvfk-numki.

PERFORM tvfkd_lesen USING da_numki.

IF NOT tvfkd-fkdat IS INITIAL AND

xvbrk-fkdat NE tvfkd-fkdat.

MESSAGE a145 WITH xvbrk-fkdat da_numki.

ENDIF.

ENDIF.

ELSE.

  • number_range changed in userexit number_range_inv_date

da_numki = xvbrk-numki.

ENDIF.

  • Neue Nummernvergabe außer im Simulationsmodus

IF NOT kom-posting EQ 'H'.

CALL FUNCTION 'NUMBER_GET_NEXT'

EXPORTING

nr_range_nr = da_numki

object = 'RV_BELEG'

ignore_buffer = no_buffer

IMPORTING

returncode = ld_returncode

number = xvbrk-vbeln

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

OTHERS = 99.

Is it possible to do in exit RV60AFZZ???

I need advice on thah, many thakns in advance

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

My question is, how to call object ZRV_BELEG instead of RV_beleg

eduardo_hinojosa
Active Contributor
0 Kudos

Hi,

It's impossible. It's hardcoded in ABAP


        PERFORM userexit_number_range USING da_numki.
        IF da_numki NE tvfk-numki.
          PERFORM tvfkd_lesen USING da_numki.
          IF NOT tvfkd-fkdat IS INITIAL AND
            xvbrk-fkdat NE tvfkd-fkdat.
            MESSAGE a145 WITH xvbrk-fkdat da_numki.
          ENDIF.
        ENDIF.
      ELSE.
* number_range changed in userexit number_range_inv_date
        da_numki = xvbrk-numki.
      ENDIF.
* Neue Nummernvergabe außer im Simulationsmodus
      IF NOT kom-posting EQ 'H'.
        CALL FUNCTION 'NUMBER_GET_NEXT'
          EXPORTING
            nr_range_nr             = da_numki
            object                  = 'RV_BELEG'
            ignore_buffer           = no_buffer
          IMPORTING
            returncode              = ld_returncode
            number                  = xvbrk-vbeln
          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
            OTHERS                  = 99.
        IF sy-subrc NE 0.
          MESSAGE ID sy-msgid TYPE 'A' NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ELSE.
     ............

After you return the number of range (da_numki), you call de FM number_get_next where RV_BELEG is hardcoded, it is not a variable.

I'm sorry

Regards

Eduardo

Former Member
0 Kudos

This is an excerpt of the code that we used in include RV60AFZZ

SELECT SINGLE interval_num

FROM zgtf_range

INTO us_range_intern

WHERE vkorg = vbrk-vkorg

AND fkart = vbrk-fkart

AND num_range = 'ZRV_BELEG'.

Answers (1)

Answers (1)

Former Member
0 Kudos

Yes..it is possible to use the custom number range in exit RV60AFZZ and i have frequently used that.