一次co-work
SharePoint Designer发布工作流:
- 在此期间,SharePoint Designer会调用对应站点的Web Service将工作流定义以及配置上传到SharePoint站点的workflows隐藏列表中。
- 然后,SharePoint Designer会继续调用Web Service将此工作流定义关联到相应的列表。
- 如果此操作出现问题,可供分析的工具及日志如下:
a) SharePoint 2013 Manager -à 查看站点的workflows隐藏列表内容是否有希望发布的工作流定义文件
b) Fiddler --à查看发布工作流时SharePoint Designer发出的HTTP请求以及内容
c) SharePoint详细日志 à 如果发布过程中出现错误,该错误必定包含在Fiddler日志和SharePoint详细日志中。
SharePoint启动工作流:
- 启动工作流出现错误时,可查看启动过程中的Fiddler日志和SharePoint详细日志。根据Fiddler日志中工作流启动页面IniWrkflIP.aspx的Correlcation Id在SharePoint详细日志中查看相关信息进行分析。
通常情况下,启用SharePoint详细日志基本不会对SharePoint场性能产生影响(PS:开启详细日志会增加日志的写入量,增加磁盘的I/O请求量)
有关收集SharePoint日志的方式, 可使用合并收集的方式以提供效率:
A. 在任意 SharePoint服务器上以管理员权限运行 PowerShell并加载SharePoint 模块
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA 0
B. 启用详细日志
Set-SPLogLevel -TraceSeverity verboseex
New-SPLogFile
C. 重现所需要收集日志的过程 , 请截图保留相关的信息 , 如错误信息 , 关联 ID, URL等 . 注意记录问题重现的开始时间点 ,结束时间点.
D. 合并日志(请注意将Path修改为较大剩余空间的硬盘分区)
$startTime = Get-Date
$endTime = Get-Date
Merge-SPLogFile -Path C:\ULSLog.log -StartTime $startTime -EndTime $endTime -Overwrite
$startTime = Get-Date -Year 2017 -Month 6 -Day 20 -Hour 11 -Minute 8
$endTime = Get-Date -Year 2017 -Month 6 -Day 20 -Hour 11 -Minute 12
Merge-SPLogFile -Path C:\ULSLog0620.log -StartTime $startTime -EndTime $endTime -Overwrite
E. 将日志详细级别复原
Clear-SPLogLevel
F. 合并收集也可利用Correlcation Id进行过滤:
Merge-SPLogFile -Path C:\ULSLog.log -Correlation <Id>
G. 针对List 启动/关闭Audit
$url = "http://xxxxx.com"
$web = Get-SPWeb $url
$wfLib = $web.Lists["workflows"]
$auditMask = [Microsoft.SharePoint.SPAuditMaskType]::Delete
$wfLib.Audit.AuditFlags = $auditMask
$wfLib.Audit.Update()
$wfLib.Audit
问题发生后, 查看相应的内容数据库中的AuditData表可找到相关记录
将AuditFlags设置为None即可。脚本如下:
$url = "http://xxxxxxx.com"
$web = Get-SPWeb $url
$wfLib = $web.Lists["workflows"]
$auditMask = [Microsoft.SharePoint.SPAuditMaskType]::None
$wfLib.Audit.AuditFlags = $auditMask
$wfLib.Audit.Update()
G. 获取List及相关属性.
url = "web url"
$web = Get-SPWeb $url
$web.Lists | Select Title, ID > lists.txt
$web.Lists | Select SchemaXML |fl >> lists.txt
$list = $web.GetListFromUrl("http://oa.geely.com/sites/jtxxglyfwzx/ITIL/Lists/List4/AllItems.aspx")
$list.WorkflowAssociations > wa.txt
.\lists.txt
.\wa.txt
H.PowerShell 获取文件路径.
[System.Reflection.Assembly]::LoadWithPartialName("Geely.Portal.Dept.Template")|Select Location | fl