Onjuist (ruwe) data

Een voorbeeld waarbij de omzet van een klant niet aansluit met hetgeen er in Odoo staat.

Na connecten in power BI, volgende stappen gedaan

let
    Source = OData.Feed("https://bridge-online.cloud/xxxxxxxx/odata4", null, [Implementation="2.0"]),
    #"Filtered Rows4" = Table.SelectRows(Source, each ([Name] = "Odoo.account.invoice_report@odo")),
    #"Expanded Data2" = Table.ExpandTableColumn(#"Filtered Rows4", "Data", {"__last_update", "account_id", "account_id_label", "analytic_account_id", "analytic_account_id_label", "commercial_partner_id", "commercial_partner_id_label", "company_currency_id", "company_currency_id_label", "company_id", "company_id_label", "country_id", "country_id_label", "display_name", "fiscal_position_id", "fiscal_position_id_label", "id", "invoice_date", "invoice_date_due", "invoice_user_id", "invoice_user_id_label", "journal_id", "journal_id_label", "move_id", "move_id_label", "move_type", "partner_id", "partner_id_label", "payment_state", "price_average", "price_subtotal", "product_categ_id", "product_categ_id_label", "product_id", "product_id_label", "product_uom_id", "product_uom_id_label", "quantity", "state", "team_id", "team_id_label"}, {"__last_update", "account_id", "account_id_label", "analytic_account_id", "analytic_account_id_label", "commercial_partner_id", "commercial_partner_id_label", "company_currency_id", "company_currency_id_label", "company_id", "company_id_label", "country_id", "country_id_label", "display_name", "fiscal_position_id", "fiscal_position_id_label", "id", "invoice_date", "invoice_date_due", "invoice_user_id", "invoice_user_id_label", "journal_id", "journal_id_label", "move_id", "move_id_label", "move_type", "partner_id", "partner_id_label", "payment_state", "price_average", "price_subtotal", "product_categ_id", "product_categ_id_label", "product_id", "product_id_label", "product_uom_id", "product_uom_id_label", "quantity", "state", "team_id", "team_id_label"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Data2",{{"__last_update", type date}, {"invoice_date", type date}, {"price_average", type number}, {"price_subtotal", type number}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([account_id_label] = "800100 Omzet NL handelsgoederen 1" or [account_id_label] = "800200 Omzet binnen EU handelsgoederen 1" or [account_id_label] = "800300 Omzet buiten EU handelsgoederen 1")),
    #"Changed Type2" = Table.TransformColumnTypes(#"Filtered Rows",{{"id", Int64.Type}, {"move_id", Int64.Type}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Changed Type2",{{"id", type text}})
in
    #"Changed Type1"

Omzet ODOO (per vandaag)

Als ik in het rapport van 11 juni 2024 kijk, zie ik de factuur van 08/01/24

Na verversen data verdwijnt de factuur van 08/01/2024.

Een idee hoe dat kan en hoe dit op te lossen? Lijkt alsof de data niet 1-op-1 wordt doorgegeven.

Er is geen reden om aan te nemen dat er een individuele rij kan verdwijnen tussen de OData4-bridge en Odoo API server.

Het uitgangspunt van alle verwerking is dat de data 1-op-1 doorgegeven wordt. Enkel voor Exact Online zijn er een paar data-aanpassingen omdat essentiele velden een 0-GUID bevatten als ze leeg horen te zijn door langdurige bugs in Exact Online.

Er is een mogelijkheid van bugs; op Exact Online *Incremental zijn een aantal keren bugs ontdekt rond de Sync-API’s zowel aan de Invantive als Exact Online-zijde. De Odoo-verwerking is echter altijd 1-op-1 doorgeven; er zit geen grote intelligentie tussen anders dan het projecteren van het OData4-verzoek. De meeste complexe operatie in deze context is het filter wat bij de optimalisatie een grote rol speelt.

Advies is om via Bridge Online Monitoring eerst het uitgevoerde SQL-statement op te vragen (en liefst hier toe te voegen). Dit SQL-statement kan dan in de UniversalSQL-editor uitgevoerd worden op Invantive Cloud.

Treedt het probleem niet op? Dan zit het tussen Power BI en de SQL-engine. Haal dan de caches leeg en probeer nogmaals via Power BI om zelfde uitgangssituatie te controleren.

Treedt het probleem wel op? Dan zit probleem tussen SQL-engine en Odoo. Installeer dan het query tool en volg de instructies op Collect Native Platform Call Data.

Verwachting is dat het een probleem is in Odoo. Op Odoo treden relatief vaak data-integriteitsproblemen op. Onze voornaamste concurrent is CData en we zien regelmatig heen-en-weer gaan van gebruikers voor problemen tussen Invantive en CData betreffende Odoo, maar waarbij gebleken is dat dan het probleem in de onderliggende Odoo-schil zit. Dat is geen garantie dat dit hier ook het geval is en niet bijvoorbeeld een bug in de Invantive software, maar is wel tot op heden altijd de praktijk geweest.

Mocht ondersteuning nodig zijn, dan kan op basis van een kort consult hierbij door een collega ondersteuning geboden worden. Een kort consult kan geboekt worden via de chatfunctie rechtsonder op elke Invantive-site. De kosten worden per gestart kwartier in rekening gebracht.

Een zijdelings advies is om de instellingen van OData te verbeteren zoals beschreven in Vermijd time-out fout bij Power BI OData download.

Dank voor de uitleg. ik heb onderstaand SQL-statement uitgevoerd:

SELECT t.*
FROM Odoo.account.invoice_report@odo t
WHERE t.commercial_partner_id = 1574;

Vervolgens de resultaten naar Excel ge-exporteerd. De fout treed dan niet op.

Vervolgens de cache gereset en de instelling van OData verbeterd, helaas zonder succes.

Is dan de uitkomst dat het een fout in Odoo is en het niet op te lossen is?

Als deze query dezelfde is als die vanuit Power BI met Invantive Bridge Online uitgevoerd is, en deze geeft in Invantive Cloud wel verwachte resultaat, dan zal het probleem niet zitten in (van buiten naar binnen):

  • Invantive UniversalSQL,
  • SQL-driver voor Odoo,
  • Odoo API server.

Het probleem zal dan zitten in een van de volgende elementen (van binnen naar buiten):

  • Invantive Bridge Online,
  • PowerBI,
  • rapportage.

Het eerste onderdeel Invantive Bridge Online valt onder abonnementsvoorwaarden, de andere twee respectievelijk bij Microsoft en de betrokken PowerBI-specialist.

Om de eerste te bepalen, is het advies om de URL op te zoeken die bij deze query hoort in Invantive Bridge Online Monitoring.

Plak deze URL in een browservenster, en voer Invantive Cloud-gebruikersnaam en wachtwoord in.

De data komt dan terug in een redelijk menselijk leesbaar formaat (op basis van JSON). Controleer de cijfers. Indien het resultaat afwijkt met de Invantive UniversalSQL-editor voeg dan als reactie toe:

  • geillustreerd resultaat via de SQL-editor,
  • geillustreerd resultaat via de URL in de browser,
  • uitleg waarom eerste wel goed is en tweede niet.

Indien het resultaat niet afwijkt, verschuif dan de analyse naar de andere twee schillen met ondersteuning van respectievelijk Microsoft en/of de Power BI-specialist.

Dank. In de URl

https://bridge-online.cloud/acme-odoo/odata4/Odoo.account.invoice_report@odo?$filter=commercial_partner_id%20eq%201574

komt de data ook goed over.

Dank voor de terugkoppeling en succes met de analyse rondom Microsoft en/of Power BI-rapport!

Wat wel gek is, is dat in Bridge Online goed gaat en na toevoegen connector in PowerBI niet meer.

Hoe weten we dan zeker dat het niet in de connector zit?

Op basis van de stappen vooraf is er geen reden om aan te nemen dat het probleem in Bridge Online zit.

Mocht u hulp nodig hebben bij het verder analyseren, dan kunt u overwegen bij een van onze partners of Invantive zelf op basis van een kort consult ondersteuning in te huren.