Is there any way that I can view a report (Sales > Reports) using C# without having access to the reporting server?
I am attempting to write a tool that monitors the health of our CRM servers (entity records in right place etc) and as such I want the tool to be located somewhere where it has access to each CRM instance (ranging from 2013 on prem to 2016 Online).
The reason for this is that we havea report that does all the heavy lifting of checking the health of all entities,settings,records etc and i just want to be able to programatically examine this report (via xml parsing) and tell the user the result.
I tried using the html scraping, direct URL approach: /crmreports/viewer/viewer.aspx?Id=xxxxxxx however, perhaps predictably, the returned HTML was just a page prompting for a login.
I do have all of the credentials to make an Xrm Service connection but I am not sure of how to access reports using this.
Is going through the reporting services asmx the only way?
You can call SSRS WebService in your C#.
To do so you shall add a Web Service reference:
Instruction
Consider that there are 3 webservices in SSRS
There are three endpoints available for managing objects on a report
server, ReportService2005, ReportService2006, and ReportService2010.
The ReportService2005 endpoint is used for managing objects on a
report server that is configured for native mode.
The ReportService2006 endpoint is used for managing objects on a report
server that is configured for SharePoint integrated mode.
The ReportService2010 endpoint merges the functionalities of
ReportService2005 and ReportService2006 and can manage objects on a
report server that that are configured for either native or SharePoint
integrated mode.
Read more here
Related
We have an angular application on the client side, we use .net core web api on the back-end side. We used SSRS for the reporting system in our project. On the client side, we show these reports on the client using the ngx-ssrs-reportviewer module. My problem is that I want to check the identity and authorization of these users and show these reports accordingly, I need to prevent customers from seeing each other's information. I can also set up a new service, provide security with firewall, and only send requests from my api.enter image description here
I have a small question which ends in a big topic.
Is it possible - and yes how - to use C# code in a SharePoint 2013 Hosted App?
I tried to have a .asmx file within my project.
Then I get this error.
#"Error 1
CorrelationId: 9c1ea930-a131-4f5b-bff5-8a1a61fe34d9
ErrorDetail: There was a problem with activating the app web definition.
ErrorType: App
ErrorTypeName: App Related
ExceptionMessage: Microsoft.SharePoint.SPException: Exception from HRESULT: 0x81070964 ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x81070964
And then I tried a few tutorials like...
http://chuvash.eu/2012/02/13/custom-httphandler-in-sharepoint-for-getting-dynamic-javascript-code/
http://blogs.msdn.com/b/kaevans/archive/2010/08/04/deploying-an-asp-net-httphandler-to-sharepoint-2010.aspx
http://social.technet.microsoft.com/wiki/contents/articles/24194.sharepoint-2013-create-a-custom-wcf-rest-service-hosted-in-sharepoint-and-deployed-in-a-wsp.aspx
But sometimes I didn't understand correctly or sometime I have other problems during compile everything.
I had a problem with getting assembly id/name, too. Because there was no compiled DDL File for the project.
What I want in general?
A .app file with a SP Hosted App (for SP 2013) which includes a web service for SP Client Object Model.
So I thinking about using the "default.aspx" with CodeBehind. So I could execute scripts "behind" the aspx. But then it couldn't find the assembly... Or there was something else.
Could anyone help me? If you have some ideas you could !please! provide them to me. Thank's!
SharePoint hosted Apps doesn't allow server side code to be excuted on the server, this is the whole idea of SharePoint Apps, nothing should be executed in the SharePoint Front End Servers. Unlike Farm solutions, SharePoint Hosted Apps runs on the client and can only access SharePoint resources through a predefined set of services that can be called either using REST or JSOM.
If you need a custom code, you can create a WCF service, deploy it under ISAPI and call it from your App, but this will not be doable in SharePoint online.
As for your question, you can use ASPX pages of course, but you will never put a code behind for it, as these pages are stored in a Pages Library and by design, it is stored in the content DB, so any code execution is denied.
Only aspx pages that are stored on hard disk like the _layouts pages can have a code behind.
SharePoint App runs in client context. You can create SharePoint App just using JS, HTML, CSS, JSOM. You cannot use C# for App (excluding CSOM, you can use it for creation remote event receiver for example)
If you need to implement some functionality to on-premise version of SharePoint, use traditional server-side solutions, not App.
It's important to understand the difference between SharePoint-hosted Apps and Provider-hosted Apps:
SharePoint-hosted Apps
SharePoint-hosted apps, or apps where all components are hosted on either an on-premises or Office 365 SharePoint farm. SharePoint-hosted apps are installed on a SharePoint 2013 website, called the host web. They have their resources hosted on an isolated subsite of a host web, called the app web. The App is created using HTML/JavaScript with CSOM or REST calls
Provider hosted apps
Provider-hosted apps for SharePoint include components that are deployed and hosted outside the SharePoint farm. They are installed to the host web, but their remote components are hosted on another server. The App run in a server that is external to SharePoint's. It has its own infrastructure and the Provider is responsible for keeping it running. They allow you to use Server Side code and uses the .NET CSOM.
This image will give you an overview of different Hosting solutions:
Visit the following link for more information:
https://msdn.microsoft.com/en-us/library/office/fp179887(v=office.15).aspx
The SharePoint Add-in model uses ASPX pages, which can also include ASPX controls. However any methods called are restricted to client-side scripting - i.e. JavaScript and SharePoint's JSOM (JavaScript Object Model), which is a subset of the Client Side Object Model.
I've had a look around and can't seem to find what I'm looking for (unless I have and didn't realise...)
I have been tasked with creating a basic CRM web based app so that it can be used on any device.
I am using MVC 5 to do this using SQL server to store all the required tables.
What I need to do know is be able to sync with an outlook exchange server so that the user can log in and their list of contacts/scheduled tasks are taken from the outlook information as well as be able to create/edit/delete etc the contacts + scheduled tasks and be able to post them back to the outlook server. ie without having to open a local Microsoft Outlook application.
Is this possible and if so does anyone know where I may be able to find a good enough source to help me learn this further.
thanks...
Tewr's comment is right on the spot as this is a scenario suited for EWS (Exchange Web Services).
If you're using MVC 5 to develop this application, it may be the most helpful to use EWS Managed API to access the Exchange server as it allows you to all of it in C#.
Managed API - http://msdn.microsoft.com/en-us/library/office/jj220499(v=exchg.80).aspx
Working with contacts - http://msdn.microsoft.com/en-us/library/office/ee693004(v=exchg.80).aspx
Need an advice on design approach. I spent couple of hours googling and still cannot come to a conclusion. Task at hand:
design intranet app that will have access control. Users should be given rights to access it.
C# is a preferred design language
app can be a simple form with some text fields and some fields as dropdown boxes from a DB
app will send SOAP request upon form completion
there should be a couple more forms like db search, preferably with sorting ability for columns
There is a Sharepoint I can get access to. Can it easily solve the access rights management or or should create a separate app on the same IIS or perhaps I shold request a separate IIS created and deal with access rights via DOTNET solutions? What is the quickest way to design this in your view?
Our SharePoint is 2010, and professional edition of VS2013 available for development.
Thank you
About SharePoint:
There is a permission management in SharePoint. You can set user permissions up to individual items, files and pages. You can read about it here: User permissions and permission levels in SharePoint 2013 and here: Fine-grained permission reference for SharePoint Server 2013. You can use differend authentication providers (AD, FBA, Oauth etc): Authentication, authorization, and security in SharePoint 2013.
You can create customization declaratively (no code), ะก# or javascript. There is built in object model (client and server) and web services (REST for 2013 or SOAP for 2010). More about SharePoint for developers
You can use built in form web parts or create custom with server code (C#) or with just HTML and javascript. All you can do with asp.net - you can do in SharePoint with custom web parts. But you can do most of things just with HTML and javascript.
You can request web services from server code (C#) or from javascript - just like in asp.net apps.
You can do db search with javascript or server code, using your prefer datagrid controls.
I think most easy way is using SharePoint 2013 Foundation (it's free if you have Windows Server license). And using javascript and HTML - in this way you don't need to know anything about deploying solutions in SharePoint etc. But you can do it via custom web parts - in this way you may do it like common asp.net development. But it's not a best way.
I was trying to access an API which contains SharePoint Server Object Model codes from a project inside WCF server. My intention is to download a document which is on SharePoint server.
My codes are inside WCF server. SharePoint server is another server.
Whenever I try to access the server using
SPSite.Exists(new Uri(spServerURL))
It does not know the server. So when I change the WCF application pool to run under the Farm admin account, it works well.
Is it OK to do like that or it will be a security breach?
How should I try to access the document ?
I think it will be better if you'll deploy your service to existing SharePoint web applications. So your service will work under SharePoint app pool account, so, you will not have problems with permissions of your service for SharePoint. Also it will be available for your SharePoint solutions from mapped path like this http:////_vti_bin/. This is useful, when you need to acces it from web contecxt you can use just relative path /_vti_bin/.
Check this link for more information about service development for SharePoint 2010.