1: precon ---
start nav windows client
goto "web services".
if missing, add new entry:
type=Page, ID=42, Name=Sales Order, ServiceName=SalesOrder, Published=yes. --> you get soap and odata urls
2: add extension codeunit ---
create new codeunit "Sales Lib" (with object id e.g. 50000),
add global function "Release(Rec : record "Sales Header")"
add this code:
RelSalesDoc.RUN(Rec); // local variable RelSalesDoc : codeunit : 414
EXIT(Rec.Status = Rec.Status::Released);
3:
create another entry in web services for the new codeunit:
type=codeunit, id=<your cu id>, ServiceName= SalesOrder, published=NO !! (same name as above)
4:
create a new c# project (console appl., windows forms appl., what ever)
add new web reference (name e.g. NavProxy) with the soap url from the newly created web service entry "SalesOrder" in nav.
add this code:
using System;
using ConsoleApplication2.NavProxy;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var client = new SalesOrder_Service();
client.UseDefaultCredentials = true;
var orderNo = "1010"; // assuming you have a sales order with no. = 1010
var order = client.Read(orderNo);
var result = client.Release(order.Key);
Console.WriteLine("Sales order " + orderNo + " was released: " + result);
Console.ReadLine();
}
}
}
5:
result when running app:
"Sales order 1010 was released: True"