이번엔, 제목그대로 InfoPath2010과 SharePoint Designer2010을 이용해서 SharePoint Workflow를 개발해 보도록 하겠습니다.
1. 먼저 [휴가신청서]라는 이름의 결재문서를 InfoPath를 이용해서 만듭니다.
startDate
(number(substring(endDate, 9, 2)) + floor((153 * (number(substring(endDate, 6, 2)) + 12 * (floor((14 - number(substring(endDate, 6, 2))) / 12)) - 3) + 2) / 5) + (number(substring(endDate, 1, 4)) + 4800 - (floor((14 - number(substring(endDate, 6, 2))) / 12))) * 365 + floor((number(substring(endDate, 1, 4)) + 4800 - (floor((14 - number(substring(endDate, 6, 2))) / 12))) / 4) - floor((number(substring(endDate, 1, 4)) + 4800 - (floor((14 - number(substring(endDate, 6, 2))) / 12))) / 100) + floor((number(substring(endDate, 1, 4)) + 4800 - (floor((14 - number(substring(endDate, 6, 2))) / 12))) / 400) - 32045) - (number(substring(., 9, 2)) + floor((153 * (number(substring(., 6, 2)) + 12 * (floor((14 - number(substring(., 6, 2))) / 12)) - 3) + 2) / 5) + (number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) * 365 + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) / 4) - floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) / 100) + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) / 400) - 32045) + 1 |
endDate
(number(substring(., 9, 2)) + floor((153 * (number(substring(., 6, 2)) + 12 * (floor((14 - number(substring(., 6, 2))) / 12)) - 3) + 2) / 5) + (number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) * 365 + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) / 4) - floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) / 100) + floor((number(substring(., 1, 4)) + 4800 - (floor((14 - number(substring(., 6, 2))) / 12))) / 400) - 32045) - (number(substring(startDate, 9, 2)) + floor((153 * (number(substring(startDate, 6, 2)) + 12 * (floor((14 - number(substring(startDate, 6, 2))) / 12)) - 3) + 2) / 5) + (number(substring(startDate, 1, 4)) + 4800 - (floor((14 - number(substring(startDate, 6, 2))) / 12))) * 365 + floor((number(substring(startDate, 1, 4)) + 4800 - (floor((14 - number(substring(startDate, 6, 2))) / 12))) / 4) - floor((number(substring(startDate, 1, 4)) + 4800 - (floor((14 - number(substring(startDate, 6, 2))) / 12))) / 100) + floor((number(substring(startDate, 1, 4)) + 4800 - (floor((14 - number(substring(startDate, 6, 2))) / 12))) / 400) - 32045) + 1 |
이렇게 필드값에 동작값을 명시하면 되고, 아울러 두 필드값들에 추가로 비어있을 경우에는 '0'값을 넣는 것도 잊지말아야 합니다.
자, 다음은 신청자의 사용자정보값을 가져오기입니다.
이때에는, 다음과같이 [웹 서비스] 데이터 연결을 이용하여 가져오기합니다.
이제 InfoPath 디자인 폼에 와서 아래와 같이 양식로드시, Param값을 줍니다.
아래와 같이 SharePoint로 양식전송시, 파일이름 등을 지정합니다. 여기서 [양식이 있는 경우 덮어쓰기 허용]은 '아니오'로 해야겠죠..^^
디자인작업이 완료되었으면, SharePoint로 양식을 게시합니다.
이제 SharePoint Designer2010을 이용한 Workflow를 개발해 보도록 하겠습니다.
먼저, SharePoint에서 원하는 위치에 결재용 [양식 라이브러리]를 만듭니다. 뭐 굳이 안 만들어놔도 SharePont Designer에서 만들 수도 있습니다.
상단에 [목록 워크플로]를 선택하고, 위에서 만든 양식라이브러리를 선택합니다.
조건절도 구현해 봅니다.
#########################################################################################################
문제점
간혹 아래처럼 사용자 프로필을 못가져오는 경우가 있습니다.
또한, 워크플로 구성시, 아래처럼 [상태 페이지에 워크플로 시각화 표시]가 비활성화 되어있다면, 해당 서버에 Windows Office Visio Professional 2010 이상을 설치하시기 바랍니다.
최근 버전에서는 비활성화되지 않고, 선택만 되지 않네요. 그리고 보시듯이 메세지가 Visio Premium이 설치되어야 한다고 나옵니다. 참조하시길..
그리고, 중앙관리에서 Visio Graphics Service도 [시작됨]인지 확인해 보시기 바랍니다.
자, 이렇게 Windows Office Visio Professional 2010 이상버전을 까시게 되면, 아래처럼 [상태 페이지에 워크플로 시각화 표시]가 활성화된 것을 확인하실 수 있습니다.
Status |
Value |
Not Started |
0 |
Failed on Start |
1 |
In Progress |
2 |
Error Occurred |
3 |
Canceled |
4 |
Completed |
5 |
Failed on Start(Retrying) |
6 |
Error Occurred (Retrying) |
7 |
Canceled |
15 |
Approved |
16 |
Rejected |
17 |
실제 워크플로 구성시, 아래와 같이 사용합니다.
다음은 워크플로우를 수정->게시할 때 이전버전이 계속 History성으로 남는데..
'SharePoint 2010' 카테고리의 다른 글
SharePoint Workflow 개발(with InfoPath) (0) | 2013.01.30 |
---|---|
Custom Field Type 만들기 (0) | 2013.01.24 |
Content Type & Custom List 만들기(SharePoint 2010) (0) | 2013.01.15 |
How to Create WCF Web Service on SharePoint 2010 (0) | 2013.01.15 |
InfoPath 로딩시 현재사용자 기본 셋팅하는 방법 (0) | 2013.01.15 |