2011년 2월 15일 화요일

2010년 12월 27일 월요일

Massive upload of employee photos in HR

You have to use a BDC program for mass upload or upload individually through OAAD.

Use the FM ARCHIV_CREATE_DIALOG_META for upload of Photo, Since the recording of OAAD will pop-up a dialog window.

chk this source code.

*Table for filling screen
DATA: BEGIN OF t_record OCCURS 0,
pernr(12) TYPE c, "Employee Number
path(255) TYPE c, "photo path
END OF t_record.

LOOP AT t_record.

* Since the employee photo is always stored in 0002 infotype, we need to
* concatenate the employee id with preceeding zeros and pad "0002" in
* right into the pernr field which will be passed to object_id

* Any unwanted leading zeros deleted

SHIFT t_record-pernr LEFT DELETING LEADING '0'.

* Any leading space is removed

CONDENSE t_record-pernr.

* 0002 is concatenated to the emp id

CONCATENATE t_record-pernr '0002' INTO t_record-pernr.

* Push the contents of pernr into pernr_zero since its a NUMC type field
* and hence zeros will be padded automatically by the system

w_pernr_zero = t_record-pernr.

* Now pernr will be having zero padding

CLEAR w_pernr_pass.
w_pernr_pass = w_pernr_zero.

* from "ARCHIV_CREATE_DIALOG_META"


CALL FUNCTION 'ARCHIV_CREATE_DIALOG_META'
EXPORTING
archiv_id = 'A1'
ar_object = 'HRICOLFOTO'
object_id = w_pernr_pass
sap_object = 'PREL'
file = t_record-path.
IF sy-subrc 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDLOOP.

Hope this helps you.

=======================================
Santhosh Kumar R

https://forums.sme.sap.com/thread.jspa?threadID=666964&tstart=-7&messageID=5963940



=======================================
ARCHIV_CREATE_FILE

2010년 10월 28일 목요일

인사발령때 참조사번 쓰는 경우 - 펌

원본: http://www.enm-consulting.co.kr/xe/893

===================================================
인사발령때 참조사번을 이용하면 참조사번에 등록된 마스터데이터를 읽어 옴.

인사발령 후 참조사번을 그대로 두면 이후 한쪽 사번의 인포타입에 등록하면
다른 참조 사번에도 같은 데이터가 등록 됨.

참조 사번을 삭제하려면 - 인포타입 0031에서 삭제
참조사번 등록확인하려면 HRP1001테이블에서 OTYPE CP이고 OBJID가 동일한 사번들 임
복사되는 인포타입 종류 확인
IMG : 인사관리 -> 절차커스터마이징 -> 동시고용세팅 -> 인포타입 복사

그룹사 이동시 동일사번 사용 경우 - 펌

원본: http://www.enm-consulting.co.kr/xe/890

===================================================
테스트 결과
1. 퇴직발령 없이 소득정산(0008) 실행할 때 급여 Function KRSIP 에서
에러 발생 -> 퇴직일을 읽어 오는 Function에서 퇴직일 결과가 '000000'으로 됨
2. 소득정산 후 이후 회사에서 급여 계산시 CRT가 초기화한 다음 누적되어야 하는데,
계속 누적 됨.
3. 근로소득 원천징수 영수증 출력시 이전 소득정산(0008) 실행한 것을 출력해도
근무지 정보가 현재 소속회사로 출력됨.

처리방법
1. 입사일 퇴사일 BADI 수정회사 그룹사 이동 발령전일을 퇴사일에 추가
IMG : Personal Management->Personnel Administration->Evaluation basis
-> BADI Determine Entry/Leaving Dates
2. 급여 Function SETCU를 복사 수정해서 이전 급여가 중도정산(0007,0008)
이면 CRT Refresh
3. 중도정산 (0007,0008) 실행될때 그룹사 이동발령인 경우 종(전)근무지 인포타입 3542생성하여
중도정산 결과 저장 (연말정산 실행시 전근무지 정보로 읽어 옴)
4. 중도정산이 있는 사원의 연말정산 실행시 급여 Function KRTAX의 Tax Period의 시작일을
중도정산 익일로 변경
5. 원천징수 영수증 출력등 프로그램에서 사원의 소속근무지를 읽어오는 기준일자 수정

대량의 데이타를 저장 시 Buffer Clear - 펌

원본: http://www.enm-consulting.co.kr/xe/641

================================================
BDC나 또는 다른 방법으로 대량의 데이타를 Infotype에 처리 시
HR_INFOTYPE_OPERATION 을 사용하는데 이 함수의 큰 단점이
대량의 데이타 처리 시 시간이 지날수록 한건의 데이타 처리 시간이
기하급수적으로 증가하여 때로는 시스템이 죽은 것처럼 보일 정도로
한건의 데이타처리 시간이 엄청나게 오래 걸리는 경우가 종종 발생합니다.

이를 방지하기 위해 메모를 비워주는 함수를 사용하면 그 시간이 굉장히
단축됩니다. (LOOP문의 맨처음 정의)

Function : HR_INITIALIZE_BUFFER
HR_PSBUFFER_INITIALIZE

[ 사용예 ]
LOOP AT it_record.
* BUFFER 초기화
CALL FUNCTION 'HR_INITIALIZE_BUFFER'.
CALL FUNCTION 'HR_PSBUFFER_INITIALIZE'.
...

...
ENDLOOP.