从sharePoint获取文件,使用命名空间Microsoft.Dynamics.Platform.Integration.SharePoint
using Microsoft.Dynamics.Platform.Integration.SharePoint;
using Microsoft.Dynamics.AX.Framework.FileManagement;
class GetSharePointFile
{
public static void main(Args _args)
{
var getSharePointFile= new GetSharePointFile();
getSharePointFile.run();
}
public void run()
{
FileResults fileResults;
FileContents file;
str site = '/sites/mySite';
str folderPath = 'Shared Documents/Doc/MyDoc';
str fileNmae = 'myFile.xlsx';
str extId = xUserInfo::getExternalId();
System.UriBuilder builder = new System.UriBuilder("xxx.sharepoint.com/sites/mySite");
str host = builder.Host;
System.Uri uri = new System.Uri('https://'+host+site+"/_api/Web/GetFileByServerRelativePath(decodedurl='"+site+'/'+folderPath+'/'+fileNmae+"')");
SharePointProxy proxy = SharePointHelper::CreateProxy(host, site, extId);
fileResults = SharePointHelper::GetFiles(proxy, folderPath, '');
file = SharePointHelper::GetFileContents(proxy, uri);
if(!file)
{
throw error('文件不存在');
}
System.IO.Stream fileStream = file.Content;
System.IO.MemoryStream stream = new System.IO.MemoryStream();
fileStream.CopyTo(stream);
stream.Position = 0;
//SharePointDocumentStorageProvider storageProvider;
//storageProvider = new SharePointDocumentStorageProvider(host,site,folderPath,extId);
DocuFileSaveResult saveResult;
saveResult = DocuFileSave::promptForSaveLocation("导出文件", "xlsx", null, "@Label");
if (saveResult && saveResult.parmAction() != DocuFileSaveAction::Cancel)
{
DocuFileSave::processSaveResult(stream,saveResult);
}
}
}