Invantive Cloud ondersteunt het laden van real-time data uit Exact Online administraties voor Power BI, Power Query en Azure Data Factory via het OData4 protocol.
Qlik Sense, Tableau e.a. met Exact Online
Echter, Qlik Sense ondersteunt alleen OData3. Qlik gebruikers konden voorheen daardoor alleen data beanderen via een tussenstap zoals datareplicatie naar een SQL Server database gegevens verwerken uit Exact Online of één van de andere ondersteunde platformen.
Tableau ondersteunt sinds einde 2022 ook OData4:
For JSON
Dankzij de for json
clause is het echter eenvoudig om de data te benaderen met een webapp in Invantive Cloud die de real-time gegevens uit Exact Online teruggeeft voor verwerking in Qlik met de Qlik REST Connector. Voor grotere volumes kan ook Invantive App Online als applicatieserver gebruikt worden.
De Qlik REST Connector ondersteunt standaard de benodigde Basic authentication en via de URL kan meegegeven worden welke tabel(len) uit Exact Online teruggegeven moeten worden. Ook geavanceerdere scenario’s met filteren op Exact Online administratie of bijvoorbeeld specifieke klanten of datums is zo eenvoudig mogelijk.
Terzijde: indien bijvoorbeeld een CSV, XML of Excel-formaat gewenst is, dan kan dat ook via de respectievelijke for ...
-clauses zoals bijvoorbeeld beschreven in:
- CSV genereren vanuit Invantive Cloud en UniversalSQL
- Excel genereren vanuit Invantive Cloud en UniversalSQL
Webapp
Doorloop de volgende stappen om een webapplicatie te maken die de JSON teruggeeft om te analyseren in Qlik Sense. Dit concept is behalve op Exact Online ook eenvoudig toepasbaar voor willekeurig welk cloudplatform zoals ActiveCampaign of Simplicate.
Voer de volgende stappen uit om Exact Online te laden in Qlik:
- Zorg dat een Exact Online database bestaat. Als die niet bestaat, maak hem aan via Anmelden.
- Voeg een applicatie toe voor de JSON connector:
- Voeg aan deze nieuwe applicatie een uitvoerbare module toe:
- De broncode staat aan het einde van dit topic.
- Ga terug naar de applicatie en kies de knop “Uitvoeren”:
- Kies de Exact Online database:
- En kies de knop “Uitvoeren”.
- Test de module door op de module te klikken en kies uiteindelijk “Kopieer Link”.
- Op het klembord staat nu de URL om deze applicatiemodule uit te voeren voor de gekozen database.
- Plaats deze URL in de Qlik REST Connector met erachter de tabelnaam, samen met de Invantive Cloud aanmeldgegevens:
- De URL kan ook handmatig getest worden in een browser:
Broncode
declare
l_table_fq_name constant varchar2 := cloud_http.get_request_query_parameter_value('table');
begin
--
-- Check that a table is specified.
--
if coalesce(length(l_table_fq_name), 0) = 0
then
raise_application_error(-20163, 'Specify a full qualified table name using the ''table'' query parameter.');
end if;
--
-- Check correct table name.
--
declare
l_dummy pls_integer;
begin
select 1
into l_dummy
from systemtables@datadictionary
where full_qualified_name = l_table_fq_name
;
exception
when no_data_found
then
declare
l_hint varchar2;
begin
select listagg(full_qualified_name || ' (alias ' || ste.provider_data_container_alias || ')')
into l_hint
from systemtables@datadictionary ste
where ( levenshtein(ste.full_qualified_name, l_table_fq_name) <= 10
or
levenshtein(ste.name, l_table_fq_name) <= 10
)
;
raise_application_error
( -20163
, 'There is no table with the full qualified name '''
|| l_table_fq_name
|| '''.'
|| case
when l_hint is not null
then ' Consider for instance: '
|| l_hint
else null
end
);
end;
end;
--
-- Return output as JSON.
--
cloud_http.set_response_content_type('application/json');
--
-- Append JSON form of table contents to HTTP output.
--
for r in
( execute
immediate
'select * from '
|| coalesce(l_table_fq_name, 'MISSING')
|| ' for json auto'
)
loop
cloud_http.append_to_response_body_text(r.json);
end loop;
end;
Een voorbeeld URL met de REST connector op Qlik is de volgende URL die alle projecten download uit de voorbeeld database:
https://cloud.invantive.com/app/development/applications/.../execute/.../modules/…?table=Dummy.Demo.Projects
401 foutmelding bij Downloaden in Qlik
Er kan een 401 Unauthorized
foutmelding optreden bij het laden van Exact Online in Qlik, die niet optreedt als de URL van App Online in de browser gebruikt wordt. Controleer dan dat de HTTP-header “User-Agent” een waarde heeft gekregen in Qlik. Voeg ook het IP-adres van Qlik zoals ::ffff:52.31.212.214 toe aan de toegestane IP-adressen of gebruik de *
wildcard.
XML foutmelding bij ophalen tabellen
Bij het ophalen van de lijst met tabellen dient u te kiezen voor `` JsonV4ListResourcesen niet voor
ListResources` (die enkel het verouderde XML ondersteunt):
OutOfMemoryException bij Preview
De Qlik Cloud preview kan een OutOfMemoryException geven bij het previewen. Dit is een preview-only issue. Gelieve de gegevens gewoon te laden. Preview is mogelijk door $top=100
bij de OData options op te geven in previewvenster.