рдореИрдВ IAlertNotifyHandler рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Sharepoint 2010 рдореЗрдВ рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рд╕рдлрд▓ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдкрд╣рд▓реЗ, рдХрд╛рд░реНрдп рддреБрдЪреНрдЫ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред MSDN рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд▓реЗрдЦ рд╣реИ, рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд▓рд░реНрдЯ рдХрд╛ рдЕрдиреБрдХреВрд▓рди
рдЦреЛрдЬ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣рд░ рдЬрдЧрд╣ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдкреВрд░реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ)ред
рд╢рд░реНрдд
рдПрдХ SQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рдХреЛ рдмрд┐рдЬрдиреЗрд╕ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╕рд░реНрд╡рд┐рд╕реЗрдЬ (BCS) рдФрд░ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд░реНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рдкрд░ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЙрдкрдпреБрдХреНрдд XSLT рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЬрдм рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдЖрдзрд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрд╛рдж рдирд╛рдо рдФрд░ рд╕рднреА рдХреЛ рдкрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЕрд▓рд░реНрдЯ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдореНрди рдХреЗ рд╕рдорд╛рди рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рдорд╛рдирдХ рдЕрд▓рд░реНрдЯ XSLT рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдардиреАрдп рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдп рдИрдореЗрд▓ рдкрд╛рда рдХреЛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╕рдордп рдмрдирддрд╛ рд╣реИ, рдЬрдм рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдорд╛рдирддрдГ рдПрдХ рд╣реА рд╣реЛрддрд╛ рд╣реИред
рдорд╛рдирдХ рдЪреЗрддрд╛рд╡рдиреА рдЕрдиреБрдХреВрд▓рди рд╕рдорд╛рдзрд╛рди
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдПрдХ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬреЛ
рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ (рдкреИрд░рд╛рдЧреНрд░рд╛рдл 2, 5-11) рдХреЛ рдлрд┐рд░ рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
1. рдХреНрд▓рд╛рд╕ рдХреНрд▓рд╛рд╕ 1 рдХреЗ рд╕рд╛рде рдПрдХ рдПрд▓рд░реНрдЯрд╣реИрдВрдбрд▓рд░ рдбреАрдПрд▓ рдмрдирд╛рдПрдВ рдЬреЛ IAlertNotifyHandler рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдСрдирдСрдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкрджреНрдзрддрд┐ рдореЗрдВ рд╣рдо рд╡рд░реНрддрдорд╛рди рдЕрд▓рд░реНрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
2. GAC рдореЗрдВ dll рдбрд╛рд▓реЗрдВ
3. рдЕрд▓рд░реНрдЯрдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕.рдПрдХреНрд╕рдПрд▓рдПрдо рдлрд╛рдЗрд▓ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ рдЬреЛ рдХрд┐ рд╕реНрдерд┐рдд рд╣реИ: C: \ Program Files \ Common Files \ Microsoft Shared \ Web Server рдПрдХреНрд╕рдЯреЗрдВрд╢рди \ 14 \ TEMPLATE \ XMLред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрд╢рд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдореВрд▓ рдирд╣реАрдВ (рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдЖрдк рдорд╛рдирдХ рд╣реИрдВрдбрд▓рд░ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯ рд╕рдХреЗрдВ рдФрд░ рдЧрдбрд╝рдмрдбрд╝ рди рдХрд░реЗрдВ)ред
4. рдирдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рджреЗрдВ (copy рдЕрд▓рд░реНрдЯрдЯреИрдореНрд╕.рдПрдХреНрд╕рдПрдордПрд▓) CustomAlertTemplates рдФрд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬреЗрдВред рдлрд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:
< NotificationHandlerAssembly > AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904 </ NotificationHandlerAssembly >
< NotificationHandlerClassName > AlertHandler.Class1 </ NotificationHandlerClassName >
< NotificationHandlerProperties ></ NotificationHandlerProperties >
* This source code was highlighted with Source Code Highlighter .
рдЕрдм рдкреВрд░рд╛ рдмреНрд▓реЙрдХ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
< Properties >
< ImmediateNotificationExcludedFields > ID;Author;Editor;Modified_x0020_By;Created_x0020_By;_UIVersionString;ContentType;TaskGroup;IsCurrent;Attachments;NumComments; </ ImmediateNotificationExcludedFields >
< DigestNotificationExcludedFields > ID;Author;Editor;Modified_x0020_By;Created_x0020_By;_UIVersionString;ContentType;TaskGroup;IsCurrent;Attachments;NumComments; </ DigestNotificationExcludedFields >
< NotificationHandlerAssembly > AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904 </ NotificationHandlerAssembly >
< NotificationHandlerClassName > AlertHandler.Class1 </ NotificationHandlerClassName >
< NotificationHandlerProperties ></ NotificationHandlerProperties >
</ Properties >
* This source code was highlighted with Source Code Highlighter .
рдиреЛрдЯ: PublicKeyToken рдХреЛ C: \ windows \ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдвреВрдВрдврдХрд░ dll рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
5. C: \ Program Files \ Common Files \ Microsoft Shared \ web рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди \ 14 \ BIN рд╕реЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ: stsadm -o updatealerttemplates -filename "C: \ Program Files \ Common Files \ Microsoft рд╕рд░реНрд╡рд░ \ Web рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди \ 14 \" TEMPLATE \ XML \ customalerttemplates.xml "-url 6. рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ: stsadm -o setproperty -pn job-рддрддреНрдХрд╛рд▓-рдЕрд▓рд░реНрдЯ -pv" рд╣рд░ 1 рдорд┐рдирдЯ рдореЗрдВ "рдпрд╣ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред
7. рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ SharePoint рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
8. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪрд╛рд▓реВ рд╣реИред
9. рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ: iisreset
10. рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ: services.msc
11. Windows SharePoint рд╕реЗрд╡рд╛рдПрдБ рдЯрд╛рдЗрдорд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рд╕рдорд╕реНрдпрд╛
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред OnNotification рд╡рд┐рдзрд┐ (SPAlertHandlerParams ahp) рдореЗрдВ рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ ahp.eventData рдФрд░ ahp.body рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВред
Social.technet.microsoft.com рдлрд╝реЛрд░рдо рдкрд░ рдореЗрд░реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ
, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рд╣реБрдИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ IAlertNotifyHandler рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SharePoint рдЕрд▓рд░реНрдЯ рдХреЛ рдХрд╕реНрдЯрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
blogs.msdn.com/b/sharepointdeveloperdocs/archive/2007/12/14/how-to-customizing-alert-emails-using-ialertnotificationhandler.aspxрджреВрд╕рд░рд╛, рдЖрдкрдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЦреЛрдЬ рдЪреЗрддрд╛рд╡рдиреА рдИрдореЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╣реАрдВ рд╣реИред
рд╕рднреА рдЕрд▓рд░реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ:
msdn.microsoft.com/en-us/library/bb802738.aspxрдпрд╣реА рд╣реИ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ? .. рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рдореБрдЭреЗ рд▓рдбрд╝рд╛рдИ рдХреЗ рдмрд┐рдирд╛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдмрд┐рдЯ рдЬрд╛рдирдХрд╛рд░реА рджреНрд╡рд╛рд░рд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдпрд╣ рдЖрдпрд╛ рдерд╛ред
рдореЗрд░рд╛ рд╡рд┐рдХрд▓реНрдк
1. рдордВрдЪреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ AlertTemplate - "OSS.Search" рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред CustomAlertTemplates рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
< AlertTemplate Type ="Custom" Name ="OSS.Search" AlwaysNotify ="True" DefaultTitle ="Search" >
< EventTypes IsVisible ="True" >
< EventType Mask ="0x1" Selected ="true" > $Resources:Microsoft.Office.Server.Search,SearchResults_ATEventDiscovered; </ EventType >
< EventType Mask ="0x2" > $Resources:Microsoft.Office.Server.Search,SearchResults_ATEventModified; </ EventType >
< EventType Mask ="0x3" > $Resources:Microsoft.Office.Server.Search,SearchResults_ATEventAll; </ EventType >
</ EventTypes >
< Frequency IsVisible ="true" ShowImmediate ="false" ShowDaily ="true" ShowWeekly ="true" ShowTime ="false" DefaultFrequency ="Daily" />
< Filters IsVisible ="false" />
< Properties >
< NotificationHandlerAssembly > mySearchAlert, Version=1.0.0.0, Culture=neutral, PublicKeyToken=aa1e89f3cc0ef56b </ NotificationHandlerAssembly >
< NotificationHandlerClassName > mySearchAlert.MySearchAlertHandler </ NotificationHandlerClassName >
< NotificationHandlerProperties ></ NotificationHandlerProperties >
< UpdateHandlerAssembly > mySearchAlert, Version=1.0.0.0, Culture=neutral, PublicKeyToken=aa1e89f3cc0ef56b </ UpdateHandlerAssembly >
< UpdateHandlerClassName > mySearchAlert.MySearchUpdateAlertHandler </ UpdateHandlerClassName >
< UpdateHandlerProperties ></ UpdateHandlerProperties >
</ Properties >
</ AlertTemplate >
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдорд╛рдирдХ рд╣реИрдВрдбрд▓рд░ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕рд╣реЗрдЬреА рдЧрдИ рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╛рдирдХ рдЕрд▓рд░реНрдЯрдЯреИрдореНрдкрд▓реЗрдЯред Xml рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рд░реНрдЯрдЯреЗрдореНрдкрд▓реЗрдЯ_forRestore.xml рдореЗрдВ рдФрд░ рдирд┐рдореНрди рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ
< AlertTemplate Type ="Custom" Name ="OSS.Search" AlwaysNotify ="True" DefaultTitle ="Search" >
< EventTypes IsVisible ="True" >
< EventType Mask ="0x1" Selected ="true" > $Resources:Microsoft.Office.Server.Search,SearchResults_ATEventDiscovered; </ EventType >
< EventType Mask ="0x2" > $Resources:Microsoft.Office.Server.Search,SearchResults_ATEventModified; </ EventType >
< EventType Mask ="0x3" > $Resources:Microsoft.Office.Server.Search,SearchResults_ATEventAll; </ EventType >
</ EventTypes >
< Frequency IsVisible ="true" ShowImmediate ="false" ShowDaily ="true" ShowWeekly ="true" ShowTime ="false" DefaultFrequency ="Daily" />
< Filters IsVisible ="false" />
< Properties >
< NotificationHandlerAssembly > Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c </ NotificationHandlerAssembly >
< NotificationHandlerClassName > Microsoft.Office.Server.Search.Query.SearchAlertHandler </ NotificationHandlerClassName >
< NotificationHandlerProperties ></ NotificationHandlerProperties >
< UpdateHandlerAssembly > Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c </ UpdateHandlerAssembly >
< UpdateHandlerClassName > Microsoft.Office.Server.Search.Query.SearchAlertHandler </ UpdateHandlerClassName >
< UpdateHandlerProperties ></ UpdateHandlerProperties >
</ Properties >
</ AlertTemplate >
* This source code was highlighted with Source Code Highlighter .
рд╣рдо рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдЕрд▓рд░реНрдЯрдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕_рдлреЛрд░реНрд╕рд╕реНрдЯреЛрд░.рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓ - рдорд╛рдирдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд░реЛрд▓рдмреИрдХ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
2. рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдЗрдзрд░-рдЙрдзрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐, рдЬрдм рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реВрдЪрдирд╛ рдХрд╛ рдХреБрдЫ рд╣рд┐рд╕реНрд╕рд╛ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХрд╛рдо рдХрд░ рд╕рдорд╛рдзрд╛рдиред
- рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЕрд▓рд░реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдирдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ SearchAlert alert2 = new SearchAlert (s1, q1) рдмрдирд╛рддрд╛ рд╣реВрдВ;
- рдореИрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдЕрд▓рд░реНрдЯ рдХреЗ рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдмрдирд╛рддрд╛ рд╣реВрдВ - Search.Query.Query рдХреНрд╡реЗрд░реА = alert2.CreateSearchQuery
рдкрд░рд╛рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реА рдХреНрд╡реЗрд░реА рдХреА рдЖрдВрддрд░рд┐рдХ AlertInfo рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХреА, LastUpdateTime рдХреЛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдорд╛рди рдкрд░ рд╕реЗрдЯ (рдЕрдВрддрд┐рдо рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ - рдореБрдЭреЗ FullTextSqlQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП SQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ
- рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЕрд▓рд░реНрдЯ 2 рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
- рдореИрдВ рдХреНрд╡реЗрд░реА рдореЗрдВ рдкреНрд░рд╛рдкреНрдд SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝реАрд▓реНрдб рдФрд░ Saherepoint 2010 рдлрд╝реАрд▓реНрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдирд╛ рдореБрдЦреНрдп HTML рд╢рд░реАрд░ рдкрд╛рда рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рд╕рднреА рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рджреВрдВрдЧрд╛ (рдпрд╣ рд▓рдВрдмрд╛ рд╣реИ) - рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдмрд┐рдВрджреБред
public class MySearchAlertHandler : IAlertNotifyHandler
//
public bool OnNotification(SPAlertHandlerParams alertHandler)
{
...
return CustomAlertNotification(alertHandler);
...
}
public bool CustomAlertNotification(SPAlertHandlerParams alertHandlerParams)
{
string myBody = "" ;
SPSite site = null ;
int searchAlertNotificationQuota = 200;
TimeSpan span;
SPAlert a = alertHandlerParams.a;
site = new SPSite(alertHandlerParams.siteUrl+ alertHandlerParams.webUrl;);
// alertTime span
DateTime alertTime = a.AlertTime;
if (a.AlertFrequency == SPAlertFrequency.Weekly)
{
span = TimeSpan .FromDays(7.0);
}
else
{
span = TimeSpan .FromDays(1.0);
}
if ((alertTime + span) <= DateTime .Now)
{
return true ;
}
using (SPWeb web = site.OpenWeb())
{
// ( ) queryText
string queryText = Utils.GetValueFromXML(a.Properties[ "p_query" ], "QueryText" );
SPSite s1 = new SPSite (alertHandlerParams.siteUrl+alertHandlerParams.webUrl );
Query q1 = new KeywordQuery(s1);
q1.QueryText = queryText;
// alert2,
SearchAlert alert2 = new SearchAlert(s1,q1);
alert2.ChangeType = AlertChangeType.DiscoveredOrModified;
alert2.InnerAlert.AlertFrequency = alertHandlerParams.a.AlertFrequency ;
alert2.InnerAlert.Title = "Temp#1" ;
alert2.InnerAlert.EventType = alertHandlerParams.a.EventType;
alert2.InnerAlert.User = s1.OpenWeb().CurrentUser ;
alert2.InnerAlert.AlertType = alertHandlerParams.a.AlertType;
alert2.Update();
// query alert2 queryText
using (Microsoft.Office.Server.Search.Query.Query query = alert2.CreateSearchQuery ())
{
ResultTableCollection tables;
query.QueryText = queryText;
query.RowLimit = searchAlertNotificationQuota;
query.TrimDuplicates = false ;
// , , , .
, Reflection internal AlertInfo query, LastUpdateTime
AlertInfo ai = new AlertInfo();
ai.ChangeType = alert2.ChangeType;
ai.LastUpdateTime = alertTime - span;
Type t1 = query.GetType();
if (t1.GetProperty( "AlertInfo" , System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance) == null )
throw new ArgumentOutOfRangeException( "propName" , string .Format( "Property {0} was not found in Type {1}" ,
"AlertInfo" , query.GetType().FullName));
t1.InvokeMember( "AlertInfo" , System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.SetProperty |
System.Reflection.BindingFlags.Instance, null , query, new object [] { ai });
// query
ResultTable result = null ;
try
{
tables = query.Execute();
}
catch
{
alert2.Delete();
return false ;
}
result = tables[ResultType.RelevantResults];
// result - alert2 -
alert2.Delete();
// DataTable . - WorkId, Rank, Title, Author, Size, Path, Description, Write, SiteName, CollapsingStatus, HitHighlightedSummary, HitHighlightedProperties, ContentClass, IsDocument, PictureThumbnailURL
// DiscoveredTime
System.Data.DataTable myTable = new System.Data.DataTable();
myTable.Load(result2, System.Data.LoadOption.OverwriteChanges);
foreach (System.Data.DataRow myrow in myTable.Rows)
{
if ( Convert .ToDateTime(myrow[ "DiscoveredTime" ]) > alertTime - span)
{
//
}
else
{
//
}
}
// , SQL, FullTextSqlQuery
FullTextSqlQuery fts = new FullTextSqlQuery(site2);
fts.QueryText = "SELECT WorkId, Rank, Title, Author, Size, Path, Description, Write, SiteName, CollapsingStatus, HitHighlightedSummary, HitHighlightedProperties, ContentClass, IsDocument, PictureThumbnailURL, PopularSocialTags, PictureWidth, PictureHeight, DatePictureTaken, ServerRedirectedURL, ErgebnisKenntnis, LetzterKontakt, Kandidatenmail FROM SCOPE() WHERE Path='" + myrow[ "Path" ].ToString() + "'" ;
fts.ResultTypes = ResultType.RelevantResults;
fts.RowLimit = 300;
ResultTableCollection rtc = fts.Execute();
* This source code was highlighted with Source Code Highlighter .
рдЬрд╣рд╛рдБ ErgebnisKenntnis, LetzterKontakt, Kandidatenmail SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ (рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ)ред рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпреЗ рдлрд╝реАрд▓реНрдб Sharepoint 2010 рд╕рд░реНрд╡рд░ рдХреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред
рдЕрдм рд╣рдо SQL рдбреЗрдЯрд╛рдмреЗрд╕, рд╢реЗрдпрд░рдкреЙрдЗрдВрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ myBody рд╕рдВрджреЗрд╢ рдХрд╛ HTML рдирд┐рдХрд╛рдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрдирд╛ рдирд╣реАрдВ рднреВрд▓рддреЗред
SPUtility.SendEmail(web, false , false , string .Format( "{0}" , alertHandlerParams.headers[ "To" ]),
string .Format( "{0}" , alertHandlerParams.headers[ "Subject" ]), myBody);
* This source code was highlighted with Source Code Highlighter .
рдЕрдм, рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл 2, 5-11 рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬ рдЕрд▓рд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд░реВрдк рдореЗрдВред
рд╕рдм рдХреБрдЫ, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЕрдиреНрдп рддрд░реАрдХреЗ рдирд╣реАрдВ рдорд┐рд▓реЗ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред