当我执行查询时,十分钟后出现以下错误:
Error processing file 'c:\temp\in\GLTransactions\070-GLTransactions-2016-9-4-102.xml':Invantive.Data.OAuthException: itgenerr024: Your session has expired.
Please log on again.
at Invantive.Data.ExactOnlineProvider.InterpreteResults(List'1SubproviderResults) in File294:line 609
at Invantive.Data.ExactOnlineProvider.ExecuteAction(String action, ParameterList paramters, Int32& result) in File294:line 727
at Invantive.Data.ConnectionManager.ExecuteProviderAction(String action, ParameterList parameters, String& handlingPath) in File39:line 2685
at Invantive.Data.ConnectionManager.ExecuteAction(String action, ParameterList parameters) in File39:line 1761
at
Invantive.Producer.Windows.Forms.LocalQueryProcessor.ProcessClientSideStatement
(Object owner, IProgressNotifier notifier, String statement, ultrGrid resultsGrid, ResultSet,
Dictionary'2 resultSetClipBoards, DisplayColumnDefinitionCollection scriptingFieldDisplayDefaults,
Action'1 fetchMoreRows, Action'7 executeStatement, String
lastServerStatementExecutedWithoutExpansion, String lastServerStatementExecuted, ParameterList
bindVariables, Boolean showResultsInGrid, Boolean showStatistics, Boolean
memorizeStatisticsInSqlHistory, Boolean allowPaging, Boolean&exitApplication) in File387:line 2284
是什么原因造成的?如何解决?
答案1
在将数据上传到 Exact Online 时,会有一个短暂的令牌,有效期为 10 分钟。如果您在此期间编辑查询或查询时间超过 10 分钟,令牌将过期。在某些数据库组合(例如仅 Exact Online 连接)上,它将自动更新短暂令牌(OAuth)。
在某些组合中,例如 SQL Server/Oracle/Freshdesk 和 Exact Online 已打开时,此功能尚不起作用;您需要重新连接才能获取另一个令牌。此功能将从圣诞节版本开始支持。
作为一种解决方法,您可以在之前添加以下代码来重新连接local eol xml import
:
local log on
这将使用 GUI 或文本模式表单要求您提供凭据。或者更广泛:
local log on [connection \"<CONNECTIONNAME>\"] [user \"<LOGONCODE>\"] [password \"<PASSWORD>\"] [encryptedpassword \"<ENCRYPTEDPASSWORD>\"] [silent]
<CONNECTIONNAME>
其中,您可以用组名和数据库名(例如)替换Exact Online\Exact Online (uk)
,<LOGONCODE>
用数据库的登录代码替换,<PASSWORD>
用纯文本密码(不推荐!)或更好的加密密码。加密密码必须使用设备本身上的<ENCRYPTEDPASSWORD>
设备密钥进行加密。local encrypt password
或者静默版本(较少的日志记录):
local log on connection \"<CONNECTIONNAME>\" user \"<LOGONCODE>\" encryptedpassword \"<ENCRYPTEDPASSWORD>\" silent
这能帮你解决问题吗?