2015-01-20 3 views
0

저는 QuickBooks PHP DevKit (Keith!에게 감사드립니다)와 협력 중이며 quickbooks 데스크탑과 내 사이트 간의 통합 작업을하고 있습니다. 내 목표는 데이터베이스에서 보고서를 실행하기 위해 인보이스를 데이터베이스로 가져 오는 것입니다.배송 날짜를 기준으로 QuickBook 인보이스를 필터링하십시오.

QBWC가 모든 송장을 전송하는 데 너무 오래 걸릴 때 (몇 년 가치가 있음) 문제가 발생했습니다. '명백한'해결책은 qbXML 요청에 필터를 넣어 최근에 수정 된 필터 만 가져 오는 것입니다 (예 : 작년 내). 이것은 잠시 동안 훌륭하게 작동했지만 문제가 발생했습니다.

내 클라이언트가 인보이스 날짜 자체를 기반으로 송장을 가져올 찾고 송장이 생성 또는 수정하지 않을 경우,합니다 (ShipDate 일명을, 저는 믿습니다). 그러나 intuit의 OSR (화면 참조)에는 InvoiceQueryRq에서 필터링 할 수있는 더 많은 필드가 나열되어 있지 않습니다.

그래서, 내 질문은 :

  • 은 특정 송장 필드 (즉, ShipDate)을 기준으로 필터링 할 수있는 방법이 있나요?

그렇지 않은 경우 :

  • 전략적으로시의 적절하고 질서있는 방식으로 데이터 (수십만)의 거대한 덩어리를 다운로드 할 수있는 방법이 있나요? 내가 여기에 적절한 예와 해결책을 찾은 것 같아요

답변

1

(등 시간 제한, 좌절을 방지하기 위해) :

https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector_import.php

이 내가 언급 한 보조 방법의 예입니다. iterator 방법론을 사용하여 동시에 모든 인보이스 대신 여러 번 인보이스를 처리합니다. PHP DevKit은 qbXML의 '추가'태그/속성을 통해 일부 데이터를 전달할 수 있으므로 요청 메시지와 수신 메시지를 쉽게 사용할 수 있습니다.

+0

여기에 더 추가하려면 일부 입력란을 기준으로 필터링 할 수 있습니다. 필드를 필터링 할 수있는 QuickBooks OSR (https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html)을 참조해야합니다. 이 경우 태그를 사용하여 송장 날짜 (XML의 TxnDate)를 필터링 할 수 있습니다. 또한 ShipDate 필드와 TxnDate는 두 개의 개별 필드입니다. TxnDate는 송장 날짜이며 필터링 가능합니다. ShipDate는 제품이 배송 된 날짜이며 (판매 날짜 또는 인보이스 자체의 날짜와는 아무런 관련이 없음) 필터링 가능하지 않습니다. –

+0

Thanks @ KeithPalmer-consolibyte. 네, TxnDate가 필자가 필터링하기를 원하는 필드 일 것이라는 것을 깨달았습니다. 거기서 그 필터를 보았습니다. 그럼에도 불구하고 나는 링크에 게시 된 예제와 SQL 덤프에 대한 SQL 콜백에서 예시 한 것처럼 반복 접근법을 사용했습니다. 이 둘 사이에서 나는 많은 양의 데이터를 점진적으로 성공적으로 처리 할 수 ​​있었다. – brazilianldsjaguar