如何将参数传递给 SharePoint 计时器作业?
顺便说一句,我只是 SharePoint 的初学者。
谢谢。
更新
我正在根据外部数据库状态将文档从一个站点移动到另一个站点。所以我想将那些数据库用户名和密码、SharePoint 网站的名称作为参数传递。我不想硬编码那些。
如何将参数传递给 SharePoint 计时器作业?
顺便说一句,我只是 SharePoint 的初学者。
谢谢。
更新
我正在根据外部数据库状态将文档从一个站点移动到另一个站点。所以我想将那些数据库用户名和密码、SharePoint 网站的名称作为参数传递。我不想硬编码那些。
可以TextPayload
用来传递参数(document url, fromSiteUrl, toSiteUrl etc.)
这就像使用队列。从 UI 传入一些参数。Timerjobs
处理队列,读取有效负载并开始处理。
当您编写计时器作业时,您将覆盖Execute(Guid targetInstanceId)
. SPJobDefinition
不幸的是,在这里您不能传递任何参数。
您可以做的是将值存储在某个地方,您的计时器作业将能够访问它们。正如这个问题所提到的,一种方法是将其放在.config
14 Hive 内的文件中。或者一些数据库表。或者SPPropertyBag
在你的SPWeb
.
您可以将您的用户 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"]
一旦您在配置文件中进行了更改,请不要忘记重置您的共享点计时器服务。