Pembatasan alur kerja dan performa SharePoint 2013 di SharePoint dan Project

Pendahuluan

Artikel ini berisi informasi tentang skenario pembatasan dan batasan untuk alur kerja yang menggunakan tipe platform alur kerja SharePoint 2013 di SharePoint dan Project di Microsoft 365.

Catatan

Alur kerja SharePoint 2010 telah dihentikan sejak 1 Agustus 2020 untuk penyewa baru dan dihapus dari penyewa yang ada pada 1 November 2020.  Jika Anda menggunakan alur kerja SharePoint 2010, sebaiknya migrasikan ke Power Automate atau solusi lain yang didukung. Untuk informasi selengkapnya, lihat penghentian alur kerja SharePoint 2010.

Informasi Selengkapnya

Untuk mempelajari selengkapnya tentang pembatasan di SharePoint, buka Cara: Menghindari pembatasan atau pemblokiran di SharePoint.

Untuk mempelajari selengkapnya tentang batas pesan email untuk alur kerja SharePoint, buka kesalahan "Batas email harian telah terlampaui dan alur kerja Anda telah ditangguhkan" di SharePoint.

Aktivitas alur kerja SharePoint 2013 dapat diatur oleh dua tingkat pembatasan:

  • Pembatasan SharePoint
  • Pembatasan layanan alur kerja

Pembatasan layanan alur kerja

Pembatasan dilakukan untuk memungkinkan penggunaan sumber daya yang wajar. Ini juga melindungi lingkungan dari alur kerja berbahaya dan alur kerja yang tidak mengikuti praktik terbaik. Pembatasan layanan alur kerja tidak dikontrol oleh SharePoint. Layanan alur kerja dan SharePoint adalah dua layanan independen, dan masing-masing layanan membatasi permintaan demi kesehatan layanan secara keseluruhan. Dalam layanan alur kerja, pembatasan dilakukan pada tingkat lingkup alur kerja yang selaras dengan situs SharePoint. Pembatasan tidak diperhitungkan secara global. Sebagai gantinya, setiap layanan back-end alur kerja melacak penggunaan lingkup alur kerja secara independen. Mungkin ada satu atau beberapa alur kerja dalam lingkup alur kerja. Pembatasan alur kerja bersifat dinamis dan akan dievaluasi ulang secara berkala oleh lingkup alur kerja dan oleh back-end layanan alur kerja. 

Layanan Alur kerja juga membatasi jumlah permintaan keluar yang dapat dihasilkan oleh satu instans alur kerja. Dalam periode 24 jam, satu instans alur kerja dapat menghasilkan hingga 5.000 permintaan keluar. Setelah 5.000 permintaan keluar dibuat dalam periode 24 jam, alur kerja ditangguhkan oleh layanan Alur kerja.

Halaman Status Alur Kerja untuk alur kerja akan berisi informasi tentang alur kerja yang ditangguhkan. Dalam skenario ini, balon informasi untuk Status Internal akan menampilkan pesan berikut:

  • Instans telah melebihi kuota permintaan http keluar untuk periode waktu 1.00:00:00. Batas 5000 permintaan tercapai tepat waktu<>.

    CATATAN:<Tempat penampung waktu> mewakili waktu yang diperlukan untuk mencapai batas 5.000 permintaan untuk alur kerja Anda.

Anda dapat melanjutkan instans alur kerja yang ditangguhkan dengan mengklik Lanjutkan untuk alur kerja atau dengan menggunakan Model Objek Klien Alur Kerja SharePoint setelah 24 jam berlalu. Hal ini harus terjadi sebelum alur kerja dihentikan.

Jika alur kerja melebihi batas penggunaan CPU, halaman Status Alur Kerja untuk alur kerja akan berisi informasi tentang alur kerja yang ditangguhkan. Dalam skenario ini, balon informasi untuk Status Internal akan menampilkan pesan berikut:

  • Instans alur kerja melebihi batas penggunaan CPU throttle 00:00:01.2000000 dan tidak dapat diturunkan karena tidak dapat dipertahankan.

Instans alur kerja yang ditangguhkan akan dihentikan setelah 10 hari. Balon informasi untuk Status Internal akan menampilkan pesan berikut jika alur kerja dihentikan:

  • System.Activities.Statements.WorkflowTerminatedException: Instans telah dipindahkan dari status Ditangguhkan ke status Dihentikan karena telah kedaluwarsa.

Alur kerja yang dihentikan pada akhirnya akan dibersihkan. Setelah alur kerja yang dihentikan dibersihkan, alur kerja akan menampilkan pesan berikut:

  • Maaf, ada yang salah.
    Kami tidak dapat menemukan alur kerja tersebut. Instans yang telah selesai dibersihkan secara otomatis

Lingkup alur kerja

Cakupan alur kerja didefinisikan sebagai situs dalam kumpulan situs. Misalnya, URL berikut adalah untuk kumpulan situs akar dan dianggap sebagai lingkup alur kerja:

    https://contoso.sharepoint.com/sites/rootsite

Contoh lingkup alur kerja lain yang ada dalam kumpulan situs yang sama adalah sebagai berikut. Namun, lingkup alur kerja ini berada dalam subsitus.

    https://contoso.sharepoint.com/sites/rootsite/subsite

Apa itu permintaan?

Alur kerja SharePoint 2013 dibuat berdasarkan model add-in untuk SharePoint, dan menggunakan REST API untuk berinteraksi dengan data SharePoint. Untuk mempelajari selengkapnya, buka Mengenal layanan SharePoint 2013 REST.

Permintaan adalah panggilan jaringan dari layanan alur kerja ke titik akhir SharePoint atau Project REST API. Tidak ada perbedaan antara jenis permintaan atau respons untuk permintaan tertentu. Tindakan dan aktivitas penyusunannya tidak berkontribusi pada jumlah permintaan kecuali permintaan tersebut melibatkan REST API SharePoint 2013. Misalnya, tindakan Log ke Daftar Riwayat dapat menghasilkan lima permintaan atau lebih untuk operasi yang sehat. Selain itu, logika percobaan ulang bawaan ke dalam alur kerja jika terjadi kesalahan. Tindakan ini dapat menghasilkan permintaan tambahan.

Banyak tindakan menghasilkan permintaan, dan permintaan dapat diminimalkan dengan menggunakan praktik terbaik. Misalnya, Anda dapat menggunakan satu tindakan Perbarui Item Daftar daripada beberapa tindakan Atur Bidang dalam tindakan Item Saat Ini untuk mengurangi jumlah permintaan yang dibuat oleh lingkup alur kerja, namun mencapai hasil yang sama. 

Rekomendasi desain alur kerja

Ada banyak cara untuk menghasilkan banyak permintaan dalam alur kerja yang dapat mengakibatkan pembatasan. Beberapa contoh umum adalah sebagai berikut:

  • Satu alur kerja yang berulang secara agresif atau beberapa alur kerja yang berulang secara agresif
  • Alur kerja yang terkait dengan daftar atau pustaka saat konten dimigrasikan ke SharePoint.
  • Versi alur kerja bermasalah sebelumnya yang telah diperbaiki dan yang terus menjalankan instans alur kerja yang memiliki konfigurasi bermasalah hingga alur kerja dihentikan.

Pembatasan lingkup alur kerja yang diberlakukan oleh layanan alur kerja harus memungkinkan skenario kasus penggunaan alur kerja yang khas. Namun, seiring bertambahnya logika alur kerja, alur kerja dapat melebihi batas aman.

Skenario alur kerja khusus berikut juga akan mengakibatkan pembatasan.

Skenario 1: Alur kerja yang berulang untuk memantau perubahan

Misalnya, Anda dapat memeriksa pembaruan pada item daripada menunggu item diperbarui.

Skenario 2: Menggunakan alur kerja untuk menjalankan algoritma kompleks

Alur kerja ditujukan untuk mengelola proses manusia yang digerakkan oleh dokumen dan bukan untuk mengirimkan tugas komputasi yang signifikan.

Skenario 3: Menjalankan beberapa alur kerja yang menggunakan aktivitas Tunggu Acara di Item Daftar"

Dalam skenario ini, setiap alur kerja akan mendengarkan perubahan dalam daftar target. Jika ada banyak alur kerja yang berjalan, setiap alur kerja harus bereaksi terhadap kejadian yang dimunculkan dan mungkin memanggil kembali ke SharePoint untuk melakukan beberapa pekerjaan. 

CATATAN: Hal ini juga dapat terjadi jika ada banyak perubahan pada daftar yang alur kerjanya dikonfigurasi untuk dimulai saat item dibuat atau diubah.

Alternatif untuk skenario 1: Alur kerja yang berulang untuk memantau perubahan

Opsi 1: Gunakan add-in SharePoint dan penerima kejadian eksternal

Desain alur kerja harus dievaluasi ulang, dan pendekatan desain yang berbeda harus digunakan. Add-in SharePoint atau penerima kejadian eksternal lebih sesuai untuk tugas ini.

Opsi 2: Tambahkan tindakan jeda

Anda dapat sedikit menyempurnakan desain alur kerja dengan menambahkan penundaan (yaitu, tindakan jeda). Ini akan mengurangi lalu lintas yang dihasilkan. Namun, itu tidak mengubah kekurangan keseluruhan dari desain ini.

Opsi 3: Gunakan aktivitas "Tunggu perubahan bidang pada item saat ini"

Daripada mencari perubahan dengan menggunakan loop, lebih baik menggunakan penerima kejadian default. Alur kerja dapat dimulai saat item dibuat atau diubah. Menjalankan beberapa instans alur kerja alih-alih memiliki satu alur kerja dalam perulangan agresif adalah pendekatan yang lebih baik. Kondisi dalam alur kerja dapat dikonfigurasi untuk melakukan pekerjaan hanya saat diperlukan.

Kotak dialog Opsi Mulai

Hanya satu instans alur kerja alur kerja yang dapat berjalan pada waktu tertentu. 

Pendekatan lainnya adalah dengan menggunakan Tunggu Bidang Berubah dalam aktivitas Item Saat Ini . 

Desain alur kerja dapat menggunakan kolom pilihan yang memiliki beberapa nilai untuk mendorong eksekusi alur kerja. Hanya ketika opsi yang sesuai dipilih oleh pengguna akhir, alur kerja akan dilanjutkan. Hal ini dapat mencegah pengulangan agresif dan instans alur kerja yang tidak diperlukan dimulai. Alur kerja dijalankan saat item sudah siap, bukan mengeksekusi atau memulai beberapa instans.

Anda dapat memantau beberapa nilai dari beberapa bidang dengan menggunakan beberapa blok paralel. Alur kerja dapat menunggu hingga status tertentu, lalu terus mengeksekusi jalur tertentu, seperti dalam contoh berikut:

  1. Buat variabel tipe Boolean .

    Kotak dialog Edit Variabel

  2. Tetapkan nilai ke Tidak.

  3. Menyisipkan blok paralel, klik kanan blok, lalu klik Properti Tingkat Lanjut.

    Kotak dialog Properti

  4. Di menu menurun, pilih variabel yang Anda buat di langkah 1.

  5. Sisipkan dua blok paralel dalam blok paralel yang disisipkan yang memiliki properti CompletionCondition .
     

  6. Di blok paralel pertama dari dua blok paralel yang Anda sisipkan di langkah 5, sisipkan aktivitas Tunggu Perubahan Bidang dalam Item Saat Ini . Ubah aktivitas sehingga memantau kolom pilihan. Jangan pantau pilihan default.

  7. Atur variabel alur kerja yang digunakan untuk menghentikan blok paralel lainnya ke Ya.

  8. Ulangi langkah 1-7 untuk nilai kolom pilihan lainnya.

  9. Pindahkan bagian lain dari alur kerja asli ke posisi setelah blok paralel.

Ketika salah satu blok paralel bertumpuk memiliki semua aktivitasnya dieksekusi, blok paralel induk akan mengakhiri aktivitas lain di blok paralel lainnya. Hal ini memungkinkan alur kerja dilanjutkan. Blok paralel bertumpuk dipantau oleh blok paralel induk dengan menggunakan variabel.

Opsi 4: Mulai alur kerja SharePoint 2010 dari alur kerja SharePoint 2013

Anda dapat menggunakan tipe platform alur kerja SharePoint 2010 untuk melakukan beberapa pekerjaan yang sedang dilakukan oleh tipe SharePoint 2013 Workflow Platform. Tindakan ini dapat mengurangi jumlah permintaan.

Secara khusus, alur kerja SharePoint 2010 dapat dimulai untuk memantau perubahan bidang dengan menggunakan aktivitas Tunggu Perubahan Bidang pada Item Saat Ini atau untuk melakukan banyak operasi dasar lainnya.

Alternatif untuk skenario 2: Menggunakan alur kerja untuk menjalankan algoritma kompleks

Jika solusi Anda menuntut tugas komputasi yang signifikan, pertimbangkan untuk mengembangkan add-in untuk SharePoint. Untuk informasi selengkapnya, buka add-in SharePoint.

Masih perlu bantuan? Buka Microsoft Community.