Menggunakan Ekspresi Properti dalam Paket

Berlaku untuk:SQL Server SSIS Integration Runtime di Azure Data Factory

Ekspresi properti adalah ekspresi yang ditetapkan ke properti untuk mengaktifkan pembaruan dinamis properti pada waktu proses. Misalnya, ekspresi properti dapat memperbarui baris Kepada yang digunakan tugas Kirim Email dengan menyisipkan alamat email yang disimpan dalam variabel.

Ekspresi dapat ditambahkan ke paket, tugas, Foreach Loop, For Loop, Urutan, enumerator Foreach, penanganan aktivitas, manajer koneksi tingkat paket atau proyek, atau penyedia log. Properti apa pun dari objek yang dibaca/ditulis ini dapat mengimplementasikan ekspresi properti. Integration Services juga mendukung penggunaan ekspresi properti di beberapa properti kustom komponen aliran data. Variabel dan batasan prioritas tidak mendukung ekspresi properti, tetapi mencakup properti khusus tempat Anda dapat menggunakan ekspresi.

Ekspresi properti dapat diperbarui dengan cara yang berbeda:

  • Variabel yang ditentukan pengguna dapat disertakan dalam konfigurasi paket dan kemudian diperbarui saat paket disebarkan. Pada waktu proses, ekspresi properti dievaluasi menggunakan nilai variabel yang diperbarui.

  • Variabel sistem yang disertakan dalam ekspresi diperbarui pada waktu proses, yang mengubah hasil evaluasi properti.

  • Fungsi tanggal dan waktu dievaluasi pada waktu proses dan memberikan nilai yang diperbarui ke ekspresi properti.

  • Variabel dalam ekspresi dapat diperbarui oleh skrip yang dijalankan oleh tugas Skrip dan komponen Skrip.

Ekspresi dibuat menggunakan bahasa ekspresi Microsoft Integration Services. Ekspresi dapat menggunakan variabel sistem atau yang ditentukan pengguna, bersama dengan operator, fungsi, dan jenis cast yang disediakan bahasa ekspresi.

Catatan

Nama variabel yang ditentukan pengguna dan sistem peka huruf besar/kecil.

Untuk informasi selengkapnya, lihat Ekspresi Integration Services (SSIS).

Penggunaan ekspresi properti yang penting adalah menyesuaikan konfigurasi untuk setiap instans paket yang disebarkan. Ini memungkinkan untuk memperbarui properti paket secara dinamis untuk lingkungan yang berbeda. Misalnya, Anda dapat membuat ekspresi properti yang menetapkan variabel ke string koneksi manajer koneksi, lalu memperbarui variabel saat paket disebarkan, memastikan bahwa string koneksi sudah benar pada waktu proses. Konfigurasi paket dimuat sebelum ekspresi properti dievaluasi.

Properti hanya dapat menggunakan satu ekspresi properti dan ekspresi properti hanya dapat berlaku untuk satu properti. Namun, Anda dapat membangun beberapa ekspresi properti yang identik dan menetapkannya ke properti yang berbeda.

Beberapa properti diatur dengan menggunakan nilai dari enumerator. Saat Mereferensikan anggota enumerator dalam ekspresi properti, Anda harus menggunakan nilai numerik yang setara dengan nama ramah anggota enumerator. Misalnya, jika ekspresi properti mengatur properti LoggingMode , yang menggunakan nilai dari enumerasi DTSLoggingMode , ekspresi properti harus menggunakan 0, 1, atau 2 alih-alih nama ramah Diaktifkan, Dinonaktifkan, atau UseParentSetting. Untuk informasi selengkapnya, lihat Enumerasi Konstanta dalam Ekspresi Properti.

Antarmuka Pengguna Ekspresi Properti

Integration Services menyediakan sekumpulan alat untuk membangun dan mengelola ekspresi properti.

  • Halaman Ekspresi , ditemukan di editor kustom untuk tugas, kontainer For Loop, dan kontainer Foreach. Halaman Ekspresi memungkinkan Anda mengedit ekspresi dan menampilkan daftar ekspresi properti yang digunakan tugas, Foreach Loop, atau For Loop.

  • Jendela Properti , untuk mengedit ekspresi dan menampilkan daftar ekspresi properti yang digunakan paket atau objek paket.

  • Kotak dialog Editor Ekspresi Properti, untuk membuat, memperbarui, dan menghapus ekspresi properti.

  • Kotak dialog Penyusun Ekspresi, untuk membangun ekspresi menggunakan alat grafis. Kotak dialog Penyusun Ekspresi dapat mengevaluasi ekspresi untuk tinjauan Anda tanpa menetapkan hasil evaluasi ke properti .

Diagram berikut menunjukkan antarmuka pengguna yang Anda gunakan untuk menambahkan, mengubah, dan menghapus ekspresi properti.

The user interface for property expressions

Di jendela Properti dan halaman Ekspresi , klik tombol telusuri (...) di tingkat kumpulan Ekspresi untuk membuka kotak dialog Editor Ekspresi Properti. Editor Ekspresi Properti memungkinkan Anda memetakan properti ke ekspresi dan mengetik ekspresi properti. Jika Anda ingin menggunakan alat ekspresi grafis untuk membuat lalu memvalidasi ekspresi, klik tombol telusuri (...) di tingkat ekspresi untuk membuka kotak dialog Penyusun Ekspresi, lalu buat atau ubah dan validasi ekspresi secara opsional.

Anda juga dapat membuka kotak dialog Penyusun Ekspresi dari kotak dialog Editor Ekspresi Properti.

Untuk bekerja dengan ekspresi properti

Mengatur Ekspresi Properti Komponen Aliran Data

Jika Anda membuat paket di SQL Server Data Tools (SSDT), properti komponen aliran data yang mendukung ekspresi properti diekspos pada tugas Aliran Data tempat mereka berada. Untuk menambahkan, mengubah, dan menghapus ekspresi properti komponen aliran data, Anda mengklik kanan tugas Aliran Data untuk aliran data tempat komponen aliran data berada dan klik Properti. Jendela Properti mencantumkan properti komponen aliran data yang dapat Anda gunakan ekspresi propertinya. Misalnya, untuk membuat atau memodifikasi ekspresi properti untuk properti SamplingValue dari transformasi Pengambilan Sampel Baris dalam aliran data bernama SampleCustomer, klik kanan tugas Aliran Data untuk aliran data tempat transformasi Pengambilan Sampel Baris berada dan klik Properti. Properti SamplingValue tercantum di jendela Properti, dan memiliki format [SampleCustomer]. [SamplingValue].

Di jendela Properti, Anda menambahkan, mengubah, dan menghapus ekspresi properti untuk komponen aliran data dengan cara yang sama seperti ekspresi properti untuk jenis objek Layanan Integrasi lainnya. Jendela Properti juga menyediakan akses ke berbagai kotak dialog dan penyusun yang Anda gunakan untuk menambahkan, mengubah, atau menghapus ekspresi properti untuk komponen aliran data. Untuk informasi selengkapnya tentang properti komponen aliran data yang dapat diperbarui oleh ekspresi properti, lihat Properti Kustom Transformasi.

Memuat Ekspresi Properti

Anda tidak dapat menentukan atau mengontrol kapan ekspresi properti dimuat. Ekspresi properti dievaluasi dan dimuat saat paket dan objek paket divalidasi. Validasi terjadi saat Anda menyimpan paket, membuka paket di SSIS Designer, dan menjalankan paket.

Oleh karena itu, Anda tidak akan melihat nilai yang diperbarui dari properti objek paket yang menggunakan ekspresi properti di SSIS Designer hingga Anda menyimpan paket, menjalankan paket, atau membuka kembali paket setelah menambahkan ekspresi properti.

Ekspresi properti yang terkait dengan berbagai jenis manajer koneksi objek, penyedia log, dan enumerator-juga dimuat ketika metode khusus untuk jenis objek tersebut dipanggil. Misalnya, properti manajer koneksi dimuat sebelum Integration Services membuat instans koneksi.

Ekspresi properti dimuat setelah konfigurasi paket dimuat. Misalnya, variabel diperbarui terlebih dahulu oleh konfigurasinya, lalu ekspresi properti yang menggunakan variabel dievaluasi dan dimuat. Ini berarti bahwa ekspresi properti selalu menggunakan nilai variabel yang diatur oleh konfigurasi.

Catatan

Anda tidak dapat menggunakan opsi Set utilitas dtexec untuk mengisi ekspresi properti.

Tabel berikut ini meringkas saat ekspresi properti Integration Services dievaluasi dan dimuat.

Tipe objek Muat dan evaluasi
Paket, perulangan Foreach, For Loop, Urutan, tugas, dan komponen aliran data Setelah memuat konfigurasi

Sebelum validasi

Sebelum eksekusi
manajer Koneksi ion Setelah memuat konfigurasi

Sebelum validasi

Sebelum eksekusi

Sebelum membuat instans koneksi
Penyedia log Setelah memuat konfigurasi

Sebelum validasi

Sebelum eksekusi

Sebelum membuka log
Enumerator Foreach Setelah memuat konfigurasi

Sebelum validasi

Sebelum eksekusi

Sebelum setiap enumerasi perulangan

Menggunakan Ekspresi Properti di Perulangan Foreach

Sering kali berguna untuk menerapkan ekspresi properti untuk mengatur nilai properti Koneksi ionString dari manajer koneksi yang digunakan di dalam kontainer Foreach Loop. Setelah enumerator memetakan nilainya saat ini ke variabel pada setiap iterasi perulangan, ekspresi properti dapat menggunakan nilai variabel ini untuk memperbarui nilai properti Koneksi ionString secara dinamis .

Jika Anda ingin menggunakan ekspresi properti dengan properti Koneksi ionString file, Beberapa File, File Datar, dan manajer koneksi Beberapa File Datar yang digunakan Foreach Loop, ada beberapa hal yang harus Anda pertimbangkan. Paket dapat dikonfigurasi untuk menjalankan beberapa executable secara bersamaan dengan mengatur properti MaxConcurrentExecutables baik ke nilai yang lebih besar dari 1 atau ke nilai -1. Nilai -1 memungkinkan jumlah maksimum executable yang berjalan bersamaan dengan jumlah prosesor ditambah dua. Untuk menghindari konsekuensi negatif dari eksekusi paralel yang dapat dieksekusi, nilai MaxConcurrentExecutables harus diatur ke 1. Jika MaxConcurrentExecutables tidak diatur ke 1, maka nilai properti Koneksi ionString tidak dapat dijamin dan hasilnya tidak dapat diprediksi.

Misalnya, pertimbangkan Perulangan Foreach yang menghitung file dalam folder, mengambil nama file, lalu menggunakan tugas Jalankan SQL untuk menyisipkan setiap nama file ke dalam tabel. Jika MaxConcurrentExecutables tidak diatur ke 1, maka konflik tulis dapat terjadi jika dua instans tugas Execute SQL mencoba menulis ke tabel secara bersamaan.

Contoh Ekspresi Properti

Contoh ekspresi berikut menunjukkan cara menggunakan variabel sistem, operator, fungsi, dan literal string dalam ekspresi properti.

Ekspresi Properti untuk Properti LoggingMode dari Paket

Ekspresi properti berikut dapat digunakan untuk mengatur properti LoggingMode dari paket. Ekspresi menggunakan fungsi DAY dan GETDATE untuk mendapatkan bilangan bulat yang mewakili tanggal tanggal tanggal. Jika hari adalah tanggal 1 atau 15, pengelogan diaktifkan; jika tidak, pengelogan dinonaktifkan. Nilai 1 adalah bilangan bulat yang setara dengan anggota enumerator LoggingMode Diaktifkan, dan nilai 2 adalah bilangan bulat yang setara dengan anggota Dinonaktifkan. Anda harus menggunakan nilai numerik alih-alih nama anggota enumerator dalam ekspresi.

DAY((DT_DBTIMESTAMP)GETDATE())==1||DAY((DT_DBTIMESTAMP)GETDATE())==15?1:2

Ekspresi Properti untuk Subjek Pesan Email

Ekspresi properti berikut ini dapat digunakan untuk mengatur properti Subjek tugas Kirim Email dan menyediakan subjek email yang berguna. Ekspresi menggunakan kombinasi literal string, variabel sistem, operator perangkaian (+) dan transmisi, dan fungsi DATEDIFF dan GETDATE. Variabel sistem adalah PackageName variabel dan StartTime .

"PExpression-->Package: (" + @[System::PackageName] + ") Started:"+ (DT_WSTR, 30) @[System::StartTime] + " Duration:" + (DT_WSTR,10) (DATEDIFF( "ss", @[System::StartTime] , GETDATE() )) + " seconds"

Jika nama paket adalah EmailRowCountPP, dijalankan pada 3/4/2005, dan durasi eksekusi adalah 9 detik, ekspresi mengevaluasi ke string berikut.

PExpression-->Package: (EmailRowCountPP) Started:3/4/2005 11:06:18 AM Duration:9 seconds.

Ekspresi Properti untuk Pesan Pesan Email

Ekspresi properti berikut ini dapat digunakan untuk mengatur properti MessageSource dari tugas Kirim Email. Ekspresi menggunakan kombinasi literal string, variabel yang ditentukan pengguna, dan operator perangkaian (+). Variabel yang ditentukan pengguna diberi nama nasdaqrawrows, , nyserawrowsdan amexrawrows. String "\n" menunjukkan pengembalian gerbong.

"Rows Processed: " + "\n" +" NASDAQ: " + (dt_wstr,9)@[nasdaqrawrows] + "\n" + " NYSE: " + (dt_wstr,9)@[nyserawrows] + "\n" + " Amex: " + (dt_wstr,9)@[amexrawrows]

Jika nasdaqrawrows adalah 7058, nyserawrows adalah 3528, dan amexrawrows 1102, ekspresi mengevaluasi ke string berikut.

Baris Diproses:

NASDAQ: 7058

NYSE: 3528

AMEX: 1102

Ekspresi Properti untuk Properti yang Dapat Dieksekusi dari Tugas Proses Eksekusi

Ekspresi properti berikut dapat digunakan untuk mengatur properti Yang Dapat Dieksekusi dari tugas Jalankan Proses. Ekspresi menggunakan kombinasi literal string, operator, dan fungsi. Ekspresi menggunakan fungsi DATEPART dan GETDATE dan operator kondisional.

DATEPART("weekday", GETDATE()) ==2?"notepad.exe":"mspaint.exe"

Jika ini adalah hari kedua dalam seminggu, tugas Jalankan Proses berjalan notepad.exe, jika tidak, tugas berjalan mspaint.exe.

Ekspresi Properti untuk Properti Koneksi ionString dari File Datar Pengelola Sambungan

Ekspresi properti berikut dapat digunakan untuk mengatur properti Koneksi ionString dari manajer koneksi File Datar. Ekspresi menggunakan satu variabel yang ditentukan pengguna, myfilenamefull, yang berisi jalur ke file teks.

@[User::myfilenamefull]

Catatan

Ekspresi properti untuk manajer koneksi hanya dapat diakses dengan menggunakan jendela Properti. Untuk melihat properti untuk pengelola koneksi, Anda harus memilih manajer koneksi di area Pengelola Sambungan Perancang SSIS saat jendela Properti terbuka, atau klik kanan pengelola koneksi dan pilih Properti.

Ekspresi Properti untuk Properti ConfigString dari Penyedia Log File Teks

Ekspresi properti berikut dapat digunakan untuk mengatur properti ConfigString dari penyedia log File Teks. Ekspresi menggunakan variabel yang ditentukan pengguna tunggal, varConfigString, yang berisi nama manajer koneksi File yang akan digunakan. Manajer koneksi File menentukan jalur file teks tempat entri log ditulis.

@[User::varConfigString]

Catatan

Ekspresi properti untuk penyedia log hanya dapat diakses dengan menggunakan jendela Properti. Untuk melihat properti penyedia log, Anda harus memilih penyedia log pada tab Penjelajah Paket dari Perancang SSIS saat jendela Properti terbuka, atau klik kanan penyedia log di Penjelajah Paket dan klik Properti.

Sumber Daya Eksternal

Lihat Juga

Gunakan Variabel dalam Paket