<?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: Standard function or logic required in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490466#M839378</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ragh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Interesting question.  Just put this together for you.  It works nicely.  Plus, it will work for numbers any length (you just need to change the (20) if your starting number will be longer than 20 digits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;SL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT  Z_COUNT_TEST.

DATA : NUMBER(20) TYPE C VALUE '98765',
       SUM TYPE I,
       LEN TYPE I,
       POINTER TYPE I VALUE '0'.

WHILE STRLEN( NUMBER ) NE '1'.
CLEAR : LEN, SUM, POINTER.
LEN = STRLEN( NUMBER ).
DO LEN TIMES.
  SUM = SUM + ( NUMBER+POINTER(1) ) .
  POINTER = POINTER + 1.
ENDDO.

NUMBER = SUM.
CONDENSE NUMBER NO-GAPS.

ENDWHILE.

WRITE: 'SUM:' , SUM.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 29 Feb 2008 20:12:12 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-29T20:12:12Z</dc:date>
    <item>
      <title>Standard function or logic required</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490463#M839375</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 have one  number (9876), now i need to get the sum of this number.That is 9&lt;EM&gt;8&lt;/EM&gt;7&lt;EM&gt;6&lt;/EM&gt;5 that is 35.so i need to extract 3+5 = 8. si finalli i need get 8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can anybody give me some logic (sample code) or some predefiend functions for this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many Thanks,&lt;/P&gt;&lt;P&gt;Ragh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Feb 2008 15:47:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490463#M839375</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-29T15:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: Standard function or logic required</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490464#M839376</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Raghu,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;there could be simplier and nicer solution, but it works:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : i TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : s(20) TYPE c,&lt;/P&gt;&lt;P&gt;       result TYPE i,&lt;/P&gt;&lt;P&gt;       length TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  s = i.&lt;/P&gt;&lt;P&gt;  SHIFT s LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;  result = 10.&lt;/P&gt;&lt;P&gt;  WHILE result GT 9.&lt;/P&gt;&lt;P&gt;    result = 0.&lt;/P&gt;&lt;P&gt;    length = STRLEN( s ).&lt;/P&gt;&lt;P&gt;    DO length TIMES.&lt;/P&gt;&lt;P&gt;      result = result + s(1).&lt;/P&gt;&lt;P&gt;      SHIFT s CIRCULAR BY 1 PLACES.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;    s = result.&lt;/P&gt;&lt;P&gt;    SHIFT s LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;  ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now you have number you want in result (integer format) and s (character format)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this helps&lt;/P&gt;&lt;P&gt;ec&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Feb 2008 16:08:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490464#M839376</guid>
      <dc:creator>JozsefSzikszai</dc:creator>
      <dc:date>2008-02-29T16:08:57Z</dc:date>
    </item>
    <item>
      <title>Re: Standard function or logic required</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490465#M839377</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Take a look at function module 'BKK_COMPUTE_SUM_OF_DIGITS'.  I'm not sure you should use the function module directly (CAUTION: It is not released by SAP!), but you can use the same logic or copy its source code for use in your own method/function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*---- calculate sum of digits for given number with maximum 4 digits --
  field-symbols &amp;lt;f&amp;gt;.

  data: l_ref(4) type n,
        l_sum    type i value 0.

  l_ref = i_number.
  assign l_ref+0(1) to &amp;lt;f&amp;gt;.
  l_sum = l_sum + &amp;lt;f&amp;gt;.

  do 3 times.
    assign &amp;lt;f&amp;gt;+1 to &amp;lt;f&amp;gt;.
    l_sum = l_sum + &amp;lt;f&amp;gt;.
  enddo.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's another way for you to consider.  It is different than the code within the SAP function module but same concept (without field-symbols):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
PARAMETERS: p_num(4) TYPE n.

DATA: l_sum  TYPE i,
      l_next TYPE i.

l_sum = p_num(1).

DO 3 TIMES.
  l_next = sy-index.
  l_sum = l_sum + p_num+l_next(1).
ENDDO.

WRITE: /1 'The digits of', p_num, 'add up to:', l_sum.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jamie&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: James Gaddis on Feb 29, 2008 11:19 AM  --  Added the code for quick reference and in case you are using pre-ECC 5.0 system.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: James Gaddis on Feb 29, 2008 2:07 PM  -- Added an alternative coding method.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Feb 2008 16:17:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490465#M839377</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-29T16:17:59Z</dc:date>
    </item>
    <item>
      <title>Re: Standard function or logic required</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490466#M839378</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ragh,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Interesting question.  Just put this together for you.  It works nicely.  Plus, it will work for numbers any length (you just need to change the (20) if your starting number will be longer than 20 digits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;SL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT  Z_COUNT_TEST.

DATA : NUMBER(20) TYPE C VALUE '98765',
       SUM TYPE I,
       LEN TYPE I,
       POINTER TYPE I VALUE '0'.

WHILE STRLEN( NUMBER ) NE '1'.
CLEAR : LEN, SUM, POINTER.
LEN = STRLEN( NUMBER ).
DO LEN TIMES.
  SUM = SUM + ( NUMBER+POINTER(1) ) .
  POINTER = POINTER + 1.
ENDDO.

NUMBER = SUM.
CONDENSE NUMBER NO-GAPS.

ENDWHILE.

WRITE: 'SUM:' , SUM.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Feb 2008 20:12:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490466#M839378</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-29T20:12:12Z</dc:date>
    </item>
    <item>
      <title>Re: Standard function or logic required</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490467#M839379</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another one -:)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA : number(20) TYPE c VALUE '98765',
       sum TYPE i,
       len TYPE i,
       w_tabix TYPE sy-tabix.

len = strlen( number ).

WHILE w_tabix LT len.
  DO len TIMES.
    sum = sum + number+w_tabix(1).
    w_tabix = w_tabix + 1.
  ENDDO.
  IF w_tabix EQ len.
    number = sum.
    CONDENSE number.
    len = strlen( number ).
    IF len EQ 1.
      EXIT.
    ENDIF.
    CLEAR: w_tabix,sum.
  ENDIF.
ENDWHILE.

WRITE:/ sum.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Greetings,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Blag.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Feb 2008 20:31:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/standard-function-or-logic-required/m-p/3490467#M839379</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-29T20:31:36Z</dc:date>
    </item>
  </channel>
</rss>

