Integration between custom system and Crm Dynamics 2016 Online - web-services

I'm working on Dynamics since about 1 year, and I'm working on "on premise" environments, and I don't know very much about online solutions.
I should now integrate 2 systems through webservice, and one of them involves Microsoft Dynamics CRM Online 2016.
What I'm trying to accomplish is that the custom systems sends data to the CRM Online through webservice.
I've read I just can't deploy my webservice and my logic as I've always done (separate web application that receives a Json or a XML through web services and works on CRM entities through the SDK).
So, do I need a separate machine to receive the XML and working on the CRM through the SDK?
In some posts I learn a little about Azure, but I don't know if it could be a nice solution. Should I get a virtual machine and then install IIS? Will my web app be visible by the custom system and able to work on the CRM online? Do I need a different service?
Thanks in advance and sorry for the confusion, it's the first time I'm trying to make CRM Online communicate with the outside.

So if I understand correctly your approach is 'custom system <=> your WS <=> CRM Online 2016
I've read I just can't deploy my webservice and my logic as I've always done (separate web application that receives a Json or a XML through web services and works on CRM entities through the SDK).
In CRM Online you don't have access to machine that CRM stands on so no folders, no inetmgr, no deploy.
So, do I need a separate machine to receive the XML and working on the CRM through the SDK?
Yes.
Should I get a virtual machine and then install IIS?
It doesn't have to be new virtual machine. It could be for example machine that custom system stands on ofc. if it can be configured to have access to the internet.
Will my web app be visible by the custom system and able to work on the CRM online?
It is matter of configuration of NAT, firewall etc.
Do I need a different service?
What service do you reffer here?

Related

Calling an external API from Microsoft Dynamics Nav

I am researching how to integrate Microsoft Dynamics NAV with my existing REST API (built on Django REST Framework). What I would like to do is trigger API calls from NAV to CRUD objects via the REST API.
Reading the web services docs for NAV, it seems clear that NAV can expose a web service for other software to consume from. But can NAV consume 3rd party APIs? In the web services examples documentation, it says:
Solutions that need to execute business logic or read data from
Microsoft Dynamics NAV are candidates for Web service implementation.
These can also be solutions that write data to Microsoft Dynamics NAV
and validate the data using existing business logic.
Also, it gives the following example of how to use web services:
Execute any kind of business logic that is more easily developed and
managed in Microsoft Dynamics NAV.
However, I don't see any examples of data writing. It doesn't seem that in the exposure of web service pages or codeunits, there's a way to make calls to 3rd party APIs and execute business logic with the data that comes back within NAV. Is this actually possible?
Unfortunately not, no.
You do however have access to the full .NET framework from within the 'Development Client' of Dynamics NAV - When defining your variables select the Type of DotNet
It's far from perfect, so for larger tasks I'll create AddIns or completely external libraries (depending on version).
For something smaller like this I personally find it easiest to write it in C# as a small (console) app and the 'translate' it back into Dynamics NAV.
If you are looking for way to invoke a web service then why do you need Nav web services? Nav web services is a way to call Nav.
These can also be solutions that write data to Microsoft Dynamics NAV and validate the data using existing business logic.
This means if you invoke published Nav web service then you can pass data to your call and the data will be validated and saved to Nav. So this is about how to push data to Nav, not pull from external system.
If you want to invoke a web service from Nav consider this options:
Write external wraper library (as mentioned by #SeeSharp or as described). Then use it in C/AL as DotNet or Automation types of variables.
Use existing libraries like 'Microsoft XML, v6.0'.XMLHTTP60 right in C/AL to make http calls to your web service.
Do it Navision style.
Last damn option is to write console application that will consume your web service and call it from Nav using shell. This is not an option, I know.

Where do I start making a web service for wp7 to windows azure db

I'm writing an app which I need to store user details, location and connections in azure db but have no experience with cloud storage. I have created my azure database but not sure how to communicate with the wp7 app. Any thoughts on where to start with the web service,
Thanks, MH
The following may point you in the right direction "Using Windows Phone with Windows Azure
" :-
http://msdn.microsoft.com/en-us/library/windowsazure/hh689721(v=vs.103).aspx
http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/31/building-windows-phone-applications-using-windows-azure.aspx
As to windows phone azure project, do you mean Windows Azure Toolkit for Windows Phone? This toolkit is optional. It may help us in some cases, especially if we want to integrate with ACS. But a web service will be enough if all we need is to bring data to the phone.
Best Regards,
Ming Xu.
To add to Paul’s suggestions, the recommended architecture is: Hosting a service in Windows Azure (such as WCF Data Services). The service will talk to SQL Azure (if you use SQL Azure as the database). Client devices, such as Windows Phone, iPhone, Andriod, a web browser, and so on, will communicate with the service. If you use WCF Data Services, you can expose the data to clients via the OData protocol, which is supported by multiple devices. To get started with WCF Data Services, I would like to suggest you to check http://msdn.microsoft.com/en-us/library/cc668796.aspx. To learn how to consume OData in Windows Phone, please refer to http://blogs.msdn.com/b/phaniraj/archive/2010/03/19/developing-a-windows-phone-7-application-that-consumes-odata.aspx.
Best Regards,
Ming Xu.

Is there a way to access Microsoft OCS Directory/Presence information using a web service?

We are working on a client app that should search and download directory information from Microsoft OCS server (OCS old as well as Lync).
Does OCS provide web services type api?
From what I understand, the client needs to do sip handshake before it can do directory related queries.
Having dependency on sip stack is not desirable.
So I am wondering if there is a way (like SOAP web service or something like that) to do it.
The client is a C++ client with access to gSoap or curl type library running on Linux platform.
Thanks for your help.
No, there is no web service out of the box that gives you what you need.
I thin your best bet would be to build a UCMA application that would sit on an application server inside your OCS/Lync infrastructure. You could then build a web service to access this.
For OCS 2007, you'd need to use UCMA 1.0. For OCS 2007 R2, UCMA 2.0 and for Lync, UCMA 3.0

Microsoft Dynamics CRM -- Do people build websites with it?

Forgive my ignorance, but do people build websites with Microsoft Dynamics CRM?
I have a potential client who says that is the technology they will use for a new web project, for which I would be doing the HTML templating. I want to learn all I can as I am new to this particular system, but I can't seem to find anything related to web building and CRM. Is it more likely the client is using another piece of technology that they are neglecting to tell us about?
Any experience or insight about this process is greatly appreciated!
You can't build website using MSCRM, but you can build ASP.Net website using CRM content easily. The API provided by MSCRM is a set of web services, that can be queried in a website to populate pages content.
Also, you can directly query the Database if you want ReadOnly content, and only for read-only content, because it is not supported to update/create data using SQL connections.
Note that it's required to have the external connector license to use any data in the CRM, thru the API and even thru direct SQL queries.
I have built a website using .NET, utilising the CRM4 API and database. All the website did was to submit queries to CRM using the CRM web services and metadata web services, and get data back. This company was already using CRM for their back end, so it's much easier for the front end to use the same database as well since it's a simple one.
The alternative would be to create an intermediate connector between the 2 systems -- backend and front end, which is not as efficient (for our case anyway).

e-commerce webapp integration via Web Services with MS Dynamics (Navision 2009)

Has anyone tried to build an e-commerce site atop MS Dynamics, using the new Web Services introduced in Nav 2009 ? I'd like to know what kind of load these web services can take, and what kind of resources can be read/written, and any other challenges that I can expect.
I intend to integrate an existing linux-based webapp via Web Services ...
Thanks.
Web services in NAV 2009 can call either CodeUnit or Page objects. Pages allow you to create, read, update and delete rows from their source table. CodeUnits offer greater flexibility, allowing you to invoke any action you can implement in C/AL. I think CodeUnit trigger arguements are limited to primitive types and Records.
NAV web services use Windows Authentication, so your linux app will have to be able to present Windows credentials accordingly. I'm not an expert in this area, so I'm not sure how difficult this is from a Linux machine.
With regard to the supported load, I would ask in the forum at mibuso - this is the largest community of experienced users I am aware of. I expect you will be limited by the CPU and memory of the web service host. NAV does not support clustering\load balancing on the web service tier, but I beleive it is possible to run several side by side.