Getting Validation exception error while trying to post a service bill using .Net SDK API

This thread is now closed to new comments.
Some of the links and information provided in this thread may no longer be available or relevant.
If you have a question please start a new post.
sajju
Contributing User
8 Posts
Contributing User
Contributing User

8Posts

0Kudos

0Solutions

Solved: Go to Solution

Getting Validation exception error while trying to post a service bill using .Net SDK API

Hi Guys,

 

I am trying to post a purchase bill service using .Net SDK. Getting a validation exception error. So far I was unable to figure out why. Can anybody guide me on this? Here's the code that I am using.

 

//Create new invoice of type Purchase(Bill)/Service
var billService = new ServiceBillService(GlobalConfig.ConfigurationLocal);
var serviceBill = new ServiceBill();
var supplierLink = new SupplierLink();
Guid supplierGuid = new Guid(supplierGuidString); // Ensure UID is of existing supplier

//Add supplier to invoice, add invoice number and date
supplierLink.UID = supplierGuid;
serviceBill.Supplier = supplierLink;
serviceBill.SupplierInvoiceNumber = master.InvoiceNo;
serviceBill.Date = DateTime.ParseExact(master.Date, "d", null);

//'Create list of invoice lines
var lines = new List<ServiceBillLine>();

 

foreach (var d in details)
{
//Add Line details
var line = new ServiceBillLine();
line.Type = InvoiceLineType.Transaction;

var accountLink = new AccountLink();
accountLink.UID = d.AccountUID;

var jobLink = new JobLink();
jobLink.UID = d.JobUID;

var taxCodeLink = new TaxCodeLink();
taxCodeLink.UID = d.TaxUID;

line.Account = accountLink;
line.Description = d.Description;
line.Job = jobLink;
line.TaxCode = taxCodeLink;
line.Total = d.Amount;

//Add line details to list of invoice line
lines.Add(line);

}

//Add service lines to service bill
serviceBill.Lines = lines;

//Push new invoice details (service bill) through to cf using insert method from the bill service
billService.Insert(GlobalConfig.CompanyFile, serviceBill, GlobalConfig.CompanyFileCredentials);

 

What am I doing here wrong?

 

Thanks

Sajju

 

4 REPLIES 4
John_Dinning
Trusted User
71 Posts
Trusted User
Australia
Trusted User

71Posts

15Kudos

6Solutions

Re: Getting Validation exception error while trying to post a service bill using .Net SDK API

Hi sajju,

 

The InnerException may explain what the validation error is. Have a look at:

 

catch (ApiCommunicationException ex) //Catch database exception
{
    string myValErrStr= ex.InnerException.Message;
    return;
}

 

 

sajju
Contributing User
8 Posts
Contributing User
Contributing User

8Posts

0Kudos

0Solutions

Re: Getting Validation exception error while trying to post a service bill using .Net SDK API

InnerException.Message is "The remote server returned an error: (400) Bad Request.".

 

Wonder whether we need to provide the following also for a service line

//line.UnitCount = 0;
//line.UnitOfMeasure = "";
//line.UnitPrice = 0;
//line.UnitPriceForeign = 0;
//line.DiscountPercent = 0;

 

Please clarify.

John_Dinning
Trusted User
71 Posts
Trusted User
Australia
Trusted User

71Posts

15Kudos

6Solutions

Accepted Solution Solved

Re: Getting Validation exception error while trying to post a service bill using .Net SDK API

I don't think those fields are required but you could try.

My guess is that it it something to do with the line.Total. I think this is restricted to 2 decimal places.

 

I haven't tried this with validation errors but I think if you cast your exception to ApiValidationException then you can access a collection of errors which may give you more information. Something like this:

 

System.Collections.Generic.IList<MYOB.AccountRight.SDK.Error> ErrList = ((ApiValidationException)(TheException)).Errors;

sajju
Contributing User
8 Posts
Contributing User
Contributing User

8Posts

0Kudos

0Solutions

Re: Getting Validation exception error while trying to post a service bill using .Net SDK API

Thanks for your suggestion - 

System.Collections.Generic.IList<MYOB.AccountRight.SDK.Error> ErrList = ((ApiValidationException)(ex)).Errors;

 

Really helped me to pin point the cause - Freight Tax Code is required. Once this data was provided posting was through.

 

I also corrected the decimal place for the line total field. Again many thanks.

 

Cheers

Sajju

 

Didn't find your answer here?

Try using advanced search to find a post more easily Advanced Search
or
Get the conversation started and make a new post Start a Post