2. Пишем специальную aspx-страницу для вызова загрузчика, например, downloadFile.aspx со следующим содержимым:
Код:
<%@ Page Language="C#" Trace="false" %>
<%@ Assembly Name="Microsoft.Dynamics.Framework.Portal, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Assembly Name="Microsoft.Dynamics.Framework.Data.Ax, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Assembly Name="Microsoft.Dynamics.Framework.BusinessConnector, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Assembly Name="Microsoft.Dynamics.Framework.BusinessConnector.Proxy, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Assembly Name="Microsoft.Dynamics.Framework.Metadata.AX, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" %>
<%@ Import Namespace="Microsoft.Dynamics.Framework.Portal" %>
<%@ Import Namespace="Microsoft.Dynamics.Framework.Portal.UI" %>
<%@ Import Namespace="Microsoft.Dynamics.AX.Framework.Portal.Data" %>
<%@ Import Namespace="Microsoft.Dynamics.Framework.BusinessConnector.Proxy" %>
<%@ Import Namespace="Microsoft.Dynamics.Framework.BusinessConnector.Session" %>
<%@ Import Namespace="Microsoft.Dynamics.Framework.BusinessConnector.Adapter" %>
<%@ Import Namespace="Microsoft.Dynamics.AX.Framework.Services.Client" %>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
AxSharepointWebSession session = null;
string fileName = this.Request.QueryString["file"];
try
{
session = SessionHelper.Instance.GetSharepointSession();
if (session != null)
{
session.AxaptaAdapter.CallStaticClassMethod("EPDocuGet", "runDownloadFile", fileName);
Response.Flush();
}
}
catch (System.Exception)
{
// Current design is to not display errors to the user
// Errors are stored in the event log for review by the site operator
}
finally
{
if (session != null)
{
SessionHelper.Instance.ReleaseSharepointSession(session);
}
}
}
</script>
Страницу кладем на сервер в папку C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ep
Как видно, при загрузке этой страницы будет происходить получение имени файла из параметров запроса и вызов созданного в п. 1 метода с передачей ему имени файла.
3. Создаем в АОТ ссылку на эту страницу. Web\Web Menu ITems\URLs
Назовем ее DownloadFile.
В свойстве URL пишем: _layouts/ep/downloadFile.aspx