본문 바로가기
기술자료 (KB)/Power Platform

Power Apps 사원 번호 만들기

by 이완주 2023. 11. 14.

사원번호 정의

회사에서 인원 관리를 위해 부여한 관리번호를 의미한다.

 

사원번호 목적

결재 앱을 만들다 보면 사원의 정보를 가져와 처리해야 하는 값들이 생기게 된다.

이때 사원을 구분하는 목적으로 사용할 수 있다.

 

사원번호 생성 규칙

1.     고유한 번호로 중복되면 안 된다.

2.     일정한 자리 수를 가진 규칙을 만들고 이해가 가능해야 하며, 사원번호는 자동 생성되며 관리자가 원할 때 변경이
        가능해야 한다.

3.     실수로 계정이 삭제되어 다시 만들게 될 경우 관리자가 번호를 생성 및 관리할 수 있어야 한다.

4.     전자결재 및 기타 앱에서 사용가능해야 한다.

5.     정규직 임시직 등 필요시 관리 번호를 지정한다.

 

규칙 적용 예시

1.     고유한 번호로 중복되면 안 된다.

       관리자의 실수 혹은 동시 계정 생성으로 중복이 있을 수 있으며 이 경우 수동으로 사번을 변경한다.

2.     일정한 자리 수를 가진 규칙을 만들고 이해가 가능해야 하며, 사원번호는 자동 생성되며 관리자가 원할 때 변경이
        가능해야 한다.

        입사년도 년도(4자리) + 입사년도의 입사순서 (4자리)

         2023년에 3번째 입사자 사원번호 : 20230003

3.     실수로 계정이 삭제되어 다시 만들게 될 경우 관리자가 번호를 생성 및 관리할 수 있어야 한다.

         조직도 관리 화면에서 사원번호를 수정할 수 있게 구성한다.

4.     전자결재 및 기타 앱에서 사용가능해야 한다.

        휴가결재 앱에서 휴가 일수 계산에 사용된다.

        기타 앱에서 직원과 관련 정보를 검색할 때 사용한다.

5.     정규직 임시직 등 필요시 관리 번호를 지정한다.

        정규직 임시직을 구분하는 코드 및 자리수를 만들고 원하는 위치에 배정한다.

        필요 없으면 사용하지 않는다.

        예) 정규직 E (Employee), 임시직 T (Temporary)

        예) 2023E0003

6.     회사 구분 코드가 필요한 경우

        앞의 두자리를 회사 코드를 부여한다.

        예)Globalsoft (GS) GS2023E0003

 

Power Apps 적용

직원을 생성하게 되면 자동으로 사번이 생성되게 된다.

사번은 관리자에 의해 변경이 가능하다.

 

사번 생성 규칙

If( 
    varNew,
        Text(Today(),"yyyy") & 
        If( 
            Left( (First(Sort(OrgEmployee,EmpNo,SortOrder.Descending)).EmpNo) + 1, 4) = Text(Today(),"yyyy" ),
            Right( (First(Sort(OrgEmployee,EmpNo,SortOrder.Descending)).EmpNo)+1,4),"0001" 
        ), 
    Parent .Default
)

 

아래 예제를 만들어 컬렉션

아래의 예제는 컬렉션을 만들고 번호를 생성하여 업데이트하는 예제로 컬렉션 만들기 버튼을 Onselect 하면 번호가 생성되는 예제

 

 

Clear(EmployeeLists);
Collect(EmployeeLists,{No:""});

With({_no : Text(Today(),"yyyy") &  
        If(  
            Left( (First(Sort(EmployeeLists,No,SortOrder.Descending)).No) + 1, 4) = Text(Today(),"yyyy" ), 
            Right( (First(Sort(EmployeeLists,No,SortOrder.Descending)).No)+1,4),"0001"  
        )},
    Update(EmployeeLists,First(EmployeeLists),{No : _no })
)

 

컬렉션 추가 버튼을 OnSelect 하면 

With({_no : Text(Today(),"yyyy") &  
        If(  
            Left( (First(Sort(EmployeeLists,No,SortOrder.Descending)).No) + 1, 4) = Text(Today(),"yyyy" ), 
            Right( (First(Sort(EmployeeLists,No,SortOrder.Descending)).No)+1,4),"0001"  
        )},
    Patch(EmployeeLists,Defaults(EmployeeLists),{No : _no })
)

 

 

댓글