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.
No comments:
Post a Comment