I have been working on NAV Time Registration and the solution is almost ready. The last step was to create a web service that supports stand-alone punching clocks, both in .net c# and also as a NAV client.
The web service is a standard codeunit with functions. I make sure the functions that are not to be published have the Local property set to Yes.
Using XMLport in web services requires a few parameter changes. First I include them in the function parameters. I use a boolean parameter in Return Value as a success flag.
Then in XMLport properties I change direction to export, change format to XML and select to use default namespace.
The C/Side code to answer this web service is.
[code htmlscript=”false”]IF NOT ValidateClockID(ClockID,ResponseMessage) THEN BEGIN
InsertLog(ClockID,Log.GetEmployeeList,FALSE,ResponseMessage,”);
EXIT(FALSE);
END;
IF NOT CreateEmployeeBuffer(EmployeeBuffer,ResponseMessage) THEN BEGIN
InsertLog(ClockID,Log.GetEmployeeList,FALSE,ResponseMessage,”);
EXIT(FALSE);
END;
EmployeeList.SetEmployeeList(PunchClock.Code,EmployeeBuffer);
ResponseMessage := Text033;
InsertLog(ClockID,Log.GetEmployeeList,TRUE,”,”);
EXIT(TRUE);[/code]
Then finally I run form 860, Web Services and add a line for this web service to be published.
Next post is a demonstration on how to use this web service. I used Freddys multiple service tier post in my developement enviroment to setup NAV services.