2012-07-02 16 views
2

如何将参数传递给SharePoint定时器作业?将参数传递给SharePoint定时器作业

btw,我只是一个初学者到SharePoint。

谢谢。

UPDATE

我从一个站点可以根据外部DB状态文件移动到另一个站点。 所以我想通过这些数据库用户名和密码,SharePoint网站的名称作为参数。 我不想硬编码那些。

+0

请参阅我的更新。感谢您的回复。 – kevin

回答

2

当您编写计时器作业时,您将覆盖SPJobDefinition中的Execute(Guid targetInstanceId)方法。在这里,你不能不幸地传递任何参数。

你可以做的是将值存储在你的计时器作业可以访问它们的地方。其中一种方式,如this question提到的,将其放入14 Hive中的.config文件中。或者一些数据库表。或SPPropertyBag在您的SPWeb

3

您可以使用SPWorkItemJobDefinition

您可以使用TextPayload传递参数(document url, fromSiteUrl, toSiteUrl etc.)

这就像使用队列。从UI传入一些参数。 Timerjobs进程队列,读取有效负载并开始处理。

1

您可以将您的userid和psw存储在配置文件中,即OWSTIMER.EXE.CONFIG。您可以在C:\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 14 \ BIN中找到该文件。 如果不是他们那么你可以创建一个。请确保文件名必须大写。下面我提到了这个配置文件的示例内容。

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

,如果你使用的是C#,那么你可以使用

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

不要忘记,一旦你取得了你的配置文件的更改重置您的SharePoint定时服务访问这些节点。