2012-07-02 2 views
2

SharePoint 타이머 작업에 매개 변수를 전달하려면 어떻게해야합니까?SharePoint 타이머 작업에 매개 변수 전달

btw, 전 SharePoint의 초보자입니다.

감사합니다.

내가 외부 DB의 상태에 따라 다른 사이트에 하나 개의 사이트에서 문서를 이동하고

UPDATE. 그래서 DB 사용자 이름과 암호, SharePoint 사이트의 이름을 매개 변수로 전달하고 싶습니다. 하드 코딩하지 않으려 고합니다.

+0

내 업데이트를 참조하십시오. 답장을 보내 주셔서 감사합니다. – kevin

답변

2

타이머 작업을 작성하면 SPJobDefinition에서 Execute(Guid targetInstanceId) 메서드를 무시합니다. 여기서 불행히도 매개 변수를 전달할 수 없습니다.

당신이 할 수있는 일은 타이머 작업이 그들을 액세스 할 수있는 값을 어딘가에 저장하는 것입니다. 한 가지 방법은 this question에 언급 된 것처럼 14 하이브에있는 파일 .config에 넣는 것입니다. 또는 일부 데이터베이스 테이블. 또는 SPWebSPPropertyBag을 입력하십시오.

3

당신은 SPWorkItemJobDefinition

당신은 매개 변수 (document url, fromSiteUrl, toSiteUrl etc.) 그것은 큐를 사용하여 같은거야

을 통과 TextPayload을 사용할 수 있습니다 사용할 수 있습니다. UI에서 일부 매개 변수를 전달하십시오. Timerjobs은 대기열을 처리하고 페이로드를 읽고 처리를 시작합니다.

1

사용자 ID와 psw를 설정 파일, 즉 OWSTIMER.EXE.CONFIG에 저장할 수 있습니다. 이 파일은 C : ₩ Program Files ₩ Common Files ₩ Microsoft Shared ₩ Web Server Extensions ₩ 14 ₩ BIN에서 찾을 수 있습니다. 자신이 없으면 하나를 만들 수 있습니다. 파일 이름은 반드시 자본금이어야합니다. 아래에서이 설정 파일의 샘플 내용을 언급했습니다. 당신은 C#을 사용하는 경우

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
     <add key="USERID" value="testUser" /> 
     <add key="PSW" value="testPSW" /> 
    </appSettings> 
</configuration> 

당신은

System.Configuration.ConfigurationManager.AppSettings["USERID"] 
System.Configuration.ConfigurationManager.AppSettings["PSW"] 

그나마 당신이 당신의 설정 파일의 변경을 한 번 셰어 타이머 서비스를 다시 설정하는 것을 잊지 사용하여 이러한 노드에 액세스 할 수 있습니다.