2009년 11월 09일
조직영문명 유지보수 프로그램
# by | 2009/11/09 17:01 | HR module | 트랙백 | 덧글(0)
# by | 2009/11/09 16:29 | 트랙백 | 덧글(0)
infotype 3000 screen enhance tutorial.infotype_3000_screen_enhance.ppt
# by | 2009/11/09 15:38 | Tip | 트랙백 | 덧글(0)
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 | 2009/11/09 15:32 | Function | 트랙백 | 덧글(0)
# by | 2009/10/05 20:59 | Webdynpro | 트랙백 | 덧글(0)
◀ 이전 페이지 다음 페이지 ▶