How to create Alphanumeric Group Counters in DS
You might have come across a scenario where you need to create more than 99 group counters for a particular group. Taking the instance of Task List Object in PM. Task List object has three important tabs and those are Header, Operation and Operation Maint. Package. Header has a field called group counter which is of max two digits length in SAP which means it can’t exceed 99. So if your group counter is less than or equal to 99 then two digit numbers is ideal to use as group counter. But this may not be always the case. What in case you have more than 99 group counters for a group? In that case we have no other option left but to generate an alphanumeric group counter.
How to generate Alphanumeric Group Counters:
There could be many ways and logic of generating the alphanumeric group counters. I would here in this post illustrate one of the simplest and easiest ways of doing it. Since two chars is the limitation for Task List group counter, let’s create two digit alphanumeric GC to cope up with the current requirement of more than 99 group counters. We can take the combination of two alphabets. We have 26 alphabets in English so the no. of combination we can generate for group counters is 26*26=676. I am assuming that your group counter won’t go beyond 676. SAP recommendation is maximum 99 group counters for each group.
Steps to create the Group Counters:
1. Create the header, operation and Maint. Package in task list as usual but in case of group counter instead of generating a 2 digit number for group counter generate three digit numbers using gen_row_num_by_group(Group_Name) function. Group counters are generated for each group separately.
2. Create a lookup table (Permanent Table) to map numeric group counters to its alphanumeric group counters. Your lookup will have alphanumeric group counters like AA, AB, AC, AD, ….AX, BA, BB, BC,..BX…CA, CB….,CX……and so on. This lookup table shall contain all the possible combination which are 676 in total.
3. In dataflow for Header, Operation and Maint. Package add a query transform at the end to use lookup_ext() function. This function will map the three digit group counters to its alphanumeric group counters.
Your lookup function for a group counter field in query transform will look like this:
lookup_ext([DS_SEC_GEN.DBO.MAP_GROUP_COUNTER,’PRE_LOAD_CACHE’,’MAX’], [CHAR_GROUP_COUNTER],[NULL],[GROUP_COUNTER,’=’,Query_6_1_1_1.Group_Counter]) SET (“run_as_separate_process”=’no’, “output_cols_info”=”)