Advertisement
Guest User

Untitled

a guest
Aug 13th, 2019
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 6.45 KB | None | 0 0
  1. *$*$ -------------------------------------------------------------- *$*$
  2. *$*$ Autor        : Guilherme Fujii                                 *$*$
  3. *$*$ Data         : 06/11/2018                                      *$*$
  4. *$*$ ---------------------------------------------------------------*$*$
  5. *$*$ Descrição    : Tratar os benefícios vindos do Employee Central *$*$
  6. *$*$ ---------------------------------------------------------------*$*$
  7. *$*$ Histórico de modificações                                      *$*$
  8. *$*$ Data         : 06.11.2018                                      *$*$
  9. *$*$ Autor        : Nome do Programador      - Empresa do Autor     *$*$
  10. *$*$ Descrição    : Chamado INC999999 / Descrição resumida das      *$*$
  11. *$*$                modificações efetuadas                          *$*$
  12. *$*$ ---------------------------------------------------------------*$*$
  13.   METHOD constructor.
  14.  
  15.     DATA: lv_pernr TYPE char8,
  16.           lv_query TYPE tvarvc-low.
  17.  
  18. *   Create the connection with EC throught RFC connection
  19.     zm_create_connection( ).
  20.  
  21. *   Fill global variables
  22.     gv_pernr           = iv_personnel_number.
  23.  
  24.     gv_employee_id_ext = iv_personnel_number.
  25.     gv_employee_id     = iv_personnel_number.
  26.     ADD iv_personnel_number TO lv_pernr.
  27.  
  28.     IF strlen( lv_pernr ) EQ 7.
  29.       CONCATENATE '0' lv_pernr INTO lv_pernr.
  30.     ENDIF.
  31.  
  32. *   Stay class references
  33.     IF io_hrpa_masterdata_bl IS SUPPLIED.
  34.       go_infotype_framework = io_hrpa_masterdata_bl.
  35.     ENDIF.
  36.     IF io_message_handler IS SUPPLIED.
  37.       go_message_handler    = io_message_handler.
  38.     ENDIF.
  39.  
  40.     CONDENSE lv_pernr NO-GAPS.
  41.  
  42. *   Get possible variable to complement benefit query
  43.     SELECT SINGLE low
  44.       FROM tvarvc
  45.       INTO lv_query
  46.       WHERE name EQ 'ZHRST_SFEC_BENEFIT_QRY'.
  47.     IF sy-subrc NE 0.
  48.       lv_query = ',cust_vtransp'.
  49.     ENDIF.
  50.  
  51. *   Build the benefits query first call
  52.     gv_query = |/BenefitEnrollment?| && |$filter=workerId eq '{ lv_pernr }'&| &&
  53.                |$expand=benefitInsurancePlanEnrollmentDetails,benefitDeductibleAllowanceEnrollment,benefitPensionNonDependentNominees,| &&
  54.                |benefitPensionDependentNominees,benefitInsurancePlanEnrollmentDetails/benefitInsuranceDependentDetails| &&
  55.                lv_query.
  56.  
  57.  
  58. *   Query benefits and build the if_ixml_document reference
  59.     zm_query_benefits( ).
  60.  
  61. *   Process benefits, transform XML into a table
  62.     zm_process_benefits( ).
  63.  
  64. *--------------------------------------------------------------------*
  65. *   Guilherme Fujii 14.12.2018 - Permitir integração de reembolsos
  66.  
  67. *   Build the benefits query second call (For reimbursement type)
  68.     gv_query = |/BenefitEmployeeClaim?| && |$filter=workerId eq '{ lv_pernr }'|.
  69.  
  70. *   Query benefits and build the if_ixml_document reference
  71.     zm_query_benefits( ).
  72.  
  73. *   Process benefits, transform XML into a table
  74.     zm_process_benefits( ).
  75.  
  76. *   Fim da integração de reembolso.
  77. *--------------------------------------------------------------------*
  78. *   Map infotype tables using the ZHRT_ECEXT_BENEF and ZHRT_ECEXT_INFTY
  79.     zm_map_infty( ).
  80.  
  81.  
  82.     IF ( gt_0014 IS NOT INITIAL OR
  83.          gt_0015 IS NOT INITIAL ) AND
  84.          go_infotype_framework IS BOUND.
  85.  
  86.       zm_save_values_table( ).
  87.  
  88.       IF gt_0014 IS NOT INITIAL AND
  89.       go_infotype_framework IS BOUND.
  90.  
  91.         IF io_message_handler IS BOUND.
  92.  
  93.           CALL METHOD io_message_handler->register_infty
  94.             EXPORTING
  95.               iv_infty = '0014'.
  96.  
  97.         ENDIF.
  98.  
  99.         zm_save_data_to_infotype( iv_infty = '0014'
  100.         it_pnnnn = gt_0014 ).
  101.  
  102.       ENDIF.
  103.  
  104.       IF gt_0015 IS NOT INITIAL AND
  105.       go_infotype_framework IS BOUND.
  106.  
  107.         IF io_message_handler IS BOUND.
  108.  
  109.           CALL METHOD io_message_handler->register_infty
  110.             EXPORTING
  111.               iv_infty = '0015'.
  112.  
  113.         ENDIF.
  114.  
  115.         zm_save_data_to_infotype( iv_infty = '0015'
  116.         it_pnnnn = gt_0015 ).
  117.  
  118.       ENDIF.
  119.     ENDIF.
  120.  
  121.  
  122. *    IF gt_0014 IS NOT INITIAL.
  123. *
  124. *      IF io_message_handler IS BOUND.
  125. *
  126. *        CALL METHOD io_message_handler->register_infty
  127. *          EXPORTING
  128. *            iv_infty = '0014'.
  129. *
  130. *      ENDIF.
  131. *
  132. *      zm_save_data_to_infotype_3(
  133. *          iv_infty = '0014'
  134. *          it_pnnnn = gt_0014  ).
  135. *    ENDIF.
  136. *
  137. *    IF gt_0015 IS NOT INITIAL.
  138. *
  139. *      IF io_message_handler IS BOUND.
  140. *
  141. *        CALL METHOD io_message_handler->register_infty
  142. *          EXPORTING
  143. *            iv_infty = '0015'.
  144. *
  145. *      ENDIF.
  146. *
  147. *      zm_save_data_to_infotype_3(
  148. *      iv_infty = '0015'
  149. *      it_pnnnn = gt_0015  ).
  150. *    ENDIF.
  151.  
  152.     CALL METHOD zm_save_values_table.
  153.  
  154.  
  155. * vab <-
  156.  
  157.     IF gt_0167 IS NOT INITIAL AND
  158.        go_infotype_framework IS BOUND.
  159.  
  160.       IF io_message_handler IS BOUND.
  161.  
  162.         CALL METHOD io_message_handler->register_infty
  163.           EXPORTING
  164.             iv_infty = '0167'.
  165.  
  166.       ENDIF.
  167.  
  168.       zm_save_data_to_infotype( iv_infty = '0167'
  169.                                 it_pnnnn = gt_0167 ).
  170.  
  171.     ENDIF.
  172.  
  173.  
  174.     IF gt_0168 IS NOT INITIAL AND
  175.        go_infotype_framework IS BOUND.
  176.  
  177.       IF io_message_handler IS BOUND.
  178.  
  179.         CALL METHOD io_message_handler->register_infty
  180.           EXPORTING
  181.             iv_infty = '0168'.
  182.  
  183.       ENDIF.
  184.  
  185.       zm_save_data_to_infotype( iv_infty = '0168'
  186.                                 it_pnnnn = gt_0168 ).
  187.  
  188.     ENDIF.
  189.  
  190.  
  191.     IF gt_0169 IS NOT INITIAL AND
  192.        go_infotype_framework IS BOUND.
  193.  
  194.       IF io_message_handler IS BOUND.
  195.  
  196.         CALL METHOD io_message_handler->register_infty
  197.           EXPORTING
  198.             iv_infty = '0169'.
  199.  
  200.       ENDIF.
  201.  
  202.       zm_save_data_to_infotype( iv_infty = '0169'
  203.                                 it_pnnnn = gt_0169 ).
  204.  
  205.     ENDIF.
  206.  
  207.     IF gt_0377 IS NOT INITIAL AND
  208.        go_infotype_framework IS BOUND.
  209.  
  210.       IF io_message_handler IS BOUND.
  211.  
  212.         CALL METHOD io_message_handler->register_infty
  213.           EXPORTING
  214.             iv_infty = '0377'.
  215.  
  216.       ENDIF.
  217.  
  218.       zm_save_data_to_infotype( iv_infty = '0377'
  219.                                 it_pnnnn = gt_0377 ).
  220.  
  221.     ENDIF.
  222.  
  223.     IF gt_0410 IS NOT INITIAL AND
  224.        go_infotype_framework IS BOUND.
  225.  
  226.       IF io_message_handler IS BOUND.
  227.  
  228.         CALL METHOD io_message_handler->register_infty
  229.           EXPORTING
  230.             iv_infty = '0410'.
  231.  
  232.       ENDIF.
  233.  
  234.       zm_save_data_to_infotype( iv_infty = '0410'
  235.                                 it_pnnnn = gt_0410 ).
  236.  
  237.     ENDIF.
  238.  
  239.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement