【问题标题】:Dynamics crm retrieveEntityReq (Javascript) function in c# [OnPrem CRM]c# [OnPrem CRM] 中的 Dynamics crm retrieveEntityReq (Javascript) 函数
【发布时间】:2018-05-17 11:31:20
【问题描述】:

我有一个问题。 在 Javascript 中,我有如下代码,即我使用retrieveEntityReq 使用 POST 请求获取“执行报告”的数据。 我想用 C# 实现同样的功能,如果我用谷歌搜索正确,我想我们在 c# 中具有“RetrieveEntityRequest”函数。这个函数帮助我们从系统中检索元数据。 但是是否有可能实现诸如执行报告并从报告中获取响应之类的功能?

附加评论:我的最终目标是什么: 上面提到的代码是渲染报表,然后获取base64字符串中的报表数据。一旦我在 bas64 中将其作为 pdf 附加到电子邮件中。 所有这些都已经在 J​​avaScript(base64 字符串)和用于创建电子邮件和附加 pdf 的插件中实现。 现在我想在c#中实现一个SSRS报告的base64字符串。

更多的谷歌搜索让我了解了HttpWebRequest,这有助于实现类似的请求,即 GET/POST 等。 我尝试使用它,我的状态为 OK,但内容不可用。也许这有助于进一步澄清我的问题。

var retrieveEntityReq = new XMLHttpRequest();

retrieveEntityReq.open("POST", pth, false);

retrieveEntityReq.setRequestHeader("Accept", "*/*");

retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//This statement runs the query and executes the report synchronously.

retrieveEntityReq.send(query);

//These variables captures the response and returns the response in an array.

var x = retrieveEntityReq.responseText.lastIndexOf("ReportSession=");

var y = retrieveEntityReq.responseText.lastIndexOf("ControlID=");

更新:我无法实现与使用 Javascript 相同的渲染报告。 使用的不同方法是:在服务器上发布报告,然后使用 c# 代码呈现。

参考链接:https://www.codeproject.com/Articles/675762/Call-SSRS-Reports-by-using-Csharp

【问题讨论】:

  • 这是用于在客户端运行报告,为什么要在服务器端 c# 中执行此操作?
  • 您要生成什么样的报告?
  • 是的,提到的代码有助于使用 Js(客户端)实现渲染报告。我希望运行的报告是 SSRS 报告
  • 不要将答案添加为问题的编辑,而是将其作为新答案发布。

标签: c# dynamics-crm


【解决方案1】:

澄清几点:SDK 公开的RetrieveEntityRequest 消息用于查询有关实体的元数据。而您的代码示例中的retrieveEntityReq 只是一个变量,用于使用XMLHttpRequest 执行ajax 请求。 This executes/run a SSRS report & 获得会话等响应。

如果你真的想使用C#在服务器端查询类似SSRS报告的数据,我们有FetchExpression概念来运行fetchxml查询(与SSRS报告查询相同)并获得响应。

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 2021-01-15
    • 2023-03-13
    • 2019-08-12
    • 1970-01-01
    • 2021-04-10
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多