Windows 서비스에 대한 날짜 시간 필터를 만들면 오류가 발생합니다.
묘사
나는 하나의 예에 따라 이 컨트롤러를 설정했다class AtestController < ApplicationController
def index
if session[:access_token]
filters = []
d1 = Time.mktime(2011, 5, 1)
d2 = Time.mktime(2011, 8, 1)
filters << Quickeebooks::Windows::Service::Filter.new(:datetime, :field => 'CreateTime', :after => d1, :before => d2)
customer_service = Quickeebooks::Windows::Service::Customer.new
customer_service.access_token = session[:access_token]
customer_service.realm_id = session[:realm_id]
customer_service.list
customers = customer_service.list(filters, 1, 30, nil)
end
end
end
rails 다음 오류 던지기ArgumentError at /atest
Don't know how to generate a Filter for type datetime
Createtime은 이 페이지의 고객이 조회할 수 있는 필드가 아니라는 것을 알고 있습니다https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0500_QuickBooks_Windows/0600_Object_Reference/Customer
그러나 모든 DateTime 조회 필드는 before와:after가 지정한 범위가 아닌 DateTime만 받아들일 수 있는 것 같습니다.
토론 #1
이상하다.어떤 버전의 Quickeebooks를 사용하십니까?0.1.1(실제 0.1.3의 최신 버전)이 로드된 콘솔에서 다음을 수행합니다.
1.9.3p327>d1=시간.mktime(2011년 5월 1일)
=> 2011-05-01 00:00:00 -0700
1.9.3p327>d2 = 시간.mktime(2011년 8월 1일)
=> 2011-08-01 00:00:00 -0700
1.9.3p327>Quickeebooks::Windows::Service::Filter.새로 만들기(:datetime,:field=>CreatetTime,:after=>d1,:before=>d2)
=>Create Time: 이전: 2011-08-01T00:00-0700: 및:Create Time: 이후: 2011-05-01T00:00:00-0700
2013년 3월 21일 오후 1:48, 마이클 혜틀리[email protected]쓰기:
I set up this controller based on one of the examples
class AtestController < ApplicationController def index if session[:access_token] filters = []
``` d1 = Time.mktime(2011, 5, 1) d2 = Time.mktime(2011, 8, 1) filters << Quickeebooks::Windows::Service::Filter.new(:datetime, :field => 'CreateTime', :after => d1, :before => d2)
customer_service = Quickeebooks::Windows::Service::Customer.new customer_service.access_token = session[:access_token] customer_service.realm_id = session[:realm_id] customer_service.list customers = customer_service.list(filters, 1, 30, nil) end
end ```
end And rails throws the following error
ArgumentError at /atest Don't know how to generate a Filter for type datetime I know that CreateTime isn't a queryable field for Customer from this page
https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0500_QuickBooks_Windows/0600_Object_Reference/Customer
but it appears that all the DateTime queryable fields only accept one DateTime, not ranges like are specified by the :before and :after.
— Reply to this email directly or view it on GitHub.
토론 #2
나는 환매 협의에서 그것을 얻었다gem 'quickeebooks', :github => 'ruckus/quickeebooks'
이렇게 하면 나는 새로운 서비스를 받을 수 있다나는 단지 콘솔에서 시험해 보았을 뿐, 너와 같은 반응을 얻었다.
irb(main):007:0> Quickeebooks::Windows::Service::Filter.new(:datetime, :field => 'CreateTime', :after => d1, :before => d2)
=> CreateTime :BEFORE: 2011-08-01T00:00:00Central Daylight Time :AND: CreateTime :AFTER: 2011-05-01T00:00:00Central Daylight Time
나는 디버깅 과정에서 다음에 무엇을 해야 할지 확실하지 않다.토론 #셋
이상하다.콘솔의 출력을 확인하십시오. 시간대 (중앙 여름철) 를 포함하고 있습니다. 인투잇에 들어가면 실패할 것 같습니다.어떤 버전의 Ruby를 사용하십니까?
2013년 3월 21일 오후 2:03, 마이클 혜틀리[email protected]쓰기:
I'm sourcing it from the repo
gem 'quickeebooks', :github => 'ruckus/quickeebooks' so I can get the new services
I just tried that in the console and got the same response that you did
irb(main):007:0> Quickeebooks::Windows::Service::Filter.new(:datetime, :field => 'CreateTime', :after => d1, :before => d2) => CreateTime :BEFORE: 2011-08-01T00:00:00Central Daylight Time :AND: CreateTime :AFTER: 2011-05-01T00:00:00Central Daylight Time I'm not sure where to go next in the debugging process.
— Reply to this email directly or view it on GitHub.
토론 #4
에는 오류에 대한 정보가 더 많은데 사실은 그렇다.목록 이름irb(main):014:0> customers = customer_service.list(filters, 1, 30, nil)
ArgumentError: Don't know how to generate a Filter for type datetime
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/shared/service/filter.rb:49:in `t
o_xml'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/service_base.rb:9
4:in `block in fetch_collection'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/service_base.rb:9
4:in `collect'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/service_base.rb:9
4:in `fetch_collection'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/customer.rb:9:in
`list'
from (irb):14
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
보아하니 잘못은/lib/quickeebooks/shared/service/filter.rb
to xml 함수에:datetime 옵션이 없습니다.있어야 되나?
토론 #5
아, 그래, 일리가 있어.그래, 나는 지금 문제의 소재를 완전히 이해했다.내 요청 생성 테스트가 엉망이었다는 것도 돋보인다.
나는 다음날쯤에 이 문제를 해결해 보려고 한다.
2013년 3월 21일 오후 2:16, 마이클 혜틀리[email protected]쓰기:
So here's a little more on the error, it's actually when the .list is called
irb(main):014:0> customers = customer_service.list(filters, 1, 30, nil) ArgumentError: Don't know how to generate a Filter for type datetime from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/shared/service/filter.rb:49:in
t o_xml' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/service_base.rb:9 4:in
block in fetch_collection' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/service_base.rb:9 4:incollect' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/service_base.rb:9 4:in
fetch_collection' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/quickeebooks-c3fd766e575b/lib/quickeebooks/windows/service/customer.rb:9:inlist' from (irb):14 from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in
start' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:instart' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in
' from script/rails:6:in require' from script/rails:6:in
' looks like the error is in /lib/quickeebooks/shared/service/filter.rb
there isn't a :datetime option under the to_xml function. Should there be?
— Reply to this email directly or view it on GitHub.
토론 #6
나는 나의 갈라진 리포에서datetime to xml 함수를 실현했다.@value를 사용해야 합니다.xmlschema는 정확한 형식으로 날짜와 시간을 가져옵니다.포맷된 time (@value) 을 사용하면 포맷이 올바르지 않습니다.내 시스템이 시간대를 포함할 때 우리가 이전에 본 적이 있다고 생각한다.제 컨트롤러에 이 코드가 있어요.
if session[:access_token]
filters = []
datetime = Time.mktime(2011, 2, 25)
filters << Quickeebooks::Shared::Service::Filter.new(:datetime, :field => 'StartCreatedTMS', :value => datetime)
#filters << Quickeebooks::Shared::Service::Filter.new(:boolean, :field => 'IncludeTimeEntryEnum', :value => true)
employees = Quickeebooks::Windows::Service::Employee.new
employees.access_token = session[:access_token]
employees.realm_id = session[:realm_id]
@all_employees = employees.list(filters, page = 1, per_page = 50, sort = nil, options = {})
end
만약 내가 첫 번째 필터만 있다면, 나는 이 오류를 얻게 될 것이다IntuitRequestException at /atest
cvc-complex-type.2.4.a: Invalid content was found starting with element 'StartPage'. One of '{"http://www.intuit.com/sb/cdm/v2":EndCreatedTMS, "http://www.intuit.com/sb/cdm/v2":SortByColumn, "http://www.intuit.com/sb/cdm/v2":FirstLastName, "http://www.intuit.com/sb/cdm/v2":FirstLastEnd, "http://www.intuit.com/sb/cdm/v2":FirstLastStart, "http://www.intuit.com/sb/cdm/v2":FirstLastInside, "http://www.intuit.com/sb/cdm/v2":IncludeTimeEntryEnum}' is expected.
그래서 두 번째 필터를 추가했습니다. (위의 컨트롤러 코드에 설명) 지금 이 오류를 얻었습니다.IntuitRequestException at /atest
cvc-complex-type.2.4.d: Invalid content was found starting with element 'StartPage'. No child element is expected at this point.
토론 #7
API는 쿼리 필드의 순서에 민감합니다.StartPage 및 ChunkSize 필드를 통과된 필터 필드 앞으로 이동합니다.끌어오기 요청이 전송되었습니다.Reference
이 문제에 관하여(Windows 서비스에 대한 날짜 시간 필터를 만들면 오류가 발생합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ruckus/quickeebooks/issues/48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)