如何将参数传递给SharePoint计时器作业?
顺便说一句,我只是SharePoint的初学者。
感谢。
更新
我根据外部数据库状态将文档从一个站点移动到另一个站点。 所以我想传递这些数据库用户名和密码,SharePoint网站的名称作为参数。 我不想硬编码那些。
答案 0 :(得分:3)
您可以使用TextPayload
传递参数(document url, fromSiteUrl, toSiteUrl etc.)
就像使用队列一样。从UI传递一些参数。 Timerjobs
进程队列,读取有效负载并开始处理。
答案 1 :(得分:2)
编写计时器作业时,您将覆盖Execute(Guid targetInstanceId)
中的SPJobDefinition
方法。在这里你不能遗憾地传递任何参数。
您可以做的是将值存储在某个位置,您的计时器作业可以访问它们。正如this question提到的那样,一种方法是将其放在14个Hive中的.config
文件中。或者一些数据库表。或SPPropertyBag
中的SPWeb
。
答案 2 :(得分:1)
您可以将您的用户ID和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计时器服务。