SO、SU、SP.SEで解決策を探しましたが、必要なものが見つかりませんでした。スクリプトまたはその他の非コーディング方法/ツールである可能性のあるソリューションを探しています。
さまざまなレポートを SharePoint サイトに自動的にアップロードするためのスクリプト (他のユーザーが使用する) またはその他の形式の自動化を作成しようとしています。次の(VBScript)コードを機能させることができましたが、テキストベースのファイルのみ-この場合は.CSVですが、これは.TXTなどでも機能します.
Option Explicit
Dim sCurPath
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
UploadAllToSP sCurPath
Sub UploadAllToSP(sFolder)
Dim fso, folder, fil
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(sFolder)
For Each fil In folder.Files
If fso.GetExtensionName(fil) = "csv" Then
UploadFileToSP fil
End If
Next
End Sub
Sub UploadFileToSP(ofile)
Dim xmlhttp
Dim sharepointUrl
Dim sharepointFileName
Dim tsIn
Dim sBody
Set tsIn = ofile.openAsTextstream
sBody = tsIn.readAll
tsIn.close
sharepointUrl = "http://SHAREPOINT URL HERE"
sharepointFileName = sharepointUrl & ofile.name
set xmlHttp = createobject("MSXML2.XMLHTTP.4.0")
xmlhttp.open "PUT", sharepointFileName, false
xmlhttp.send sBody
If xmlhttp.status < 200 Or xmlhttp.status > 201 Then
wscript.echo "There was a problem uploading " & ofile.name & "!"
End If
End Sub
これは、テキスト データを SP サイトのファイルにパイプするため、テキスト ファイルに対してのみ機能します。ただし、任意の種類のバイナリ ファイル (.XLS、.PDF) を転送したい場合、ゴミがアップロードされます。
Shell.Application
==>を調べてみました.Namespace()
が、これは URL では機能しないようで、物理ドライブのみで機能します。ここに私が試したことのいくつかがあります(関連する部分を表示するためにトリミングされています):
Set oApp = CreateObject("Shell.Application")
If oApp.NameSpace(sharepointUrl) <> Null then ' Always Null!
' Copy here
' Some lines omitted
oApp.NameSpace(sharepointUrl).CopyHere ofile.Name ' This also fails when not surrounded by the Null check
Else
MsgBox "SharePoint directory not found!"
End If
xcopyを使用してバッチファイルも試しましたが、どちらにも接続できませんhttp://
。私はこの方法を見ましたが、これは私にとってはうまくいくかもしれませんが、NET USE
私たちの会社には複数のネットワーク共有があり、ログインしているユーザーによってマッピングが異なるため、 mapping/ を扱いたくありません。
これらはどれも私が必要とする方法で機能しないため、この種の機能を自動化する方法はありますか?
私は VBA/VBscript の経験があるので、上記のようなスクリプトか、MS Office アプリケーションに組み込まれているもの (Outlook が最適ですが、与えられたものは何でも適応できる可能性があります) のいずれかが望ましいでしょう。そうは言っても、私は Windows または Office でネイティブに実行して、これを可能にするあらゆる方法を受け入れます。ただし、Visual Studio にアクセスできないため、.NET 機能を使用できません。