RFC 기반 웹 서비스 생성 방법

RFC 기반 웹서비스 생성 및 확인 방법 create_webservice.ppt

by saper | 2009/11/09 16:29 | 트랙백 | 덧글(0)

infotype 3000 screen enhance

infotype 3000 screen enhance tutorial.infotype_3000_screen_enhance.ppt

by saper | 2009/11/09 15:38 | Tip | 트랙백 | 덧글(0)

hr infotype operation (emp lock free version)

FUNCTION zhr_infotype_operation.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(IM_INFTY) LIKE  PRELP-INFTY
*"     VALUE(IM_PERNR) LIKE  P0001-PERNR
*"     VALUE(IM_SUBTY) LIKE  P0001-SUBTY OPTIONAL
*"     VALUE(IM_OBJPS) LIKE  P0001-OBJPS OPTIONAL
*"     VALUE(IM_SPRPS) LIKE  P0001-SPRPS OPTIONAL
*"     VALUE(IM_ENDDA) LIKE  P0001-ENDDA OPTIONAL
*"     VALUE(IM_BEGDA) LIKE  P0001-BEGDA OPTIONAL
*"     VALUE(IM_SEQNR) LIKE  P0001-SEQNR OPTIONAL
*"     VALUE(IM_RECORD)
*"     VALUE(IM_OPERA) LIKE  PSPAR-ACTIO
*"     VALUE(IM_TCLAS) LIKE  PSPAR-TCLAS DEFAULT 'A'
*"     VALUE(IM_DIALOGMODE) TYPE  C DEFAULT '0'
*"     VALUE(IM_NOCOMMIT) LIKE  BAPI_STAND-NO_COMMIT OPTIONAL
*"     VALUE(IM_VIEW_FLAG) LIKE  P0003-VIEKN OPTIONAL
*"     VALUE(IM_SEC_RECORD) OPTIONAL
*"  EXPORTING
*"     VALUE(RETURN) LIKE  BAPIRETURN1 STRUCTURE  BAPIRETURN1
*"     VALUE(KEY) LIKE  BAPIPAKEY STRUCTURE  BAPIPAKEY
*"     VALUE(SUBRC) LIKE  SY-SUBRC
*"     VALUE(MESSAGE) TYPE  STRING
*"  EXCEPTIONS
*"      INFTY_NOT_FOUND
*"----------------------------------------------------------------------

  DATA  :   BEGIN       OF    enql       OCCURS   0.
  INCLUDE     STRUCTURE        seqg3.
  DATA  :   END         OF    enql.

  DATA  :   garg              LIKE       seqg3-garg.
  DATA  :   gtarg             LIKE       seqg3-gtarg.
  DATA  :   gname             LIKE       seqg3-gname.
  DATA  :   guname            LIKE       seqg3-guname.
  DATA  :   gclient           LIKE       seqg3-gclient.

  DATA:  lv_t569v     TYPE t569v.
  DATA:  lv_return    TYPE bapireturn1,
         lv_subrc     TYPE sy-subrc,
         lv_fname(128),
         lv_opera     TYPE actio,
         lv_state     TYPE vwsta,
         lv_abkrs     TYPE abkrs.

  DATA: ls_record     TYPE char8000,
        ls_sec_record TYPE char8000.

  FIELD-SYMBOLS: <record>     TYPE c,
                 <sec_record> TYPE c.

** 사원번호 강제 잠금 해제 시작
  CONCATENATE sy-mandt im_pernr '*' INTO garg.
  gname        =      'PREL'.
  guname       =      '*'.

  CALL FUNCTION 'ENQUE_READ'
    EXPORTING
      gclient = sy-mandt
      gname   = gname
      garg    = garg
      guname  = guname
    IMPORTING
      subrc   = lv_subrc
    TABLES
      enq     = enql.

  IF lv_subrc = 0.

    CALL FUNCTION 'ENQUE_DELETE'
      IMPORTING
        subrc = lv_subrc
      TABLES
        enq   = enql.

  ENDIF.

  CLEAR  : garg, gname, guname.
  REFRESH: enql.

  CONCATENATE sy-mandt '01CP5*' INTO garg.
  gname        =      'PLOGI'.
  guname       =      '*'.

  CALL FUNCTION 'ENQUE_READ'
    EXPORTING
      gclient = sy-mandt
      gname   = gname
      garg    = garg
      guname  = guname
    IMPORTING
      subrc   = lv_subrc
    TABLES
      enq     = enql.

  IF lv_subrc = 0.

    CALL FUNCTION 'ENQUE_DELETE'
      IMPORTING
        subrc = lv_subrc
      TABLES
        enq   = enql.

  ENDIF.
** 사원번호 강제 잠금 해제 끝.

** 사원번호 잠금 시작
  gclient        =        sy-mandt.
  gname          =        'PREL'.
  CONCATENATE sy-mandt im_pernr '*' INTO gtarg.

  CALL FUNCTION 'ENQUEUE_REPORT'
    EXPORTING
      gclient = gclient
      guname  = sy-uname
      gname   = gname
      gtarg   = gtarg
    IMPORTING
      subrc   = lv_subrc
    TABLES
      enq     = enql.
** 사원번호 잠금 끝

** 급여관리 레코드를 급여관리 수정모드로 임시 변경 시작
  CLEAR lv_abkrs.
  SELECT   SINGLE   abkrs   FROM  pa0001
           INTO     lv_abkrs
           WHERE    pernr    =    im_pernr
           AND      begda   <=    sy-datum
           AND      endda   >=    sy-datum.

  CLEAR lv_t569v.
  SELECT   SINGLE   *   FROM   t569v
           INTO     lv_t569v
           WHERE    abkrs    =    lv_abkrs.

  IF sy-subrc = 0.

    lv_state         =    lv_t569v-state.
    lv_t569v-state   =    2.
    MODIFY t569v FROM lv_t569v.

  ELSE.

    lv_t569v-abkrs  =  lv_abkrs.
    lv_t569v-vwsaz  =  1.
    lv_t569v-pabrj  =  sy-datum+0(4).
    lv_t569v-pabrp  =  '01'.
    lv_t569v-state  =  2.
    lv_t569v-uabrj  =  sy-datum+0(4).
    lv_t569v-uabrp  =  '01'.
    MODIFY t569v FROM lv_t569v.

  ENDIF.
** 급여관리 레코드를 급여관리 수정모드로 임시 변경 끝

** 개인별 권한점검 해제 시작
  CALL FUNCTION 'HR_PSBUFFER_INITIALIZE'.
  CALL FUNCTION 'HR_READ_INFOTYPE_AUTHC_DISABLE'.
** 개인별 권한점검 해제 끝

** 인포타입 OPERATING 시작
  CALL FUNCTION 'HR_INFOTYPE_OPERATION'
    EXPORTING
      infty            = im_infty
      number           = im_pernr
      subtype          = im_subty
      objectid         = im_objps
      lockindicator    = im_sprps
      validityend      = im_endda
      validitybegin    = im_begda
      recordnumber     = im_seqnr
      record           = im_record
      operation        = im_opera
      tclas            = im_tclas
      dialog_mode      = im_dialogmode
      nocommit         = im_nocommit
      view_identifier  = im_view_flag
      secondary_record = im_sec_record
    IMPORTING
      return           = return
      key              = key
    EXCEPTIONS
      infty_not_found  = 1
      OTHERS           = 2.

  IF return-type = 'E'.

    subrc = 4.

    MESSAGE ID     return-id   TYPE  return-type
            NUMBER return-number
            WITH   return-message_v1 return-message_v2
                   return-message_v3 return-message_v4
            INTO   message.

  ENDIF.
** 인포타입 OPERATING 끝

** 급여관리 레코드 원상복귀 시작
  CLEAR lv_t569v.
  SELECT   SINGLE   *   FROM   t569v
          INTO     lv_t569v
          WHERE    abkrs    =    lv_abkrs.

  IF sy-subrc = 0.

    lv_t569v-state = lv_state.
    UPDATE t569v FROM lv_t569v.

  ENDIF.
** 급여관리 레코드 원상복귀 끝

** 사원번호 잠금 해제 시작
  CALL FUNCTION 'ENQUE_DELETE'
    IMPORTING
      subrc = lv_subrc
    TABLES
      enq   = enql.
** 사원번호 잠금해제 끝

ENDFUNCTION.

by saper | 2009/11/09 15:32 | Function | 트랙백 | 덧글(0)

Component Reuse

Data: lo_cmp_usage type ref to if_wd_component_usage,
        lo_interfacecontroller type rf to ziwci_net310_comp_s2.

lo_cmp_usage = wd_this->wd_cpuse_alv_flight( ) .
if lo_cmp_usage->has_active_component( ) is initial.
lo_cmp_usage->create_component( ) .
endif.

lo_interfacecontroller = wd_this->wd_cpfic_customer_comp_usage( ) .
lo_interfacecotroller->showcustomer( 
    iv_customer_id = lv_customid ) .

by saper | 2009/10/05 20:59 | Webdynpro | 트랙백 | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶