Application Development 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: 

SPRO and table (pseudo)number ranges in table TCD_NUMBER

ttrapp
Active Contributor
709

Hi,

when you add custom ABAP transactions to an SAP Implementation Guideline Project using transaction SIMGH, new transactions will be generated. Their technical names contain numbers from transparent table TCD_NUMBER. This table contains only one ongoing number (per client) which is used to create the technical name. Usually in a system landscape every system has a different number range so that the names of the generated object are not the same.

You can check function modules PRGN_GET_NEXT_NUMBER_FOR_TCODE resp. PRGN_REPTREE_GET_TCODE_NAME to see how it works.

My question is: How is the initial value of transparent table TCD_NUMBER is computed?

I need this information to prevent naming clashes.

Best Regards,
Tobias

1 ACCEPTED SOLUTION

Sandra_Rossi
Active Contributor
0 Kudos
370

I think I checked inside PRGN_GET_NEXT_NUMBER_FOR_TCODE a long time ago (in 2013, maybe version 7.0 or 7.31), but I don't know if it has changed since then.

If the first time the table TCD_NUMBER is empty, it creates one line with the last assigned number and returns it (or 1 if none).

If that number is lower than 1.000.000, and there is not a line in table SSM_CUST with parameter 'NUMBER_RANGE_VAL_ADD' = 'NO', then there's a pseudo random generation: "Value depends on the sum of system id and client. This prevents, that the same IDs were being considered in different systems and that themselves so the profiles come into conflict."

I probably took that last sentence from a comment inside the ABAP code, or from an existing SCN question (sorry to not credit the author).

Sorry if you're interested in the "pseudo random generation", I didn't check how it works.

3 REPLIES 3

Sandra_Rossi
Active Contributor
0 Kudos
371

I think I checked inside PRGN_GET_NEXT_NUMBER_FOR_TCODE a long time ago (in 2013, maybe version 7.0 or 7.31), but I don't know if it has changed since then.

If the first time the table TCD_NUMBER is empty, it creates one line with the last assigned number and returns it (or 1 if none).

If that number is lower than 1.000.000, and there is not a line in table SSM_CUST with parameter 'NUMBER_RANGE_VAL_ADD' = 'NO', then there's a pseudo random generation: "Value depends on the sum of system id and client. This prevents, that the same IDs were being considered in different systems and that themselves so the profiles come into conflict."

I probably took that last sentence from a comment inside the ABAP code, or from an existing SCN question (sorry to not credit the author).

Sorry if you're interested in the "pseudo random generation", I didn't check how it works.

ttrapp
Active Contributor
0 Kudos
370

Thank you, Sandra. I checked in on a sandbox and it seems only have to delete the entry in table TCD_NUMBER and call

PRGN_GET_NEXT_NUMBER_FOR_TCODE to obtain a new number range.

Do you know whether there are any side-effects? The description of the table („Internal Counter for Assigning of Transactions“ ) as well as the use access suggest that it is only used to create/migrate transactions.

Best Regards,
Tobias

370

No idea sorry! But you can do a little test on an ABAP trial system to verify the behavior, with SE43 for instance (it also uses PRGN_GET_NEXT_NUMBER_FOR_TCODE). NB: the note 311498 - Own prefix for report names is talking a little bit about that next number.