<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Code to generate 4 digit alpha numeric key in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130688#M1708552</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;this could help you - &lt;A _jive_internal="true" href="https://answers.sap.com/thread/222836" title="http://scn.sap.com/thread/222836"&gt;http://scn.sap.com/thread/222836&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 Nov 2012 08:30:02 GMT</pubDate>
    <dc:creator>former_member214878</dc:creator>
    <dc:date>2012-11-06T08:30:02Z</dc:date>
    <item>
      <title>Code to generate 4 digit alpha numeric key</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130687#M1708551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need to generate 4 digit unique Alpha numeric key using ABAP&lt;/P&gt;&lt;P&gt;for eg. ABCD, DCBA, 45F3, FD98............ So on &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So such pattern of Alphabet but there should be at least 1 alphabet in each key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for support.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Kratika&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Nov 2012 08:15:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130687#M1708551</guid>
      <dc:creator>former_member407402</dc:creator>
      <dc:date>2012-11-06T08:15:18Z</dc:date>
    </item>
    <item>
      <title>Re: Code to generate 4 digit alpha numeric key</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130688#M1708552</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;this could help you - &lt;A _jive_internal="true" href="https://answers.sap.com/thread/222836" title="http://scn.sap.com/thread/222836"&gt;http://scn.sap.com/thread/222836&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Nov 2012 08:30:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130688#M1708552</guid>
      <dc:creator>former_member214878</dc:creator>
      <dc:date>2012-11-06T08:30:02Z</dc:date>
    </item>
    <item>
      <title>Re: Code to generate 4 digit alpha numeric key</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130689#M1708553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello , &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I dont see any standard way to do that, but i feel you can try many ways :&lt;/P&gt;&lt;P&gt;Option 1) try Number Range SNRO ( you might not be able to use all the combination but its good and easy if u r just worried about few unique numbers )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Option 2) Months back i tried below FM ( custom ) &lt;/P&gt;&lt;P&gt; what it does is : gives u unique alphanumeric number every time u Call .u need a table which stores all the numbers ( just to get the last number user asked)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P style="color: #333333; font-family: Arial; background-color: #ffffff;"&gt;FUNCTION Z_GET_NEXT_NUMBER&lt;/P&gt;&lt;P&gt;&lt;BR style="color: #666666; font-size: 12px; font-family: Arial; background-color: #ffffff;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR style="color: #666666; font-size: 12px; font-family: Arial; background-color: #ffffff;" /&gt;&lt;/P&gt;&lt;P style="color: #333333; font-family: Arial; background-color: #ffffff;"&gt;FUNCTION Z_GET_NEXT_NUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"----------------------------------------------------------------------&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"*"Local interface:&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp; IMPORTING&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(NUM_C) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(NUM_D) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(RESET_I) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(VBAK_I) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(MCH1_I) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(AUFK_I) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp; CHANGING&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(NEXT_NUMBER) OPTIONAL&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp; EXCEPTIONS&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANCELLED&lt;BR style="color: #666666; font-size: 12px;" /&gt;*"----------------------------------------------------------------------&lt;BR style="color: #666666; font-size: 12px;" /&gt;*&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Initialize key fields.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; CLEAR: NR_OBJ, NR_SUBOBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; IF NOT VBAK_I IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NR_OBJ = VBAK_OBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ELSEIF NOT MCH1_I IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NR_OBJ = MCH1_OBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ELSEIF NOT AUFK_I IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NR_OBJ = AUFK_OBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT NEXT_NUMBER IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NR_SUBOBJ = NEXT_NUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ELSE.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Indicator must be set'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Check reset indicator.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; IF NOT RESET_I IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT AUFK_I IS INITIAL AND&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NEXT_NUMBER IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DELETE FROM ZNUM WHERE OBJECT EQ NR_OBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DELETE FROM ZNUM WHERE OBJECT EQ NR_OBJ&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND SUBOBJECT EQ NR_SUBOBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF SY-SUBRC IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE I000(Z1) WITH 'Object deleted -' NR_OBJ NR_SUBOBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE I000(Z1) WITH 'Object not found -' NR_OBJ NR_SUBOBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Check total number of characters between 1 and 20.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; T_NUM_CHARS = NUM_CHARS + NUM_DIGITS.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; IF NOT T_NUM_CHARS BETWEEN 1 AND 20.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid total number of characters'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Retrieve last number used.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; IF NOT NEXT_NUMBER IS INITIAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "For testing only!&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND AUFK_I IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER = NEXT_NUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ELSE.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT SINGLE FOR UPDATE CURR_NUMBER&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTO TNUMBER FROM ZNUM&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE OBJECT = NR_OBJ&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND SUBOBJECT = NR_SUBOBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT SY-SUBRC IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_CHARS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = 'A'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_DIGITS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS + SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = '0'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Validate alpha part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; DO NUM_CHARS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_CHAR = TNUMBER+T_OFFSET(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_CHAR CN ALPHABET.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Validate numeric part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; DO NUM_DIGITS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS + SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_CHAR = TNUMBER+T_OFFSET(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_CHAR CN NUMBERS.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Validate remaining part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; T_STRING = TNUMBER+T_NUM_CHARS.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; IF NOT T_STRING IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Set maximum loop counter.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; MAX_LOOP = ( ( 25 ** NUM_CHARS ) * ( 10 ** NUM_DIGITS ) )&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - ( 25 ** NUM_CHARS ).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; DO.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Exit when next number is determined&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Exit when entire range has been checked.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF SY-INDEX GE MAX_LOOP.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'No more numbers are available'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Reset number to check for "holes" in range.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF TNUMBER CO 'Z9 '.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_CHARS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = 'A'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_DIGITS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS + SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = '0'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Increment numeric part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROLL_FLAG = 'X'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_DIGITS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS + NUM_DIGITS - SY-INDEX.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_CHAR = TNUMBER+T_OFFSET(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SEARCH NUMBERS FOR T_CHAR.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT SY-SUBRC IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Error incrementing number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD 1 TO SY-FDPOS.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = NUMBERS+SY-FDPOS(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_CHAR NE '9'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLEAR ROLL_FLAG.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT ROLL_FLAG IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS + NUM_DIGITS - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = '1'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Increment alpha part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT ROLL_FLAG IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_CHARS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS - SY-INDEX.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_CHAR = TNUMBER+T_OFFSET(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SEARCH ALPHABET FOR T_CHAR.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT SY-SUBRC IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Error incrementing number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD 1 TO SY-FDPOS.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TNUMBER+T_OFFSET(1) = ALPHABET+SY-FDPOS(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_CHAR NE 'Z'.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Validate alpha part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_CHARS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_CHAR = TNUMBER+T_OFFSET(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_CHAR CN ALPHABET.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Validate numeric part of number.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO NUM_DIGITS TIMES.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_OFFSET = NUM_CHARS + SY-INDEX - 1.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_CHAR = TNUMBER+T_OFFSET(1).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_CHAR CN NUMBERS.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T_STRING = TNUMBER+NUM_CHARS(NUM_DIGITS).&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF T_STRING CO '0 '.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MESSAGE E000(Z1) WITH 'Invalid number -' TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAISE CANCELLED.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;*** Check if number is available.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT VBAK_IND IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT SINGLE * FROM VBAK&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp; VBELN = TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSEIF NOT MCH1_IND IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT * FROM MCH1&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp; CHARG = TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDSELECT.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSEIF NOT AUFK_IND IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONCATENATE NEXT_NUMBER '-' TNUMBER INTO AUFK-AUFNR.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT SINGLE * FROM AUFK&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE&amp;nbsp; AUFNR = AUFK-AUFNR.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF NOT SY-SUBRC IS INITIAL.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZNUM-OBJECT = NR_OBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZNUM-SUBOBJECT = NR_SUBOBJ.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZNUM-CURR_NUMBER = TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MODIFY ZNUM.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NEXT_NUMBER = TNUMBER.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXIT.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Exit from do loop.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;&amp;nbsp; ENDDO.&lt;BR style="color: #666666; font-size: 12px;" /&gt;&lt;BR style="color: #666666; font-size: 12px;" /&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Happy Coding.. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~Raj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Nov 2012 09:12:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-to-generate-4-digit-alpha-numeric-key/m-p/9130689#M1708553</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-11-06T09:12:30Z</dc:date>
    </item>
  </channel>
</rss>

