TAS:Pokročilé/Pluginy/Input, Output/Import/ScenarioImporter/SqlTransformCommandText: Porovnání verzí

Z Solvertech
Skočit na navigaci Skočit na vyhledávání
(Tato verze je označená pro překlad)
Řádek 1: Řádek 1:
<languages /> <translate>
<languages /> <translate>


<!--T:1-->
&lt;SqlTransformCommandText&gt;&lt;/SqlTransformCommandText&gt; 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.
&lt;SqlTransformCommandText&gt;&lt;/SqlTransformCommandText&gt; 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'''
Řádek 41: Řá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[
<SqlTransformCommandText><![CDATA[
   SELECT *
   SELECT *
Řádek 49: Řádek 55:
</SqlTransformCommandText>
</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: 50.0px;">


<!--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>
</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>
<SqlTransformCommandText>
<![CDATA[
<![CDATA[
Řádek 85: Řádek 97:
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>
<ColumnsCalculated>
   <string>dynamic;dobirka;dynamic;dobirka;;dynamicdobirka==?0:dynamicdobirka</string> <!-- dynamic;dobirka odpovídá sloupci [col8_Dobirka], Tasha si "col8_" ořízne -->
   <string>dynamic;dobirka;dynamic;dobirka;;dynamicdobirka==?0:dynamicdobirka</string> <!-- dynamic;dobirka odpovídá sloupci [col8_Dobirka], Tasha si "col8_" ořízne -->
Řádek 90: Řádek 103:
</ColumnsCalculated>
</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>
</translate>

Verze z 17. 8. 2022, 10:00

Jiné jazyky:

<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.