Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

sap abap

Former Member
0 Likes
729

hi

PLSE HELP ME TO WRITE CODE TO GET BATCH NUMBER AS FOLLOWS

from 0000 to 9999 number should be same,

from 10000 to 104599 the number should be

as follows

FOR RANGE 10000 TO 35999

A000,A001, A003 ...A999

B000,B001 ...B999.... Z000,Z001 ...Z999

FOR RANGE 36000 TO 104599

AA00,AA01,AA02....AA99,AB00,AB02, AB99...AZ00,AZ01..AZ99

BA00,BA01,BA02...BA99,BB00,BB02,...BB99...BZ00,BZ01..BZ99

...

ZA00,ZA01,....ZA99,... ZZ00,ZZ01....ZZ99.

AFTER 104599

AAA0,AAA1...

ZZZ0 ...ZZZZ

hi

PLSE HELP ME TO WRITE CODE TO GET BATCH NUMBER AS FOLLOWS

from 0000 to 9999 number should be same,

from 10000 to 104599 the number should be

as follows

FOR RANGE 10000 TO 35999

A000,A001, A003 ...A999

B000,B001 ...B999.... Z000,Z001 ...Z999

FOR RANGE 36000 TO 104599

AA00,AA01,AA02....AA99,AB00,AB02, AB99...AZ00,AZ01..AZ99

BA00,BA01,BA02...BA99,BB00,BB02,...BB99...BZ00,BZ01..BZ99

...

ZA00,ZA01,....ZA99,... ZZ00,ZZ01....ZZ99.

AFTER 104599

AAA0,AAA1...

ZZZ0 ...ZZZZ

3 REPLIES 3
Read only

Former Member
0 Likes
670

Kota,

Welcome to SDN.

Could you explain in more detail, what are you trying to achieve?

Regards,

Ravi

Read only

Former Member
0 Likes
670
PARAMETERS : NUM(10) TYPE N DEFAULT 0.
DATA var TYPE i.
DATA dv TYPE i.
DATA dv1 TYPE i.
DATA dv2 TYPE i.
DATA RESULT(4) TYPE C.

IF NUM < 10000.
  RESULT+0(4) = NUM+6(4).
  WRITE RESULT.
ELSEIF NUM < 36000.
  var = NUM mod 1000.
  dv = ( NUM DIV 1000 ) - 10 - 1.
  RESULT+0(1) = syst-abcde+dv(1).
  RESULT+1(3) = var.
  WRITE RESULT.
ELSEIF NUM < 103600.
  var = NUM mod 100.
  dv = ( NUM DIV 100 ) - 360.
  dv1 = dv DIV 26 .
  dv2 = dv MOD 26.
  RESULT+0(1) = syst-abcde+dv1(1).
  RESULT+1(1) = syst-abcde+dv2(1).
  RESULT+2(2) = num+8(2).
  WRITE RESULT.
ELSE.
  and so on..
ENDIF.

Ps: Reward points if helpful.

Read only

Former Member
0 Likes
670

Here is the complete code:

PARAMETERS : NUM(10) TYPE N DEFAULT 0.
DATA var TYPE i.
DATA dv TYPE i.
DATA dv1 TYPE i.
DATA dv2 TYPE i.
DATA RESULT(4) TYPE C.

IF NUM < 10000.
  RESULT+0(4) = NUM+6(4).
  WRITE RESULT.
ELSEIF NUM < 36000.
  var = NUM mod 1000.
  dv = ( NUM DIV 1000 ) - 10 - 1.
  RESULT+0(1) = syst-abcde+dv(1).
  RESULT+1(3) = var.
  WRITE RESULT.
ELSEIF NUM < 103600.
  var = NUM mod 100.
  dv = ( NUM DIV 100 ) - 360.
  dv1 = dv DIV 26 .
  dv2 = dv MOD 26.
  RESULT+0(1) = syst-abcde+dv1(1).
  RESULT+1(1) = syst-abcde+dv2(1).
  RESULT+2(2) = num+8(2).
  WRITE RESULT.
ELSE.
*  and so on..
  var = ( NUM DIV 10 ) - 10360.
  dv = var MOD 26.
  dv1 = ( var DIV 26 ) MOD 26.
  dv2 = ( var DIV 26 ) DIV 26.
  RESULT+0(1) = syst-abcde+dv2(1).
  RESULT+1(1) = syst-abcde+dv1(1).
  RESULT+2(1) = syst-abcde+dv(1).
  RESULT+3(1) = num+9(1).
  WRITE RESULT.
ENDIF.

Re: Reward points if useful.