Bagikan melalui


Menambahkan dan menjalankan kode JavaScript sebaris dengan alur kerja untuk Azure Logic Apps

Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)

Untuk melakukan tugas integrasi kustom sebaris dengan alur kerja Anda di Azure Logic Apps, Anda dapat langsung menambahkan dan menjalankan cuplikan kode JavaScript sederhana dari alur kerja Anda di portal Azure. Untuk tugas ini, gunakan tindakan Kode Sebaris bernama Jalankan Kode JavaScript. Tindakan ini mengembalikan hasil dari cuplikan kode sehingga Anda dapat menggunakan output tersebut dalam tindakan alur kerja berikutnya. Tindakan ini juga memiliki batas yang berbeda, berdasarkan apakah Anda memiliki alur kerja Konsumsi atau Standar dan berfungsi paling baik untuk cuplikan kode dengan atribut berikut:

Perbuatan Bahasa Versi bahasa Durasi eksekusi Ukuran data Catatan lain
Jalankan Kode JavaScript JavaScript Standar:
Node.js 16.x.x

Konsumsi:
Node.js 20.9.0

Untuk informasi selengkapnya, lihat Objek bawaan standar.
Selesai dalam 5 detik atau kurang Menangani data hingga 50 MB - Tidak memerlukan menggunakan aksi Variabel, yang tidak didukung oleh aksi.

- Tidak mendukung require() fungsi untuk menjalankan JavaScript

Untuk menjalankan kode yang tidak sesuai dengan atribut ini, Anda dapat membuat dan memanggil fungsi menggunakan Azure Functions.

Panduan ini memperlihatkan cara kerja tindakan dalam contoh alur kerja yang dimulai dengan pemicu Outlook Office 365 . Alur kerja berjalan saat email baru tiba di akun email Outlook terkait. Cuplikan kode sampel mengekstrak alamat email apa pun yang ada di isi email dan mengembalikan alamat tersebut sebagai output yang dapat Anda gunakan dalam tindakan berikutnya.

Diagram berikut menunjukkan sorotan dari contoh alur kerja:

Prasyarat

  • Akun dan langganan Azure. Jika Anda tidak memiliki langganan, daftar untuk mendapatkan akun Azure secara gratis.

  • Sumber daya aplikasi logika dengan alur kerja tempat Anda ingin menambahkan cuplikan kode Anda. Alur kerja harus sudah dimulai dengan pemicu.

    Contoh artikel ini menggunakan pemicu Office 365 Outlook bernama Saat email baru tiba.

    Jika Anda tidak memiliki sumber daya dan alur kerja aplikasi logika, buat sekarang dengan mengikuti langkah-langkah untuk aplikasi logika yang Anda inginkan:

  • Berdasarkan apakah Anda memiliki alur kerja aplikasi logika Konsumsi atau Standar, tinjau persyaratan berikut:

    • Alur kerja konsumsi:

      • Node.js versi 8.11.10

      • Menghubungkan ke akun integrasi, baik kosong maupun tidak, dari resource aplikasi logika Anda

        Penting

        Pastikan Anda menggunakan akun integrasi yang sesuai untuk kasus atau skenario penggunaan Anda.

        Misalnya, akun integrasi Tingkat gratis hanya dimaksudkan untuk skenario dan beban kerja eksploratif, bukan skenario produksi, yang terbatas dalam penggunaan dan throughput, dan tidak didukung oleh perjanjian tingkat layanan (SLA).

        Tingkat akun integrasi lainnya dikenakan biaya, tetapi termasuk dukungan SLA, menawarkan lebih banyak throughput, dan memiliki batasan yang lebih tinggi. Pelajari lebih lanjut tentang tingkatan akun integrasi, batasan, and harga.

    • Alur kerja standar:

Menambahkan tindakan Jalankan Kode JavaScript

  1. Di portal Azure, buka sumber daya aplikasi logika Konsumsi Anda.

  2. Pada menu bilah sisi sumber daya, di bawah Alat Pengembangan, pilih perancang untuk membuka alur kerja.

    Langkah-langkah ini mengasumsikan bahwa alur kerja Anda sudah memiliki pemicu.

    Contoh ini menggunakan pemicu Saat email baru tiba .

  3. Tambahkan tindakan Kode Sebaris bernama Jalankan Kode JavaScript ke alur kerja Anda dengan mengikuti langkah-langkah umum untuk menambahkan tindakan.

    Contoh ini menambahkan tindakan di bawah pemicu Office 365 Outlook . Secara default, tindakan berisi beberapa kode sampel, termasuk return pernyataan.

    Cuplikan layar memperlihatkan tindakan Jalankan Kode JavaScript dengan kode sampel default.

  4. Dalam kotak Kode yang ada, hapus kode sampel, dan masukkan kode Anda. Tulis kode yang akan Anda masukkan ke dalam metode, tetapi tanpa tanda tangan metode.

    Petunjuk / Saran

    Saat kursor Anda berada di kotak Kode, daftar konten dinamis muncul. Meskipun Anda akan menggunakan daftar ini nanti, Anda dapat mengabaikan dan membiarkan daftar tersebut terbuka untuk saat ini. Jangan pilih Sembunyikan.

    Jika Anda mulai mengetik kata kunci yang dikenali, daftar pelengkap otomatis muncul sehingga Anda dapat memilih dari kata kunci yang tersedia, misalnya:

    Cuplikan layar memperlihatkan alur kerja Konsumsi, tindakan Jalankan Kode JavaScript, dan daftar lengkapi otomatis kata kunci.

    Contoh cuplikan kode berikut pertama-tama membuat variabel bernama myResult yang menyimpan ekspresi reguler, yang menentukan pola agar cocok dalam teks input. Selanjutnya, kode tersebut menciptakan variabel bernama surel yang menyimpan kontan badan pesan email dari keluaran pemicu.

    Cuplikan layar memperlihatkan alur kerja Konsumsi, tindakan Jalankan Kode JavaScript, dan contoh kode yang membuat variabel.

  5. Dengan kursor Anda masih dalam kotak Kode , pilih ikon kilat untuk membuka daftar konten dinamis.

  6. Dalam daftar, di bawah bagian Saat email baru tiba , pilih properti Isi , yang mereferensikan output pemicu dengan isi pesan email.

    Cuplikan layar memperlihatkan alur kerja Pemakaian, tindakan Jalankan Kode JavaScript, daftar konten dinamis, dan properti Isi dari pesan email dipilih.

    Daftar konten dinamis menunjukkan output dari pemicu dan tindakan sebelumnya saat output tersebut cocok dengan format input untuk kotak edit yang saat ini berada dalam fokus. Daftar ini membuat output ini lebih mudah digunakan dan dirujuk dari alur kerja Anda. Untuk contoh ini, daftar tersebut menunjukkan output dari pemicu Outlook, termasuk properti Badan pesan surel.

    Setelah Anda memilih properti Isi , tindakan Jalankan Kode JavaScript menyelesaikan token ke objek JSON baca-saja workflowContext , yang dapat digunakan cuplikan Anda sebagai input. Objek workflowContext menyertakan properti yang memberi kode Anda akses ke output dari pemicu dan tindakan sebelumnya dalam alur kerja Anda, seperti properti pemicu body, yang berbeda dari properti Badan pesan email. Untuk informasi selengkapnya tentang objek workflowContext, lihat Mereferensikan pemicu dan output tindakan menggunakan objek workflowContext di bagian selanjutnya pada artikel ini.

    Penting

    Jika cuplikan kode Anda mereferensikan nama tindakan yang menyertakan operator titik (.), referensi tersebut harus mengapit nama tindakan ini dengan kurung siku ([]) dan tanda kutip (""), misalnya:

    // Correct
    workflowContext.actions["my.action.name"].body

    // Incorrect
    workflowContext.actions.my.action.name.body

    Selain itu, dalam tindakan Jalankan Kode JavaScript, Anda perlu menambahkan parameter Tindakan lalu menambahkan nama tindakan ini ke parameter tersebut. Untuk informasi selengkapnya, lihat Menambahkan dependensi sebagai parameter ke tindakan Jalankan Kode JavaScript nanti di artikel ini.

  7. Untuk membedakan properti Badan pesan surel yang Anda pilih dari properti body pemicu, ganti nama properti body kedua menjadi Body sebagai gantinya. Tambahkan titik koma penutup (;) di akhir untuk menyelesaikan pernyataan kode.

    Cuplikan layar memperlihatkan alur kerja aplikasi logika konsumsi, aksi Jalankan Kode JavaScript, dan atribut Body yang diganti namanya dengan titik koma di akhir.

    Tindakan Jalankan Kode JavaScript tidak secara sintis memerlukan return pernyataan. Namun, dengan menyertakan pernyataan return, Anda dapat dengan lebih mudah mereferensikan hasil tindakan nanti di alur kerja Anda dengan menggunakan token Hasil dalam tindakan selanjutnya.

    Dalam contoh ini, cuplikan kode menampilkan hasilnya dengan memanggil fungsi match() yang menemukan kecocokan dalam badan pesan surel dengan regex. Anda kemudian dapat menambahkan tindakan Buat tabel HTML yang menggunakan token Hasil untuk mereferensikan hasil dari tindakan Jalankan Kode JavaScript dan membuat satu hasil.

    Cuplikan layar memperlihatkan alur kerja aplikasi logika Konsumsi yang sudah selesai.

  8. Setelah selesai, simpan alur kerja.

Mereferensikan pemicu dan output tindakan dengan menggunakan objek workflowContext

Dari dalam cuplikan kode Anda pada perancang, Anda dapat menggunakan daftar konten dinamis untuk memilih token yang mereferensikan output dari pemicu atau tindakan sebelumnya. Saat Anda memilih token, tindakan Jalankan Kode JavaScript menyelesaikan token tersebut ke objek JSON baca-sajaworkflowContext. Objek ini memberi kode Anda akses ke output dari pemicu, tindakan sebelumnya, dan alur kerja. Objek menggunakan struktur berikut dan mencakup properti actions, trigger, dan workflow, yang juga merupakan objek:

{
   "workflowContext": {
      "actions": {
         "<action-name-1>": @actions('<action-name-1>'),
         "<action-name-2>": @actions('<action-name-2>')
      },
      "trigger": {
         @trigger()
      },
      "workflow": {
         @workflow()
      }
   }
}

Tabel berikut ini memiliki informasi selengkapnya tentang properti ini:

Properti Tipe Deskripsi
actions Koleksi objek Objek hasil dari tindakan sebelumnya yang dijalankan sebelum cuplikan kode Anda berjalan. Setiap objek memiliki pasangan kunci-nilai dengan ketentuan, kunci adalah nama tindakannya, dan nilainya setara dengan hasil dari memanggil fungsi actions() dengan ekspresi @actions('<action-name>').

Nama tindakan menggunakan nama tindakan yang sama yang muncul dalam definisi alur kerja yang mendasarinya, yang menggantikan spasi (" ") dalam nama tindakan dengan garis bawah (_). Koleksi objek ini menyediakan akses ke nilai properti tindakan dari eksekusi instans alur kerja saat ini.
trigger Objek Objek hasil dari pemicu dengan ketentuan hasilnya setara dengan memanggil fungsi trigger(). Objek ini menyediakan akses ke nilai properti pemicu dari eksekusi instans alur kerja saat ini.
workflow Objek Objek alur kerja yang setara untuk memanggil fungsi workflow(). Objek ini menyediakan akses ke nilai properti, seperti nama alur kerja, ID yang menjalankan, dan sebagainya, dari eksekusi instans alur kerja saat ini.

Dalam contoh artikel ini, objek JSON workflowContext mungkin memiliki properti sampel dan nilai berikut dari pemicu Outlook:

{
   "workflowContext": {
      "trigger": {
         "name": "When_a_new_email_arrives",
         "inputs": {
            "host": {
               "connection": {
                  "name": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Web/connections/office365"
               }
            },
            "method": "get",
            "path": "/Mail/OnNewEmail",
            "queries": {
               "includeAttachments": "False"
            }
         },
         "outputs": {
            "headers": {
               "Pragma": "no-cache",
               "Content-Type": "application/json; charset=utf-8",
               "Expires": "-1",
               "Content-Length": "962095"
            },
            "body": {
               "Id": "AAMkADY0NGZhNjdhLTRmZTQtNGFhOC1iYjFlLTk0MjZlZjczMWRhNgBGAAAAAABmZwxUQtCGTqSPpjjMQeD",
               "DateTimeReceived": "2019-03-28T19:42:16+00:00",
               "HasAttachment": false,
               "Subject": "Hello World",
               "BodyPreview": "Hello World",
               "Importance": 1,
               "ConversationId": "AAQkADY0NGZhNjdhLTRmZTQtNGFhOC1iYjFlLTk0MjZlZjczMWRhNgAQ",
               "IsRead": false,
               "IsHtml": true,
               "Body": "Hello World",
               "From": "<sender>@<domain>.com",
               "To": "<recipient-2>@<domain>.com;<recipient-2>@<domain>.com",
               "Cc": null,
               "Bcc": null,
               "Attachments": []
            }
         },
         "startTime": "2019-05-03T14:30:45.971564Z",
         "endTime": "2019-05-03T14:30:50.1746874Z",
         "scheduledTime": "2019-05-03T14:30:45.8778117Z",
         "trackingId": "1cd5ffbd-f989-4df5-a96a-6e9ce31d03c5",
         "clientTrackingId": "08586447130394969981639729333CU06",
         "originHistoryName": "08586447130394969981639729333CU06",
         "code": "OK",
         "status": "Succeeded"
      },
      "workflow": {
         "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Logic/workflows/<logic-app-workflow-name>",
         "name": "<logic-app-workflow-name>",
         "type": "Microsoft.Logic/workflows",
         "location": "<Azure-region>",
         "run": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Logic/workflows/<logic-app-workflow-name>/runs/08586453954668694173655267965CU00",
            "name": "08586453954668694173655267965CU00",
            "type": "Microsoft.Logic/workflows/runs"
         }
      }
   }
}

Menambahkan dependensi sebagai parameter ke tindakan Jalankan Kode JavaScript

Dalam beberapa skenario, Anda mungkin harus secara eksplisit mengharuskan tindakan Jalankan Kode JavaScript menyertakan output dari pemicu atau tindakan yang direferensikan kode Anda sebagai dependensi. Misalnya, Anda harus mengambil langkah tambahan ini saat kode Anda mereferensikan output yang tidak tersedia pada durasi alur kerja. Selama waktu pembuatan alur kerja, mesin Azure Logic Apps menganalisis cuplikan kode untuk menentukan apakah kode mereferensikan pemicu atau output tindakan apa pun. Jika referensi tersebut tersedia, mesin menyertakan output tersebut secara otomatis. Pada durasi alur kerja, jika pemicu atau output tindakan yang dirujuk tidak ditemukan di objek workflowContext, mesin akan menghasilkan kesalahan. Untuk mengatasi kesalahan ini, Anda harus menambahkan pemicu atau tindakan tersebut sebagai dependensi eksplisit untuk tindakan Jalankan Kode JavaScript. Skenario lain yang mengharuskan Anda untuk mengambil langkah ini adalah ketika objek workflowContext mereferensikan pemicu atau nama tindakan yang menggunakan operator titik (.).

Untuk menambahkan pemicu atau tindakan sebagai dependensi, Anda menambahkan parameter Pemicu atau Tindakan sebagaimana berlaku untuk tindakan Jalankan Kode JavaScript. Setelahnya, Anda menambahkan nama pemicu atau tindakan saat muncul dalam definisi JSON yang mendasar pada alur kerja Anda.

Catatan

Anda tidak dapat menambahkan operasi Variabel, perulangan seperti For each atau Until, dan indeks perulangan sebagai dependensi eksplisit.

Jika Anda berencana untuk menggunakan kembali kode Anda, pastikan untuk selalu menggunakan kotak edit cuplikan kode untuk mereferensikan pemicu dan output tindakan. Dengan begitu, kode Anda menyertakan referensi token yang diselesaikan, bukan hanya menambahkan output pemicu atau tindakan sebagai dependensi eksplisit.

Misalnya, tindakan Mengirim surel persetujuan konektor Office 365 Outlook mendahului cuplikan kode dalam alur kerja sampel. Contoh cuplikan kode berikut menyertakan referensi ke output SelectedOption dari tindakan ini.

Untuk contoh ini, Anda hanya harus menambahkan parameter Tindakan, lalu menambahkan nama JSON tindakan, Send_approval_email, ke parameter tersebut. Dengan begitu, Anda menentukan bahwa tindakan Jalankan Kode JavaScript secara eksplisit menyertakan output dari tindakan Kirim email persetujuan.

Menemukan pemicu atau nama JSON tindakan

Sebelum memulai, Anda memerlukan nama JSON untuk pemicu atau tindakan dalam definisi alur kerja yang mendasar.

  • Nama dalam definisi alur kerja Anda menggunakan garis bawah (_), bukan spasi.

  • Jika nama tindakan menggunakan operator titik (.), sertakan operator tersebut, misalnya:

    My.Action.Name

  1. Pada menu alur kerja, di bawah Alat, pilih Kode untuk melihat definisi JSON alur kerja. Dalam objek actions, temukan nama tindakan.

    Misalnya, Send_approval_email adalah nama JSON untuk tindakan Kirim surel persetujuan.

    Cuplikan layar memperlihatkan nama tindakan di JSON.

  2. Untuk kembali ke tampilan perancang, pada menu alur kerja, di bawah Alat, pilih Perancang.

  3. Sekarang tambahkan nama JSON ke tindakan Jalankan Kode JavaScript.

Menambahkan pemicu atau nama tindakan ke tindakan Jalankan Kode JavaScript

  1. Dalam tindakan Jalankan Kode JavaScript , buka daftar Parameter tingkat lanjut .

  2. Dari daftar parameter, pilih parameter berikut seperti yang diperlukan skenario Anda.

    Pengaturan Deskripsi
    Tindakan Sertakan output dari tindakan sebelumnya sebagai dependensi. Saat memilih parameter ini, Anda akan diminta untuk tindakan yang ingin Anda tambahkan.
    Pemicu Sertakan output dari pemicu sebagai dependensi. Saat Anda memilih parameter ini, Anda akan ditanya apakah akan menyertakan hasil pemicu. Jadi, dari daftar Pemicu pilih Ya.
  3. Untuk contoh ini, pilih parameter Tindakan.

    Cuplikan layar memperlihatkan tindakan Jalankan Kode JavaScript dengan parameter Tindakan dipilih.

  4. Dalam kotak Item Tindakan - 1, masukkan nama JSON tindakan.

    Cuplikan layar memperlihatkan kotak Item Tindakan -1 dan nama JSON dari tindakan.

  5. Untuk menambahkan nama tindakan lain, pilih Menambahkan item baru.

  6. Setelah selesai, simpan alur kerja.

Referensi tindakan

Untuk informasi lebih lanjut tentang struktur dan sintaks tindakan Menjalankan Kode JavaScript dalam definisi alur kerja yang mendasari Anda menggunakan Bahasa Definisi Alur Kerja, lihat pada tindakan ini yaitu bagian referensi.