A DTS lépések és elsőbbségi korlátozások sorrendet képeznek a munkaelemek között egy DTS csomagban. Egy DTS csomag munkafolyamatot tervezhetünk grafikusan a tervező segítségével, vagy programozottan.
DTS csomag lépések
A lépések határozzák meg a feladatok futtatási sorrendjét, és ezáltal egy futtatható munkaegységet is képeznek a DTS objektummodellben.
A DTS tervezőben nem módosíthatjuk a lépéseket közvetlenül, hanem a tervezőfelületet használhatjuk arra, hogy sorrendi korlátokkal vezéreljük a feladatok futását. Amikor egy feladatot elhelyezünk a tervezőfelületen, akkor egy lépés automatikusan hozzárendelődik a csomag lépés referencia feladatához.
Amikor programozottan hozunk létre csomagot, a lépések közötti kapcsolatot sokkal precízebben szabályozhatjuk. Többféle lépést hozhatunk létre különféle csomagműveletekhez és hozzárendelhetjük ezek futását egy feladathoz. Például képzeljük azt, hogy Visual Basic-ben írunk egy csomagot, és megadunk néhány részt benne, ahol hiba történhet. Összekapcsolva a lépéseket ezekkel a hibákkal, különféle hibatípusokat hozhatunk létre ugyanazon a feladaton pl.: levélküldésen belül. Így a levélküldési feladat értesítheti az adatbázis rendszergazdát, hogy a csomag futása leállt hiba miatt.
A DTS tervező segítségével futtathatjuk egy csomag különálló feladatait. Ez a lehetőség hasznos lehet tesztelésnél, hibakeresésnél, hiszen nem kell az egész csomagot futtatni.
Elsőbbségi korlátok
Elsőbbségi korlátok egymáshoz kapcsolják a feladatokat egy csomagban. Háromféle korlát létezik, amely a DTS tervezőből, vagy programozottan elérhető:
- Feltétel nélkül ("Unconditional"). Ha azt akarjuk, hogy a második feladat várjon amíg az első végzett, függetlenül az első feladat kimenetétől, kapcsoljuk ezzel a korláttal össze őket.
- Sikeres futás esetén ("On Success"). Ha azt akarjuk, hogy a második feladat várja meg az első sikeres lefutását, akkor kapcsoljuk össze ilyen módon őket.
- Hiba esetén ("On Failure"). Ha azt szeretnénk, hogy a második feladat akkor induljon, ha az első hibásan futott le, akkor használjuk ezt a megkötést.
Többszörös elsőbbségi korlátok használata
Egy feladatra több korlátot is képezhetünk. Például egy C jelű feladat kaphat egy "On Success" korlátot az A jelű feladattól és egy "On Failure" korlátot a B jelűtől. Ebben az esetben a DTS egy "AND" logikai kapcsolatot képez. Ezek szerint az A feladatnak rendben, a B feladatnak pedig hibásan kell lefutnia ahhoz, hogy a C feladat indulni tudjon.
ActiveX script használata a DTS munkafolyamatban
Mivel az ActiveX script-ek lefutnak a munkafolyamat előtt, a következő feladatokra használhatjuk őket:
- Munkafolyamat újraindítására
- Egy lépés leállítására különféle feltételektől függően
- Kezdeményezhetünk kapcsolat megszakítást, vagy más műveleteket
- Ciklusokat szervezhetünk
Script-ek segítségével globális változókat is elérhetünk.
Script-ből az alábbi módon kell a visszatérési értékeket megadnunk, hogy befolyásolni tudjuk a folyamatot:
| Konstans |
Érték |
Leírás |
| DTSStepScriptResult_DontExecuteTask |
1 |
Nem indítja el a feladatot |
| DTSStepScriptResult_ExecuteTask |
0 |
Elindítja a feladatot |
| DTSStepScriptResult_RetryLater |
2 |
Újra próbálja később |
A mellékelt példa DTS állományban két transform feladatot találunk. A második feladat futását az első feladat hibás futásához kötöttük. Ha saját magunk akarunk munkafolyamatot beállítani, akkor egy elkészített transform task-ra jobb egérgombbal kattintva válasszuk a Workflow properties menüpontot, és itt beállíthatjuk a folyamat paramétereit.