SqlTransformCommandText

Z Solvertech
Skočit na navigaci Skočit na vyhledávání
Jiné jazyky:

<SqlTransformCommandText></SqlTransformCommandText> służy do pisania zapytań SQL, które są wykonywane podczas importu danych. W przypadku użytkowania bardziej niż wskazane jest posiadanie zainstalowanego SQL Management Studio lub podobnego oprogramowania w celu debugowania kwerendy. Zasadniczo działa to w ten sposób, że pobiera dane z wejścia, ładuje je do beforeTashaIOSqlEditTable w bazie danych Tashi, wykonuje kwerendę i zapisuje ją do afterTashaIOSqlEditTable, gdzie następnie przechodzi przez scenarioimporter.

SqlTransformCommandText uruchamia się po połączeniu z bazą danych dystrybucji, GlobalCharReplace, GlobalReplace i ColumnsRename, ale przed ColumnsHeader, ColumnsReplace itp.

Użycie

Powiedzmy, że plik importu (na przykład .xlsx) ma następującą strukturę:

Zamówienie NazwaKlienta Ulica KodPocztowy Miasto Ziemia Telefon WagaKG Dobra
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

Jeśli chcemy wykonać SQL querry podczas importu, musimy zacząć od:

<SqlTransformCommandText><![CDATA[

 SELECT *
 INTO [afterTashaIOSqlEditTable] --tabela z danymi wyjściowymi
 FROM [beforeTashaIOSqlEditTable] --tabela z danymi wejściowymi]]>

</SqlTransformCommandText>

W bazie danych Tasha tworzone są dwie tabele: beforeTashaIOSqlEditTable i afterTashaIOSqlEditTable. Jeśli zrzucimy dane z beforeTashaIOSqlEditTable, możemy zobaczyć, co trafia do Tashy

nazwy kolumn są zmieniane w SQL na col0_Customer, col1_CustomerName... Przedrostek "colX_" jest usuwany przez Tashę i nie trzeba go zauważać.

Gdy znamy strukturę danych wejściowych, możliwe jest modyfikowanie zapytań (podobnie jak w przypadku odczytywania danych z bazy SQL.)

<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 obsługuje zwykłe polecenia SQL, ale nie może na przykład odczytywać danych do tabel tymczasowych.