Showing posts with label Dynamics. Show all posts
Showing posts with label Dynamics. Show all posts

Tuesday, 7 October 2008

Webservices in NAV2009

Anyone that has been reading up on NAV2009 cannot have failed to have noticed that NAV can now publish Webservices. I know clever developers have been building Webservices for NAV for a while now, but they have been building them from scratch. NAV2009 gives a simple form where you can expose a Codeunit, or a Page(the new object type used by the .NET client).
One of the examples in the Application Developers Guide publishes a Page built against the Customer Table. The example then goes on to build a simple console app that inserts, Modifies and deletes a customer record, displaying the results between each stage.
Now I know very little C# and the example has a number of bugs in it but even I have managed to get this work and add some very basic error catching in a few hours. One of the devs here told me it would have taken him somewhere between a day and 2 days top achieve the same in the past.

So the example I am talking about.
In NAV open Object Designer and run form 810
Add Page 21 and call it Customer

In Visual Studio 2008 I started a ConsoleApp Project.
I then added a reference to the WebService by Right Clicking Service References and selecting Add Service Reference. I then Clicked the Advanced Button

I then clicked Add Web Reference

I then add the webservice and named it WebService(not very original I know)

Once I had this I could start with the C# Code. Admittedly most of this was copy -  pasted from the example. But as I said there are a few bugs that I had to resolve, plus I wanted some simple error trapping
   1: using System;








   2: using System.Collections.Generic;








   3: using System.Text;








   4:  








   5: namespace ConsoleApplication1








   6: {








   7:    // import newly generated Web service proxy








   8:    using WebService;








   9:   








  10:    class Program








  11:    {








  12:        static void Main(string[] args)








  13:        {








  14:            //create instance of service and setting credentials








  15:            Customer_Service service = new Customer_Service();








  16:            service.UseDefaultCredentials = true;








  17:  








  18:            //create instance of customer








  19:            Customer cust = new Customer();








  20:            cust.Name = "Customer Name";








  21:            //Next line will throw an error. Comment out to get successful passing








  22:            cust.Address = "12345678901234567890123456789012345678901234567890123456";








  23:            Msg("Pre Insert");








  24:            PrintCustomer(cust);








  25:           








  26:            //insert customer








  27:            //service.Insert is wrong. Correct and added a Try/Catch for errors








  28:            //service.Insert(ref cust);








  29:            try








  30:            {








  31:                service.Create(ref cust);








  32:            }








  33:            catch (Exception ex)








  34:            {








  35:                Console.WriteLine(ex.Message);








  36:            }








  37:            Msg("Post Insert");








  38:            PrintCustomer(cust);








  39:  








  40:            //create filter for searching for customers








  41:            List<Customer_Filter> filter = new List<Customer_Filter>();








  42:            Customer_Filter nameFilter = new Customer_Filter();








  43:            nameFilter.Field = Customer_Fields.Name;








  44:            nameFilter.Criteria = "C*";








  45:            filter.Add(nameFilter);








  46:  








  47:            Msg("List before modification");








  48:            PrintCustomerList(service, filter);








  49:  








  50:            cust.Name = cust.Name + "Modified";








  51:            //service.Modify is wrong. Correct and added a Try/Catch for errors








  52:            //service.Modify(ref cust);








  53:            try








  54:            {








  55:                service.Update(ref cust);








  56:            }








  57:            catch (Exception ex)








  58:            {








  59:                Console.WriteLine(ex.Message);








  60:            }








  61:  








  62:  








  63:            Msg("Post Modify");








  64:            PrintCustomer(cust);








  65:  








  66:            Msg("List after modification");








  67:            PrintCustomerList(service, filter);








  68:            try








  69:            {








  70:                service.Delete(cust.Key);








  71:            }








  72:            catch (Exception ex)








  73:            {








  74:                Console.WriteLine(ex.Message);








  75:            }








  76:  








  77:  








  78:            Msg("List after deletion");








  79:            PrintCustomerList(service, filter);








  80:  








  81:            Msg("Press [ENTER] to exit program!");








  82:            Console.ReadLine();








  83:        }








  84:  








  85:        static void PrintCustomerList(Customer_Service service, List<Customer_Filter> filter)








  86:        {








  87:            Msg("Printing Customer List");








  88:  








  89:            //conduct the actual search








  90:            //service.Find is wrong. Correct and added a Try/Catch for errors








  91:            //Customer[] list = service.Find(filter.ToArray(), null, 100);








  92:            Customer[] list = service.ReadMultiple(filter.ToArray(), null, 100);








  93:           








  94:            foreach (Customer c in list)








  95:            {








  96:                PrintCustomer(c);








  97:            }








  98:            Msg("End of List");








  99:        }








 100:  








 101:        static void PrintCustomer(Customer c)








 102:        {








 103:            Console.WriteLine("No: {0} Name: {1}", c.No, c.Name);








 104:        }








 105:  








 106:        static void Msg(string msg)








 107:        {








 108:            Console.WriteLine(msg);








 109:        }








 110:    }








 111: }








 112:  
















This is an area I think will make my life a lot easier as I get involved in integration projects fairly often. 








As I get more knowledge I'll post up more examples.

Monday, 6 October 2008

Dynamics NAV MVP

I am pleased to say that the newest MVP for Dynamics NAV is Dave Roys.

Why am I so pleased that Dave has been recognised? well for the past four and a half years I have been working along side him. Dave is based out of Intergen's Christchurch office. Prioir to his move to New Zealand he had been working for a UK partner while I was with, at that time, Navision UK Ltd, and he was a student on one or two of the courses I ran back then. So in a ,very small, way I help contribute to his passion for NAV, well I hope anyway lol.

If you haven't already read his blog I advise you to do so.

Thursday, 24 July 2008

Intergen in top 5% of Microsoft Dynamics Partners

Posted From Scoop

Intergen has been honoured with membership of the 2008 Microsoft Dynamics President’s Club which consists of the top 5% of Microsoft Dynamics partners worldwide.

Intergen received this top recognition from Microsoft during the Microsoft Worldwide Partner Conference 2008 in Houston, Texas. The honour reflects Intergen’s dedication to meeting their clients’ needs.

“Microsoft is proud to congratulate Intergen on being named to this year’s Microsoft Dynamics President’s Club,” said Doug Kennedy, vice president, Microsoft Dynamics Partners. “Intergen not only has demonstrated a high level of product expertise, but also has provided a superior level of service and commitment to our Microsoft Dynamics customers, ultimately contributing to the overall success of Microsoft Dynamics and companies worldwide.”

Intergen is New Zealand's most experienced provider of Microsoft based business solutions. The company works closely with Microsoft to ensure it has the best possible understanding of their technologies so it can provide the best solution for clients.

Tony Stewart, Intergen’s Managing Director, said the award was a wonderful recognition. “It’s a fantastic result and one that is due to the efforts of the entire Intergen team. We’re always asking ourselves how we can work better for our clients and we’re delighted to be rewarded for our efforts.”

The team atmosphere is a key reason for Intergen’s success. In the Unlimited/JRA Best Places to Work in New Zealand Survey for 2007 Intergen was listed as the sixth best place to work in the ‘Medium-Large Workplaces’ category.

Intergen is also a Microsoft Gold Certified Partner which recognises the company as an ‘elite business partner’ in working with Microsoft products.

Thursday, 13 March 2008

Dynamics Entrepreneur Solution

Microsoft recently released a 'new' product in the Dynamics space. Dynamics Entrepreneur Solution. I say 'new' as in reality it is Dynamics NAV with a rebuilt GUI.
They have taken away all but the basics that a small business would need. Pretty much all that's left is simple G/L, Sales and Marketing, Purchasing, Inventory and Resources.
All the other functionality is still hidden away behind the scenes. The intention being that when a customer is of a sufficient size to need those extra bits 'migrating' them to a full blown NAV is just a case of modifying the forms and adding to the menus.
The new forms are very nice. They present the information is a user friendly manor and make it easy for a user to see related information. Where in NAV you would be going to menus to get at related information e.g. Cross References for a customer. as you can see in the screen shots in NAV you would open the customer and find the one you wanted. Then click the Customer Menu. Then Open the Cross References
















In Entrepreneur Solution you open the Customers screen. This gives you a list of all customers with some easy filter controls.


By clicking the blue arrow next to the customer you want you get that customers card and in the tabs at the bottom of the card you can select the cross references.



I kind of like this layout. When I was working for MBS I had a fair amount of exposure to Axapta, now Dynamics AX, and some of the screens in the new Entrepreneur Solution have a similar initial look and feel without the dozens of menus to actually make things happen. I can see some of the new screens being popular with larger NAV sites as well as the customers that Entrepreneur is aimed at.
I think it will be very interesting to see how Entrepreneur takes off in the market place.

Tuesday, 4 September 2007

Dynamics Book

Maybe I have been a bit slow. Or maybe I just wasn't paying attention to the right things but I just found a useful site that is being put together by the Dynamics community. So far the vast majority of the work appears to have been done by David Singleton, one of the MVP's for Dynamics NAV.

It's called the Dynamics Book and its a wiki for all the Dynamics Products. Understandably at this stage the majority of the information is around Dynamics NAV but hopefully with the wider community getting in on the act that will grow and it will become a good source for all Dynamics products.

This in conjunction with the forums, MiBuSo and Dynamics User  that many Dynamics Users and Consultants regularly contribute too are an invaluable resource for anyone working in this space, be you an end user, new consultant or developer, or experienced consultant or developer. There's always a new trick to learn. Check them out.

I'll be adding permanent links to my tool box for all of them.