> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Jak připojit Power BI k TWICE Commerce

> Načtěte knihy výnosů a plateb do Power BI s klíčem API v hlavičce, postavte nad nimi vlastní model a obnovujte ho podle plánu ve službě Power BI.

![Karta Export u reportu s koncovými body REST API](https://mintcdn.com/twicecommerce/Ab7tx7ih94KQsi0k/images/reports-export.webp?fit=max\&auto=format\&n=Ab7tx7ih94KQsi0k\&q=85\&s=5b8746adc8bb592f174ae9f8130924e2)

Reporty > Přehled prodejů > Export

> **[Otevřít v TWICE Admin](https://admin.twicecommerce.com/reports)**
>
> reports

Načtěte knihy výnosů a plateb do Power BI jako dva dotazy, propojte je a nad řádky postavte vlastní stránky reportu. Power BI potom data z TWICE Commerce obnovuje podle plánu, který nastavíte.

## Předpoklady

> [!WARNING]
>
> **Vyžadovaný přístup:** klíč API pro TWICE Commerce s oblastí **Reporty** na úrovni **Čtení** a bez dalších oblastí. Klíč zůstává v souboru Power BI, takže soubor sdílejte jen s lidmi, kterým byste dali i samotný klíč. Viz [Klíče API](https://www.twicecommerce.com/docs/cs/concepts/integrations/api-keys.md).

> [!NOTE]
>
> **Než začnete:**
>
> * **Power BI Desktop** a dále pracovní prostor ve službě Power BI, pokud chcete plánované obnovení.
> * **Koncové body knih a formát souboru** z návodu [Přetáhněte svá data do nástroje BI](https://www.twicecommerce.com/docs/cs/guides/reports/pull-report-data.md). Tento návod je používá, aniž by je opakoval.
> * **Váš kód měny** a první datum, od kterého chcete historii.
>
> Názvy v Power BI jsou v tomto návodu uvedeny tak, jak se zobrazují v anglickém rozhraní.

## Postup

**1. Uložte klíč do parametru**

Otevřete Power BI Desktop a zvolte **Transform data**, čímž otevřete editor Power Query. Zvolte **Manage Parameters → New Parameter**, pojmenujte parametr `TwiceApiKey`, nastavte **Type** na **Text** a vložte klíč do pole **Current Value**.

**2. Přidejte dotaz na knihu výnosů**

Zvolte **New Source → Blank Query**, otevřete **Advanced Editor** a jeho obsah nahraďte dotazem níže. Hodnoty `currency` a `FromDate` změňte na své. Dotaz pojmenujte `Revenue`.

Služba Power BI umí dotaz obnovit právě díky pevné základní adrese s volbami `RelativePath` a `Query`. Adresa URL sestavená jako jediný řetězec se obnoví v Desktopu a ve službě selže.

**3. Připojte se anonymně**

Až se Power Query zeptá na způsob připojení, zvolte **Edit Credentials**, vyberte **Anonymous** a zvolte **Connect**. Klíč putuje v hlavičce, takže žádné jiné přihlášení neplatí.

**4. Přidejte dotaz na knihu plateb**

Duplikujte dotaz `Revenue`, kopii pojmenujte `Payments` a hodnotu `RelativePath` změňte na `internal/reporting/payments/export`. Typované sloupce nahraďte tak, aby `Payment_Date` byl `type date` a `Amount_Total` byl `type number`.

**5. Propojte obě tabulky**

Zvolte **Close & Apply** a potom otevřete zobrazení **Model**. Přetáhněte `Payments[Revenue_Row_ID]` na `Revenue[Row_ID]` a vytvořte tak vztah mnoho k jednomu.

**6. Publikujte a nastavte ve službě přihlašovací údaje**

Publikujte report do pracovního prostoru. Ve službě otevřete u sémantického modelu **Settings**, přejděte na **Data source credentials**, zvolte **Edit credentials** a vyberte **Anonymous** s úrovní soukromí **Organizational**. Pokud to dialog nabídne, zaškrtněte **Skip test connection**.

**7. Naplánujte obnovení**

Ve stejném nastavení zapněte **Scheduled refresh** a přidejte požadované časy. Zdroj je na veřejném internetu, takže žádnou bránu nepotřebujete.

Pro knihu výnosů použijte tento dotaz:

```powerquery Revenue theme={null}
let
    FromDate = "2025-01-01",
    ToDate = Date.ToText(Date.From(DateTime.LocalNow()), "yyyy-MM-dd"),
    Source = Web.Contents(
        "https://server.twicecommerce.com",
        [
            RelativePath = "internal/reporting/revenue/export",
            Query = [from = FromDate, to = ToDate, currency = "EUR"],
            Headers = [#"X-API-KEY" = TwiceApiKey]
        ]
    ),
    Csv = Csv.Document(Source, [Delimiter = ";", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]),
    Promoted = Table.PromoteHeaders(Csv, [PromoteAllScalars = true]),
    // A truncated export ends in a notice row with no Row_ID. Drop it.
    DataRows = Table.SelectRows(Promoted, each [Row_ID] <> null and [Row_ID] <> ""),
    Typed = Table.TransformColumnTypes(
        DataRows,
        {
            {"Create_Date", type date}, {"Start_Date", type date}, {"End_Date", type date},
            {"Quantity", type number}, {"Amount_Excl_Tax", type number},
            {"Amount_Total", type number}, {"Amount_Paid", type number},
            {"Amount_Refunded", type number}, {"Amount_Outstanding", type number}
        },
        "en-US"
    )
in
    Typed
```

Kultura `"en-US"` přečte hodnotu `202.42` jako číslo i na počítači, který má v místním nastavení desetinnou čárku, například v češtině. Sloupce s daní zůstávají netypované, protože jejich počet sleduje daňové sazby v období.

## Načtěte více než 100 000 řádků

Rozdělte historii na jedno volání za rok a výsledky spojte. Držte se nejvýš pěti let na jedno obnovení, což je limit volání exportu popsaný v návodu [Přetáhněte svá data do nástroje BI](https://www.twicecommerce.com/docs/cs/guides/reports/pull-report-data.md), v jeho části o dodržení limitů volání.

```powerquery Revenue (one call per year) theme={null}
let
    Years = {2024, 2025, 2026},
    GetYear = (year as number) =>
        let
            Source = Web.Contents(
                "https://server.twicecommerce.com",
                [
                    RelativePath = "internal/reporting/revenue/export",
                    Query = [from = Text.From(year) & "-01-01", to = Text.From(year) & "-12-31", currency = "EUR"],
                    Headers = [#"X-API-KEY" = TwiceApiKey]
                ]
            ),
            Csv = Csv.Document(Source, [Delimiter = ";", Encoding = 65001, QuoteStyle = QuoteStyle.Csv])
        in
            Table.PromoteHeaders(Csv, [PromoteAllScalars = true]),
    Combined = Table.Combine(List.Transform(Years, GetYear)),
    DataRows = Table.SelectRows(Combined, each [Row_ID] <> null and [Row_ID] <> "")
in
    DataRows
```

Na konec tohoto dotazu přidejte krok `Typed` z prvního dotazu.

## Jak poznám, že to fungovalo?

* Tabulka `Revenue` zobrazuje jeden řádek na řádek objednávky a `Amount_Total` je číselný sloupec.
* Karta, která sčítá `Amount_Total` s filtrem `Started_In_Period = "Yes"`, odpovídá reportu **Report výnosů** v administraci za stejné období a ve stejné měně.
* Sekce **Refresh history** u sémantického modelu ve službě ukazuje dokončené plánované obnovení.

## Řešení potíží a časté chyby

> **Služba hlásí, že datová sada obsahuje dynamický zdroj dat**
>
> Dotaz sestavuje svou adresu URL jako jediný řetězec. Přepište ho s pevnou základní adresou a volbami `RelativePath` a `Query` podle dotazu výše a publikujte znovu.

> **Částky se načtou jako text nebo jako 20242 místo 202.42**
>
> Sloupec byl typován podle místního nastavení vašeho počítače. Ponechte ve funkci `Table.TransformColumnTypes` argument kultury `"en-US"` a smažte každý krok **Changed Type**, který Power Query přidalo samo.

> **Obnovení selže s chybou "The column 'Tax\_Rate\_2' of the table wasn't found"**
>
> Některý krok odkazuje na sloupec s daní, který nové období nemá. Odeberte sloupce s daní ze všech kroků typování a přejmenování a pokud je potřebujete, typujte je ve vrstvě reportu.

> **Obnovení selže s chybou 429 Too Many Requests**
>
> Obnovení provedlo více než pět volání exportu za minutu. Snižte počet ročních volání, nebo naplánujte modely `Revenue` a `Payments` odděleně.

> **Obnovení selže s chybou 401, i když předtím fungovalo**
>
> Někdo klíč API smazal nebo vyměnil. Vložte nový klíč do parametru `TwiceApiKey`, a to v Desktopu nebo ve službě pod volbou **Parameters** u sémantického modelu.

Microsoft popisuje konektor Web a plánované obnovení v článcích [Power Query Web connector](https://learn.microsoft.com/en-us/power-query/connectors/web/web) a [Configure scheduled refresh](https://learn.microsoft.com/en-us/power-bi/connect-data/refresh-scheduled-refresh).

## Související články

> **[Přetáhněte svá data do nástroje BI](https://www.twicecommerce.com/docs/cs/guides/reports/pull-report-data.md)**
>
> Koncové body, formát souboru a limity volání.

> **[Připojte Excel](https://www.twicecommerce.com/docs/cs/guides/reports/connect-excel.md)**
>
> Stejné dotazy v Power Query v Excelu.

> **[Finanční reporty](https://www.twicecommerce.com/docs/cs/concepts/reports/finance-reports.md)**
>
> Každý sloupec knihy a jak se každé číslo odvozuje.

> **[Klíče API](https://www.twicecommerce.com/docs/cs/concepts/integrations/api-keys.md)**
>
> Vytváření a mazání klíčů.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.