我需要集成vTiger客户关系管理与QuickBook2010。所以它就是PHP。QB服务器和运行vTiger的Linux机器在同一个办公室里。我试着弄清楚是否有一种方法可以让PHP直接与QB服务器对话,而不是使用web连接器。我们需要实时数据访问。不像真正的‘实时’,但报告需要在5-30秒内生成。只读数据,不写。有没有办法直接向QB服务器发送/接收qbXML?提前谢谢。迈克尔
发布于 2013-01-30 08:37:46
这是可以做到的。但请注意,对于实时数据访问,QuickBooks并不总是最可靠的集成软件--到QuickBooks的连接往往既慢又脆弱,这就是为什么您经常看到带有Web Connector的排队模型的原因。
您可以做的就是编写一个自定义的C#组件(查看SDK附带的示例,特别是这个示例: C:\Program Files (x86)\Intuit\IDN\QBSDK12.0\samples\qbdt\c-sharp\qbXML\CustomerAdd),它打开一个到QuickBooks的连接,然后执行任何操作。
"Whatever“可能是这样的:
或
请注意,每隔5秒在QuickBooks中生成一份报告可能会大大降低QuickBooks的速度。根据您谈论的数据量和过滤器的不同,可能甚至不可能让QuickBooks那么快地生成报告。
同样,请注意,某些情况会导致与QuickBooks的连接失败,因此您必须优雅地处理这些问题。具体地说:
等。
也许如果你能提供更多关于为什么你需要如此频繁地访问报告的详细信息,我们可以提供一些额外的信息。
您的代码将如下所示:
while (true)
{
string input = "your fancy qbXML request goes here";
RequestProcessor2 rp = null;
string ticket = null;
string response = null;
try
{
rp = new RequestProcessor2 ();
rp.OpenConnection("", "Your App Name");
ticket = rp.BeginSession("", QBFileMode.qbFileOpenDoNotCare );
response = rp.ProcessRequest(ticket, input);
}
catch( System.Runtime.InteropServices.COMException ex )
{
MessageBox.Show( "COM Error Description = " + ex.Message, "COM error" );
return;
}
finally
{
if( ticket != null )
{
rp.EndSession(ticket);
}
if( rp != null )
{
rp.CloseConnection();
}
};
// Do something with the response here
...
}https://stackoverflow.com/questions/14578656
复制相似问题