Lietotāju darbību izsekošana ar SharePoint saistītās Excel veidnēs
Iedomājieties rosīgu biroju, kurā vairāki lietotāji piekļūst vienai SharePoint veidnei, lai iesniegtu savas veidlapas. 🖥️ Izaicinājums rodas, kad auditoram ir jānoskaidro, kurš aizpildīja un iesniedza konkrētu veidlapu. Kamēr SharePoint reģistrē šo informāciju slejā “veidotājs”, nepieciešamība izdrukāt drukāto kopiju ar lietotāja vārdu Excel lapas kājenē joprojām nav izpildīta.
Šis uzdevums kļūst sarežģītāks, jo noklusējuma VBA funkcijas ir līdzīgas Application.UserName un Vide ("lietotājvārds") bieži norāda uz sākotnējo veidnes veidotāju vai vietējās mašīnas lietotāju, nevis faktiskais lietotājs, kas rediģē veidlapu. Tāpēc ir ļoti svarīgi atrast uzticamu metodi, lai dinamiski ievietotu pareizo lietotājvārdu.
Reālos scenārijos šī neatbilstība var izraisīt neprecizitātes auditēšanā un izsekošanu. Piemēram, manā iepriekšējā amatā mums bija problēma, kad ārējo darbuzņēmēju aizpildītajās veidlapās izdrukā vienmēr tika rādīts administratora lietotājvārds, kas izraisīja ievērojamu neskaidrību revīziju laikā.
Šajā rakstā ir apskatīts, kā apiet šos šķēršļus, izmantojot VBA, SharePoint integrāciju un dažus viedus uzlabojumus. Beigās jūs iegūsit praktisku risinājumu, kas nodrošina, ka katra izdrukātā veidlapa pareizi atspoguļo atsevišķu lietotāju, kurš to iesniedzis. Iegremdējamies! 🔍
Komanda | Lietošanas piemērs |
---|---|
ActiveSheet.PageSetup.LeftFooter | Izmanto, lai programmā Excel pielāgotu aktīvās darblapas kājeni. Šajā kontekstā tas kājenē dinamiski ievieto lietotājvārdu un datumu. |
ListObjects.Add | Izveido savienojumu starp darblapu un ārēju datu avotu, piemēram, SharePoint dokumentu bibliotēku, lai iegūtu metadatus, piemēram, lauku “veidotājs”. |
CreateObject("MSXML2.XMLHTTP") | Inicializē HTTP pieprasījuma objektu API zvanu veikšanai. Šajā gadījumā tas izgūst metadatus no SharePoint REST API. |
InStr | Atrod apakšvirknes pozīciju virknē. Šeit tas tiek izmantots, lai atrastu lauku “veidotājs” JSON atbildē no SharePoint API. |
Mid | Izvelk apakšvirkni no virknes, pamatojoties uz sākuma pozīciju un garumu. Izmanto, lai parsētu lietotājvārdu no SharePoint API JSON atbildes. |
BuiltinDocumentProperties | Piekļūst Excel darbgrāmatas metadatu rekvizītiem, piemēram, rekvizītam "Creator", lai dinamiski identificētu lietotāju, kurš saglabājis dokumentu. |
Range("A1") | Norāda sākuma šūnu datu ievietošanai, kas izgūti no ārēja avota, piemēram, SharePoint metadati. |
On Error Resume Next | Ļauj turpināt koda izpildi pat tad, ja rodas kļūda. Šeit tiek izmantots, lai novērstu avārijas metadatu izgūšanas laikā. |
responseText | Izvelk HTTP atbildes pamattekstu no API izsaukuma. Šajā gadījumā tajā ir SharePoint REST API atgrieztie JSON dati. |
ParseJSONForCreator | Pielāgota funkcija lauka “veidotājs” vērtības iegūšanai no JSON atbildes virknes. |
Excel kājenes pielāgošana, izmantojot dinamiskos SharePoint lietotājvārdus
Iesniegto risinājumu mērķis ir dinamiski iegūt un parādīt SharePoint "radītājs" lietotājvārdu Excel darblapas kājenē. Šī prasība rodas gadījumos, kad vairāki lietotāji iesniedz veidlapas, pamatojoties uz koplietotu veidni, kas glabājas SharePoint, un auditoriem ir nepieciešams skaidrs attiecinājums. Pirmais skripts izmanto Excel vietējo Lapas iestatīšana funkcionalitāte, lai dinamiski pielāgotu kājeni. Apvienojot VBA metodes ar SharePoint metadatu piekļuvi, šis skripts nodrošina, ka kājene atspoguļo tā lietotāja lietotājvārdu, kurš aizpildīja veidlapu, nevis sākotnējā veidotāja lietotājvārdu.
Piemēram, pirmais risinājums sviras ListObjects.Add lai izveidotu tiešo savienojumu ar SharePoint dokumentu bibliotēku. Šī komanda ievelk metadatus darbgrāmatā, ļaujot atkārtot rindas un izvilkt lauku “veidotājs”. Iedomājieties, ka nodaļa iesniedz atbilstības veidlapas — katra iesnieguma kājenē būtu skaidri norādīts atbildīgais darbinieks, novēršot revīzijas neskaidrības. Šī metode nodrošina elastību un novērš manuālu iejaukšanos veidlapu līdzstrādnieku identificēšanā. 🚀
Otrā pieeja izmanto SharePoint REST API priekšrocības. Izmantojot CreateObject ("MSXML2.XMLHTTP") komandu, skripts ierosina HTTP pieprasījumu, lai tieši ienestu metadatus. Šī metode ir īpaši noderīga vidēs, kur SharePoint bibliotēkas ir sarežģītas vai satur daudzus laukus. JSON atbildes parsēšana ar tādām funkcijām kā InStr un Vid ļauj precīzi iegūt "radītāja" lauku. Manā iepriekšējā lomā līdzīgs skripts racionalizēja veidlapu izsekošanu, katru mēnesi ietaupot stundas manuālai saskaņošanai. 🖋️
Galīgajā skriptā tiek integrēti Office 365 rekvizīti, izmantojot BuiltinDocumentProperties komandu, lai tieši piekļūtu darbgrāmatas metadatiem. Šis skripts ir vislabāk piemērots organizācijām, kuras plaši izmanto Office 365 un kurām ir nepieciešams viegls risinājums bez REST API sarežģītības. Katram skriptam ir moduļu līdzekļi, kas padara tos atkārtoti lietojamus citās SharePoint integrētajās darbplūsmās. Piemēram, varat tos pielāgot, lai iekļautu iesniegšanas laikspiedolus vai pat nodaļu nosaukumus, vēl vairāk uzlabojot to audita lietderību.
1. risinājums: lietotājvārda izvilkšana, izmantojot SharePoint metadatus
VBA izmantošana, lai dinamiski izgūtu lauku “veidotājs” no SharePoint metadatiem un pievienotu to Excel kājenei.
Sub AddUsernameFromSharePoint()
Dim ws As Worksheet
Dim sharePointUsername As String
Dim listObj As Object
Dim spURL As String
Dim row As Object
On Error Resume Next
' Set your SharePoint site and library path here
spURL = "https://your-sharepoint-site/documents/"
Set ws = ActiveSheet
' Access metadata of the current workbook in SharePoint
Set listObj = ws.ListObjects.Add(
SourceType:=xlSrcExternal,
Source:=spURL,
Destination:=Range("A1")
)
' Loop through rows to find "creator"
For Each row In listObj.ListRows
If row.Range(1, 1).Value = "creator" Then
sharePointUsername = row.Range(1, 2).Value
Exit For
End If
Next row
' Update footer with username
ws.PageSetup.LeftFooter = "SUBMITTED BY: " & sharePointUsername & " on " & Date
On Error GoTo 0
End Sub
2. risinājums: lietotājvārda iegūšana, izmantojot SharePoint REST API
Excel VBA integrēšana ar SharePoint REST API, lai izgūtu lietotājvārdu no lauka “veidotājs”.
Sub FetchUsernameWithAPI()
Dim http As Object
Dim jsonResponse As String
Dim username As String
Dim ws As Worksheet
Set http = CreateObject("MSXML2.XMLHTTP")
Set ws = ActiveSheet
' API endpoint to fetch metadata
apiURL = "https://your-sharepoint-site/_api/web/lists/getbytitle('Documents')/items"
' Make GET request
http.Open "GET", apiURL, False
http.setRequestHeader "Accept", "application/json;odata=verbose"
http.Send
' Parse response for "creator" field
jsonResponse = http.responseText
username = ParseJSONForCreator(jsonResponse)
' Add username to footer
ws.PageSetup.LeftFooter = "SUBMITTED BY: " & username & " on " & Date
End Sub
Function ParseJSONForCreator(jsonResponse As String) As String
' Basic parsing logic to extract "creator" value
Dim pos As Integer
Dim creatorValue As String
pos = InStr(jsonResponse, """creator"":")
creatorValue = Mid(jsonResponse, pos + 10, InStr(pos + 10, jsonResponse, ",") - pos - 10)
ParseJSONForCreator = creatorValue
End Function
3. risinājums: Office 365 tiešsaistes līdzekļu izmantošana ar VBA integrāciju
Excel VBA iespēju apvienošana ar Office 365 tiešsaistes līdzekļiem, lai nodrošinātu nemanāmu SharePoint integrāciju.
Sub AddFooterFromO365()
Dim ws As Worksheet
Dim o365User As String
Set ws = ActiveSheet
' Assume user is logged in to Office 365
o365User = Application.UserName
' Fetch creator data from workbook properties
If ActiveWorkbook.BuiltinDocumentProperties("Creator") <> "" Then
o365User = ActiveWorkbook.BuiltinDocumentProperties("Creator")
End If
' Add to footer
ws.PageSetup.LeftFooter = "SUBMITTED BY: " & o365User & " on " & Date
End Sub
SharePoint datu integrēšana ar Excel VBA uzlabotai auditēšanai
Viens no Excel integrēšanas ar SharePoint aspektiem, kas bieži tiek ignorēts, ir nemanāma metadatu plūsma starp abām platformām. Izmantojot VBA, jūs varat pārsniegt pamata automatizāciju, lai iegūtu svarīgus metadatu laukus, piemēram, lietotājvārds personas, kas aizpilda veidni, un izmantojiet tās pielāgotajās Excel kājenēs vai galvenēs. Šī funkcionalitāte ir būtiska tādos gadījumos kā atbilstība, kad katrā iesniegtajā veidlapā ir skaidri jānorāda persona, kas ir atbildīga par tās aizpildīšanu.
Vēl viena noderīga pieeja ietver SharePoint plašo metadatu iespēju izmantošanu. Piemēram, tādas slejas kā “Pārveidots” vai “Pēdējoreiz mainīts”, var nodrošināt papildu kontekstu izsekošanai un pārbaudei. Dinamiski izvelkot šos datus, izmantojot VBA, jūsu Excel veidnes ne tikai atspoguļo precīzu lietotāja informāciju, bet arī samazina manuālās ievades kļūdu iespējamību. Šī funkcija ir īpaši vērtīga komandas projektos, kur vairāki lietotāji sadarbojas ar koplietotām veidnēm. 🖇️
Visbeidzot, ir svarīgi ņemt vērā iespējamās atšķirības, kā organizācijas izmanto SharePoint. Dažos gadījumos var būt pielāgotas kolonnas vai metadatu lauki, kam nepieciešami pielāgojami VBA skripti. Moduļu kodēšanas prakse, piemēram, API zvanu atdalīšana no datu formatēšanas, nodrošina, ka jūsu risinājums var mērogot vai pielāgoties šādām variācijām. Piemēram, iepriekšējā projektā mēs izmantojām šo pieeju, lai automātiski ģenerētu kopsavilkuma pārskatus, kuros lietotāju darbības tika apkopotas tieši no SharePoint Excel darbgrāmatās. 🚀
Bieži uzdotie jautājumi par SharePoint un VBA integrāciju
- Kā es varu dinamiski izgūt lietotājvārdu programmā Excel, izmantojot VBA?
- Izmantojot CreateObject("MSXML2.XMLHTTP"), varat izsaukt SharePoint REST API un parsēt "creator" metadatu lauks.
- Kāpēc dara Application.UserName atgriezt sākotnējā veidotāja vārdu?
- Šī komanda izgūst ar vietējo Excel instalāciju saistītā lietotāja vārdu, kas var neatbilst lietotājam, kurš piekļūst SharePoint veidnei.
- Kāds ir labākais veids, kā parsēt JSON atbildes VBA?
- Izmantojot kombināciju no InStr un Mid, no JSON atbildes varat iegūt konkrētus datu laukus, piemēram, “creator”.
- Vai es varu Excel kājenē iekļaut citus SharePoint laukus, piemēram, "Pēdējā modifikācija"?
- Jā, varat paplašināt savu skriptu, lai iegūtu vairākus metadatu laukus, izmantojot SharePoint API, un formatēt tos iekļaušanai programmā Excel. PageSetup.
- Vai ir iespējams automatizēt šo procesu vairākām veidnēm?
- Pilnīgi noteikti. Varat izveidot skriptu, kas cilpas, izmantojot vairākas SharePoint saglabātās veidnes, katras kājeni atjauninot ar lietotāja specifiskiem datiem.
Pēdējās domas par dinamisko kājenes pielāgošanu
Nodrošinot, ka tās personas lietotājvārds, kas aizpilda SharePoint veidni, tiek precīzi parādīts Excel kājenē, uzlabo gan atbildību, gan izsekojamību. Risinājumi, kas izmanto VBA skriptus, piedāvā pielāgojamas un mērogojamas pieejas šīs vajadzības apmierināšanai.
Integrējot uzlabotas metadatu izguves metodes, piemēram, API, vai izmantojot iebūvētos dokumentu rekvizītus, organizācijas var efektīvi automatizēt darbplūsmas. Tas ne tikai ietaupa laiku, bet arī nodrošina precīzu auditu, kas ir ļoti svarīgi nozarēs, kurās ir liela atbilstība. 🚀
Atsauces un resursi VBA un SharePoint integrācijai
- Izstrādāts, kā izmantot VBA, lai dinamiski manipulētu ar Excel kājenēm: Microsoft VBA dokumentācija
- Izskaidro SharePoint REST API iespējas metadatu izgūšanai: Microsoft SharePoint REST API rokasgrāmata
- Piedāvā ieskatu SharePoint darbplūsmās un veidņu pārvaldībā: ShareGate — SharePoint metadatu paraugprakse
- Apspriež JSON parsēšanu VBA, lai iegūtu uzlabotas API atbildes: Excel Macro Pro — JSON parsēšana