Return to Snippet

Revision: 52726
at October 31, 2011 20:13 by mrowken


Initial Code
*&---------------------------------------------------------------------*
*& Include Z_GET_PERSON_DATA_PROGRAM_TOP                     Module Pool      Z_GET_PERSON_DATA_PROGRAM
*&
*&---------------------------------------------------------------------*
PROGRAM  z_get_person_data_program.
*&---------------------------------------------------------------------*
*&      Module  READ_PESEL  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
* Global data declarations

DATA: gr_regex   TYPE REF TO cl_abap_regex,
      gr_matcher TYPE REF TO cl_abap_matcher,
      ok_code           TYPE sy-ucomm,
      pesel_input       TYPE zzpersons-pesel,
      name_output       TYPE zzpersons-name,
      surname_output    TYPE zzpersons-surname,
      birthdate_output  TYPE dats,
      g_msg             TYPE c,
      g_out             TYPE string.

*----------------------------------------------------------------------*
*  MODULE READ_PESEL INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE read_pesel INPUT.
  IF ok_code EQ 1.
    g_out = pesel_input.
    CREATE OBJECT gr_regex
      EXPORTING
        pattern = `{11}`.
    gr_matcher = gr_regex->create_matcher( text = g_out ).
    IF gr_matcher->match( ) IS INITIAL.
      MESSAGE 'Pesel must consist of 11 numeral' TYPE 'I' DISPLAY LIKE 'E'.
    ELSE.
      CALL FUNCTION 'Z_SAP_PERSON_DATA' DESTINATION 'ZPLASAPBC'
        EXPORTING
          i_pesel               = pesel_input
        IMPORTING
          e_name                = name_output
          e_surname             = surname_output
          e_birthdate           = birthdate_output
        EXCEPTIONS
          no_input_given        = 1
          communication_failure = 2  MESSAGE g_msg
          system_failure        = 3  MESSAGE g_msg
          OTHERS                = 4.
      CASE sy-subrc.
        WHEN 1.
          g_out = 'Exception received: NO_INPUT_GIVEN' .
        WHEN 2.
          CONCATENATE 'COMMUNICATION_FAILURE received:' g_msg INTO g_out SEPARATED
          BY space.
        WHEN 3.
          CONCATENATE 'SYSTEM_FAILURE received:' g_msg INTO g_out SEPARATED BY
          space.
        WHEN 4.
          g_out = 'Exception received: OTHERS'.
      ENDCASE.
      IF sy-subrc <> 0.
        WRITE g_out.
      ENDIF.

      "MESSAGE g_msg TYPE 'I'.
      MESSAGE 'Pesel OK' TYPE 'S'.
    ENDIF.

  ENDIF.

  " LEAVE TO SCREEN 0.
ENDMODULE.                 " READ_PESEL  INPUT
*&---------------------------------------------------------------------*
*&      Module  CHECK_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE check_input INPUT.

ENDMODULE.                 " CHECK_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit INPUT.
  CASE ok_code.
    WHEN 'CANCEL'.
      CLEAR ok_code.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.                 " EXIT  INPUT

Initial URL


Initial Description


Initial Title
Calling service on BC via RFC

Initial Tags


Initial Language
Other