2016-08-25 9 views
0

SDK V3を.net IppDotNetSdkForQuickBooksApiV3に使用しています。を作成した後に請求書で電子メールを送信します(Quickbookではできません。私はインボイスを作成した後自動的に、それは間違って何かをやっている)。クイックブックで.net SDKを使用した電子メールでの送信

だから、これはどのようになるです:、私はトラブルを取得しています場所です

//Get customer 
var customerQueryService = new QueryService<Customer>(context);    
var customer = customerQueryService.ExecuteIdsQuery("query to get customer"); 
/*I fill the invoice with data 
..  
.. 
..*/ 
//Call to generate invoice 
var invoiceAdded = dataService.Add(invoice); 
//Email to send 
invoiceAdded.BillEmail = customer.PrimaryEmailAddr; 
invoiceAdded.EmailStatus = EmailStatusEnum.NeedToSend; 
invoiceAdded.EInvoiceStatusSpecified = true; 
//Send Email 
dataService.SendEmail(invoiceAdded); 

最初私はcustomer.PrimaryEmailAddrからオブジェクトがidを持っていないことに気付く:

だから、

enter image description here

請求書を作成した後にメールを送信するように電話をかけます。

Object not found: EmailAddress 

enter image description here

私は私のQuickbookサイトに行けば、私はもちろん、私の顧客を持っているか、それは彼のメールです。

私は間違っているのですか?

+0

クイックブックは、QBOで2つの別々の操作であるため、デフォルトで電子メールを送信しないため、QBOで請求書を作成しても、請求書として電子メールを送信するよう指示しない限り、創造された。 –

答えて

2

これを試してください:あなたがそのメソッドに渡す

//Call to generate invoice 

var invoiceAdded = dataService.Add(invoice); 

//Send Email 

dataService.SendEmail<Invoice>(invoiceAddded, customer.PrimaryEmailAddr.Address); 
1

二番目の引数は、このバグを修正する必要があり、請求書オブジェクト、中にデフォルトの電子メールを無効にする特定のメールです。基本的に請求書を送信するために使用することができる要求の2つのバージョンがありますが、以下があります:

POST /v3/company/<companyID>/invoice/<invoiceId>/send 

そして、この1:あなただけの請求書を渡すとき

POST /v3/company/<companyID>/invoice/<invoiceId>/send?sendTo=<emailAddr> 

だから、それはにマップ最初の要求はあなたの請求書オブジェクトを取って、IDが何であるかを調べることで、何らかの理由でこれらのフィールドの多くがQBOによってデフォルトで塗りつぶされることはありません。これは、請求書を渡すだけでエラーになる理由です。何らかの理由で、QBOがあなたのために自動記入していないと思われるIDを持つ電子メールに依存しているので、私はこのために他のオーバーロードを使用しますメソッドは、リクエストに明示的に電子メールアドレスを設定する2番目のリクエストにマップします。有効な電子メールアドレスを渡して、請求書が存在する限り、リクエストは失敗しません。たくさんのバグが残っているため、QuickBooks APIは一般的に非常にバグの傾向があり、入手したときには本当に役に立たないので、一般的にバグは少なくなります私の意見では、あなた自身をもっと暴力的にさらしています。

関連する問題