Problem solve Get help with specific problems with your technologies, process and projects.

Program to calculate modified mod 10 check digit

This program can calculate modified mod 10 check digit as per UPS label requirements.

This program is stand-alone and can be incorporated in any program when you need to calculate modified mod 10 check digit as per UPS label requirements.
REPORT Z_mod_check_digit.

*This program will calculate the modified mod 10 check digit as per
*UPS label requirements.
PARAMETERS: S_NUMBER(17)  TYPE C DEFAULT '1Z123X56031234820'.

  DATA: WUPS_STR(15) TYPE C,
        SUM_ODD      TYPE I,
        SUM_EVEN     TYPE I,
        SUM_TOTAL    TYPE I,
        STEP         TYPE I,
        W_CHAR(1)    TYPE C,
        W_VAL(1)     TYPE C,
        W_TEMP(1)    TYPE C,
        MODX(2)      TYPE C,
        MOD10(1)     TYPE C.
  CLEAR: SUM_ODD, SUM_EVEN, SUM_TOTAL.
  WUPS_STR = S_NUMBER+2(15).
  STEP = 0.
  WHILE STEP < 15.
    W_CHAR = WUPS_STR+STEP(1).
    PERFORM GET_VALUE USING W_CHAR W_VAL.
    W_TEMP = STEP MOD 2.
    IF ( W_TEMP = 0 ).
      SUM_ODD = SUM_ODD + W_VAL.
    ELSE.
      SUM_EVEN = SUM_EVEN + W_VAL.
    ENDIF.
    STEP = STEP + 1 .
  ENDWHILE.
  SUM_TOTAL = SUM_ODD + 2 * SUM_EVEN.
  MODX = 10 - ( SUM_TOTAL MOD 10 ).
  IF MODX = 10.
    MOD10 = MODX+1(1).
  ELSE.
    MOD10 = MODX+0(1).
  ENDIF.
  SKIP 2.
  WRITE:/20 'The check digit is:  ', MOD10.
  SKIP 1.
*---------------------------------------------------------------------*
*       FORM GET_VALUE                                                *
*---------------------------------------------------------------------*
*      Convert alpha numeric to numeric as per UPS Barcode specs      *
*---------------------------------------------------------------------*
FORM GET_VALUE USING W_CHAR W_VAL.
  CASE W_CHAR.
    WHEN '0' OR 'I' OR 'S'.
      W_VAL = 0.
    WHEN '1' OR 'J' OR 'T'.
      W_VAL = 1.
    WHEN '2' OR 'A' OR 'K' OR 'U'.
      W_VAL = 2.
    WHEN '3' OR 'B' OR 'L' OR 'V'.
      W_VAL = 3.
    WHEN '4' OR 'C' OR 'M' OR 'W'.
      W_VAL = 4.
    WHEN '5' OR 'D' OR 'N' OR 'X'.
      W_VAL = 5.
    WHEN '6' OR 'E' OR 'O' OR 'Y'.
      W_VAL = 6.
    WHEN '7' OR 'F' OR 'P' OR 'Z'.
      W_VAL = 7.
    WHEN '8' OR 'G' OR 'Q'.
      W_VAL = 8.
    WHEN '9' OR 'H' OR 'R'.
      W_VAL = 9.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.                   " get_value
This was last published in March 2002

Dig Deeper on SAP trends, strategy and ERP market share

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

SearchERP

SearchOracle

SearchDataManagement

SearchAWS

SearchBusinessAnalytics

SearchCRM

SearchContentManagement

SearchHRSoftware

Close