TAS:Pokročilé/Pluginy/Input, Output/Import/ScenarioImporter/SqlTransformCommandText: Porovnání verzí
| imported>Unknown user | značka: ruční vrácení zpět | ||
| (Není zobrazeno 10 mezilehlých verzí od stejného uživatele.) | |||
| Řádek 1: | Řádek 1: | ||
| <languages /> <translate> | |||
| <!--T:1--> | |||
| <SqlTransformCommandText></SqlTransformCommandText> slouží k zapsání SQL querry, která se provede v průběhu importu dat. Pro použití je více než vhodné mít nainstalované SQL Management Studio nebo obdobný software, aby bylo možno querry odladit. V podstatě funguje tak, že vezme data ze vstupu, načte je do tabulky beforeTashaIOSqlEditTable v databázi Tashi, provede querry a zapíše je do tabulky afterTashaIOSqlEditTable, odkud pak pokračují skrz scenarioimporter. | <SqlTransformCommandText></SqlTransformCommandText> slouží k zapsání SQL querry, která se provede v průběhu importu dat. Pro použití je více než vhodné mít nainstalované SQL Management Studio nebo obdobný software, aby bylo možno querry odladit. V podstatě funguje tak, že vezme data ze vstupu, načte je do tabulky beforeTashaIOSqlEditTable v databázi Tashi, provede querry a zapíše je do tabulky afterTashaIOSqlEditTable, odkud pak pokračují skrz scenarioimporter. | ||
| <!--T:2--> | |||
| SqlTransformCommandText probíhá až po napojení na distribuční databázi, GlobalCharReplace, GlobalReplace a ColumnsRename, ale před ColumnsHeader, ColumnsReplace atd. | SqlTransformCommandText probíhá až po napojení na distribuční databázi, GlobalCharReplace, GlobalReplace a ColumnsRename, ale před ColumnsHeader, ColumnsReplace atd. | ||
| == Použití == | == Použití == <!--T:3--> | ||
| <!--T:4--> | |||
| Řekněme, že importní soubor (třeba .xlsx) má následující strukturu: | Řekněme, že importní soubor (třeba .xlsx) má následující strukturu: | ||
| <!--T:5--> | |||
| {| class="wikitable" data-layout="default" local-id="7857960f-0033-41a5-96a1-cf7212dc5dcb" | {| class="wikitable" data-layout="default" local-id="7857960f-0033-41a5-96a1-cf7212dc5dcb" | ||
| | Zakazka | | '''Zakazka''' | ||
| | NazevZakaznika | | '''NazevZakaznika''' | ||
| | Ulice | | '''Ulice''' | ||
| | PSC | | '''PSC''' | ||
| | Mesto | | '''Mesto''' | ||
| | Zeme | | '''Zeme''' | ||
| | Telefon | | '''Telefon''' | ||
| | HmotnostKG | | '''HmotnostKG''' | ||
| | Dobirka | | '''Dobirka''' | ||
| |- | |- | ||
| | Obj123 | | Obj123 | ||
| Řádek 39: | Řádek 45: | ||
| |} | |} | ||
| <!--T:6--> | |||
| Pokud při importu chceme provést SQL querry, je nutné začít následujícím: | Pokud při importu chceme provést SQL querry, je nutné začít následujícím: | ||
| <!--T:7--> | |||
| <SqlTransformCommandText><![CDATA[ | |||
|   SELECT * | |||
|   INTO [afterTashaIOSqlEditTable] --tabulka s výstupními daty | |||
|   FROM [beforeTashaIOSqlEditTable] --tabulka se vstupními daty]]> | |||
| </SqlTransformCommandText> | |||
| <!--T:8--> | |||
| V databázi s Tashou se vytvoří dvě tabulky, beforeTashaIOSqlEditTable a afterTashaIOSqlEditTable. Pokud si vyjedeme data z tabulky beforeTashaIOSqlEditTable, uvidíme, co jde do Tashi. | V databázi s Tashou se vytvoří dvě tabulky, beforeTashaIOSqlEditTable a afterTashaIOSqlEditTable. Pokud si vyjedeme data z tabulky beforeTashaIOSqlEditTable, uvidíme, co jde do Tashi. | ||
| <!--T:9--> | |||
| <div class="panel conf-macro output-block" style="background-color: rgb(234,230,255);border-color: rgb(153,141,217);border-width: 50.0px;"> | |||
| <div class="panel conf-macro output-block" style="background-color: rgb(234,230,255);border-color: rgb(153,141,217);border-width:  | |||
| <!--T:10--> | |||
| <div class="panelContent" style="background-color: rgb(234,230,255);"> | <div class="panelContent" style="background-color: rgb(234,230,255);"> | ||
| <!--T:11--> | |||
| sloupce jsou v SQL přejmenované na col0_Zakazka, col1_NazevZakaznika… Předponu “colX_” si Tasha sama odstraní a v zásadě není nutné si jí všímat. | sloupce jsou v SQL přejmenované na col0_Zakazka, col1_NazevZakaznika… Předponu “colX_” si Tasha sama odstraní a v zásadě není nutné si jí všímat. | ||
| </div> | |||
| </div> | </div> | ||
| < | <!--T:12--> | ||
| Když známe strukturu vstupních dat, je možné upravovat querry (obdobně jako při načítání dat z SQL databáze. | Když známe strukturu vstupních dat, je možné upravovat querry (obdobně jako při načítání dat z SQL databáze. | ||
| <!--T:13--> | |||
| <SqlTransformCommandText> | |||
| <![CDATA[ | |||
|   SELECT | |||
|   [col0_Zakazka] AS id | |||
|   ,[col1_NazevZakaznika] AS name | |||
|   ,CONCAT([col2_Ulice],', ',[col3_PSC],' ',[col4_Mesto]) as address | |||
|   ,0 AS x | |||
|   ,0 AS y | |||
|   ,[col6_Telefon] AS mobile | |||
|   ,CASE WHEN [col7_HmotnostKG] IS NULL THEN 0 ELSE [col7_HmotnostKG] END AS demand1 | |||
|   ,5 as duration | |||
|   ,'0600' as start1 | |||
|   ,'1800' as end1 | |||
|   ,2 as precedence | |||
|   ,'delivery' as stoptype | |||
|   ,[col5_Zeme] | |||
|   ,[col8_Dobirka] | |||
|   ,'' specialcodes | |||
|   INTO [afterTashaIOSqlEditTable] --tabulka s výstupními daty | |||
|   FROM [beforeTashaIOSqlEditTable] --tabulka se vstupními daty | |||
| ]]> | |||
| </SqlTransformCommandText> | |||
| Ve scenarioimporteru pak je pak možné pracovat standardním způsobem: | Ve scenarioimporteru pak je pak možné pracovat standardním způsobem: | ||
| <!--T:14--> | |||
| <ColumnsCalculated> | |||
|   <string>dynamic;dobirka;dynamic;dobirka;;dynamicdobirka==?0:dynamicdobirka</string> <!-- dynamic;dobirka odpovídá sloupci [col8_Dobirka], Tasha si "col8_" ořízne --> | |||
|   <string>job;specialcodes;job;specialcodes;dynamic;dobirka;;dynamicdobirka>0?hotovost:jobspecialcodes</string> | |||
| </ColumnsCalculated> | |||
| <!--T:15--> | |||
| SqlTransformCommandText podporuje obvyklé SQL příkazy, nicméně neumí např. načítat data do dočasných tabulek. | SqlTransformCommandText podporuje obvyklé SQL příkazy, nicméně neumí např. načítat data do dočasných tabulek. | ||
| </translate> | |||
Aktuální verze z 30. 8. 2022, 14:38
<SqlTransformCommandText></SqlTransformCommandText> slouží k zapsání SQL querry, která se provede v průběhu importu dat. Pro použití je více než vhodné mít nainstalované SQL Management Studio nebo obdobný software, aby bylo možno querry odladit. V podstatě funguje tak, že vezme data ze vstupu, načte je do tabulky beforeTashaIOSqlEditTable v databázi Tashi, provede querry a zapíše je do tabulky afterTashaIOSqlEditTable, odkud pak pokračují skrz scenarioimporter.
SqlTransformCommandText probíhá až po napojení na distribuční databázi, GlobalCharReplace, GlobalReplace a ColumnsRename, ale před ColumnsHeader, ColumnsReplace atd.
Použití
Řekněme, že importní soubor (třeba .xlsx) má následující strukturu:
| Zakazka | NazevZakaznika | Ulice | PSC | Mesto | Zeme | Telefon | HmotnostKG | Dobirka | 
| Obj123 | Zakaznik1 | Veselá 52 | 75651 | Zašová | CZ | +420603123456 | 40,00 | 42100 | 
| Obj456 | Zakaznik2 | Náměstí 5/3 | 75701 | Valašské Meziříčí | CZ | +420603987654 | 29 | 10352 | 
Pokud při importu chceme provést SQL querry, je nutné začít následujícím:
<SqlTransformCommandText><![CDATA[
SELECT * INTO [afterTashaIOSqlEditTable] --tabulka s výstupními daty FROM [beforeTashaIOSqlEditTable] --tabulka se vstupními daty]]>
</SqlTransformCommandText>
V databázi s Tashou se vytvoří dvě tabulky, beforeTashaIOSqlEditTable a afterTashaIOSqlEditTable. Pokud si vyjedeme data z tabulky beforeTashaIOSqlEditTable, uvidíme, co jde do Tashi.
sloupce jsou v SQL přejmenované na col0_Zakazka, col1_NazevZakaznika… Předponu “colX_” si Tasha sama odstraní a v zásadě není nutné si jí všímat.
Když známe strukturu vstupních dat, je možné upravovat querry (obdobně jako při načítání dat z SQL databáze.
<SqlTransformCommandText> <![CDATA[
SELECT [col0_Zakazka] AS id ,[col1_NazevZakaznika] AS name ,CONCAT([col2_Ulice],', ',[col3_PSC],' ',[col4_Mesto]) as address ,0 AS x ,0 AS y ,[col6_Telefon] AS mobile ,CASE WHEN [col7_HmotnostKG] IS NULL THEN 0 ELSE [col7_HmotnostKG] END AS demand1 ,5 as duration ,'0600' as start1 ,'1800' as end1 ,2 as precedence ,'delivery' as stoptype ,[col5_Zeme] ,[col8_Dobirka] , specialcodes INTO [afterTashaIOSqlEditTable] --tabulka s výstupními daty FROM [beforeTashaIOSqlEditTable] --tabulka se vstupními daty
]]> </SqlTransformCommandText> Ve scenarioimporteru pak je pak možné pracovat standardním způsobem:
<ColumnsCalculated>
<string>dynamic;dobirka;dynamic;dobirka;;dynamicdobirka==?0:dynamicdobirka</string> <string>job;specialcodes;job;specialcodes;dynamic;dobirka;;dynamicdobirka>0?hotovost:jobspecialcodes</string>
</ColumnsCalculated>
SqlTransformCommandText podporuje obvyklé SQL příkazy, nicméně neumí např. načítat data do dočasných tabulek.