Ik haal via Power Query c. 10 tabellen uit AFAS op, bijna allemaal standaard getconnectors die te vinden zijn in jullie documentatie. De grootste is c. 400k regels. In de huidige dataflow haal ik puur de data op, verder geen acties. Deze dataflow klapt er na 2 uur refreshen op de PBI service uit, de Invantive monitoring registreert de tabellen allemaal, maar nergens zie ik een succesvol resultaat. Ook wordt nergens het aantal opgehaalde regels getoond.
Helaas blijkt het een behoorlijke opgave om AFAS stabiel via Invantive aan mijn rapportages te koppelen. Mocht hier algemene AFAS-tips voor zijn (buiten de generieke Power BI optimisatie, die heb ik doorlopen) dan hoor ik dat graag. Ik ben langzaam ten einde raad.
Dat is eigenaardig. Er dient tenminste een zekere vorm van voortgang te zijn. Dit kan versneld worden door de paginagrootte te vergroten, maar zelfs met de standaard instelling dient regelmatig meer informatie te komen.
Via een ander kanaal zal contact gezocht worden om mee te kijken.
De volgende melding is terug te vinden in Systeemberichten:
itgenoda326
Probeer het opnieuw wanneer het niet lukt om tekst van partitie ‘DEFAULT’ op te halen na 173,316 ms met behulp van ‘https://79700.rest.afas.online/profitrestservices/connectors/Verkoopfactuurregels?take=50000’ van ‘AfasOnline.GetConnector.verkoopfactuurregels’.
Wacht voor 6,100 ms en probeer opnieuw.
Poging #3 van 10; bericht ID ‘4fbacfdf-6bbb-4f23-bf2e-adc633d00ac5’.
en dan:
Invantive.Basics.InvantiveSqlException:
itgenoda316:
De gegevens kunnen niet worden gedownload omdat de verbinding is verbroken voordat de resultaten werden geretourneerd.
Time-out is ingesteld op 56,000 ms. https://79700.rest.afas.online/profitrestservices/connectors/Verkoopfactuurregels?take=50000
—> System.Net.WebException: The operation has timed out.
at System.Net.HttpWebRequest.GetResponse()
at Invantive.Data.Providers.Http.HttpWorker.DoRequest(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IHttpBasedProvider self, HttpWebRequest request, String url, ObjectDefinition objectDefinition, QueryObject queryObject, String partitionCode, String callSafeNameOverrule, String anonymizedPostText, Boolean allowRetryOnNoConnectionMade, Boolean allowRetryOnConnectionLoss, ParameterList parameters, Guid nativeCallUid, Boolean throwExceptionOnNonSuccessfulStatusCode, Object requestBody, Int64 timeoutInitialMs, Int64 timeoutMaxOnRetryMs, String resultCacheId, String publicQueryParameters, ExecutionStatistics& executionStatistics, ODataErrorProcessingInstructions& oDataErrorProcessingInstructions)
De oorzaak is de paginagrootte van 50.000 rijen. Voor de tabel AfasOnline.GetConnector.verkoopfactuurregels duurt dit geschat circa 2 minuten, waardoor telkens een time-out optreedt. Terugbrengen naar 25.000 rijen via:
requested-page-size=25000
zorgt er voor dat het net werkt. Uiteindelijk teruggezet naar 10.000.
Vanaf de volgende release 26.0 en elke nieuwe BETA zal een limiet opgelegd worden aan AFAS Profit qua maximum aantal rijen instelbaar via requested-page-size van 10.000.
Er blijft een probleem bestaan. Mijn grootste tabel, met 490k regels wordt geladen na 450 seconden (met 10k regels per pagina). Echter sluit de query niet af, en blijft deze ‘doorratelen’ tot de limiet van de server wordt bereikt. Bijgevoegd een screenshot waarop zichtbaar is het correcte aantal rijen, maar de cut off van 700 seconden.