Инкремент шестнадцатеричных чисел на ABAP
Друзья, всем известен способ ведения генерации порядковых номеров документов для номеров
с десятеричными цифрами. В транзакции SNRO ведутся диапазоны номеров, а с помощью
функционального модуля NUMBER_GET_NEXT можно получить следующий порядковый номер из диапазона.
В этом очерке описываю, генератор номеров с шестнадцатеричными цифрами на ABAP,
представляю небольшую подпрограмму, увеличивающую шестнадцатеричное число на единицу.
Подпрограмма получает на вход шестнадцатеричное число и увеличивает его на единицу.
с десятеричными цифрами. В транзакции SNRO ведутся диапазоны номеров, а с помощью
функционального модуля NUMBER_GET_NEXT можно получить следующий порядковый номер из диапазона.
В этом очерке описываю, генератор номеров с шестнадцатеричными цифрами на ABAP,
представляю небольшую подпрограмму, увеличивающую шестнадцатеричное число на единицу.
Подпрограмма получает на вход шестнадцатеричное число и увеличивает его на единицу.
*&---------------------------------------------------------------------* *& Form INCREASE_KEY *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM INCREASE_KEY CHANGING pv_key type wanid. CONSTANTS: c_transl type text100 value '0112233445566778899AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ0'. TRANSLATE pv_key+2(1) USING c_transl. IF pv_key+2(1) = '0'. TRANSLATE pv_key+1(1) USING c_transl. IF pv_key+1(1) = '0'. TRANSLATE pv_key+0(1) USING c_transl. ENDIF. ENDIF. ENDFORM. " INCREASE_KEY