Para algunos países se utilizan los folio pre-impresos o pre-numerados, a continuación una form que nos hace el split del prefijo y el folio sobre el campo XBLNR:
DATA: lv_xblnr TYPE xblnr_v1.
lv_xblnr = <fs_vbrk>-xblnr.
PERFORM f_split_xblnr USING lv_bukrs " Sociedad
CHANGING lv_xblnr. " Nro. Docto. Ref.
*&--------------------------------------------------------------*
*& Form F_SPLIT_XBLNR
*&--------------------------------------------------------------*
FORM f_split_xblnr USING p_v_bukrs TYPE t001-bukrs
CHANGING p_v_folio.
DATA: lv_rgtno TYPE idcn_loma-rgtno,
lv_invno TYPE idcn_loma-invfr,
lv_xblnr TYPE bkpf-xblnr,
lv_invtp TYPE idcn_loma-invtp.
CHECK p_v_folio IS NOT INITIAL.
lv_xblnr = p_v_folio.
CALL FUNCTION 'XBLNR_BUILD_AND_SPLIT_PECL' " PECL = Perú y Chile
EXPORTING
i_bukrs = p_v_bukrs
* I_BUILD =
* I_RGTNO =
* I_INVNO =
i_xblnr = lv_xblnr
* I_INVTP =
IMPORTING
e_rgtno = lv_rgtno " Nos retorna el prefijo
e_invno = lv_invno " Nos retorna el folio
* e_xblnr =
e_invtp = lv_invtp
EXCEPTIONS
* PARAMETER_WRONG = 1
not_found = 2
xblnr_format_wrong = 3
OTHERS = 4.
IF sy-subrc <> 0 OR lv_invno IS INITIAL. " Note 356790
RAISE lot_not_found.
ELSE.
p_v_folio = lv_invno.
ENDIF.
ENDFORM. " F_SPLIT_XBLNR
También existe una función que no es específica para algún país:
XBLNR_BUILD_AND_SPLIT