본문 바로가기
ERP-SAP/ABAP

<ABAP> Native sql 프로시져 호출 및 db insert(RFC)

by 행복한워니의 기록 2012. 9. 11.
728x90
반응형

   두가지 케이스가 다 있다.

왜냐하면 DB에 데이터를 인서트 하고 그쪽에서 우리가 언제 넣었는지 몰라서..
(메시지 서버가 없다면 우리가 프로시져를 호출해야 한다는.........)
그냥 막 간다 그냥 막 ㅋㅋㅋㅋㅋ
몰라 나도.. 하래..
 
 LOOP AT et_data_prd INTO es_data_prd.  "EXPORT DATA
    TRY.
        EXEC SQL.  "DB에 INSERT 하는 방법
          INSERT INTO GBIS.IF_RCV_COST_CONTACT_I (
           ZQTNR,
           ZITNR,
           ZVSNR,
           Z_PRS_Q,
           Z_DATE_ASSN,
           Z_DATE_STRT,
           Z_DATE_END
          )
          VALUES(
           :es_data_prd-ZQTNR,
           :es_data_prd-ZITNR,
           :es_data_prd-ZVSNR,
           :es_data_prd-Z_PRS_Q,
           :es_data_prd-Z_DATE_ASSN,
           :es_data_prd-Z_DATE_STRT,
           :es_data_prd-Z_DATE_END
          )
        ENDEXEC.
      CATCH cx_sy_native_sql_error INTO lcl_native_sql.
        lv_native_err = lcl_native_sql->get_text( ).
        e_subrc = 1.
        e_messg = text-m02 && lv_native_err.
        ROLLBACK WORK.
        PERFORM dbco_rollback(zmmhc002) CHANGING lv_native_err.
        EXIT.
    ENDTRY.
  ENDLOOP.
 
 

*--------------------------------------------------------------------*
* Commit & Rollback
*--------------------------------------------------------------------*
  PERFORM save_log_data_send.
  IF e_subrc EQ 0.
    COMMIT WORK.
    PERFORM dbco_commit CHANGING lv_native_err.
*    PERFORM save_log_data_send.
    e_messg = text-s01.
  ENDIF.

  TRY.  "Native sql 프로시져 호출 방법.
      EXEC SQL.
        EXECUTE PROCEDURE GBIS_RCV_QUOT_PKG.SP_RCV_QUOT_DESINGER
      ENDEXEC.
    CATCH cx_sy_native_sql_error INTO lcl_native_sql.
      lv_native_err = lcl_native_sql->get_text( ).
      e_subrc = 1.
      e_messg = text-m02 && lv_native_err.
      ROLLBACK WORK.
      PERFORM dbco_rollback(zmmhc002) CHANGING lv_native_err.
      EXIT.
  ENDTRY.

728x90
반응형