Jalankan cuplikan kode dalam alur kerja dengan operasi Kode Sebaris di Azure Logic Apps

Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)

Untuk membuat dan menjalankan cuplikan kode di alur kerja aplikasi logika tanpa banyak penyiapan, Anda dapat menggunakan konektor bawaan Kode Sebaris. Konektor ini memiliki tindakan yang mengembalikan hasil dari cuplikan kode sehingga Anda dapat menggunakan output tersebut dalam tindakan alur kerja Anda berikutnya.

Saat ini, konektor hanya memiliki satu tindakan, yang berfungsi paling baik untuk cuplikan kode dengan atribut berikut, tetapi lebih banyak tindakan sedang dalam pengembangan. Konektor bawaan Kode Sebaris juga memiliki batas yang berbeda, berdasarkan apakah alur kerja aplikasi logika Anda adalah Konsumsi atau Standar.

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

Konsumsi:
Node.js 8.11.1

Untuk informasi lebih lanjut, lihat Objek bawaan standar.
Menyelesaikan dalam 5 detik atau kurang. Menangani data hingga ukuran 50 MB. - Tidak perlu bekerja dengan tindakan Variabel, yang tidak didukung oleh tindakan.

- Tidak mendukung fungsi require() untuk menjalankan JavaScript.

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

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

Diagram berikut ini memperlihatkan sorotan dari contoh alur kerja:

Prasyarat

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

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

    Contoh dalam artikel ini menggunakan pemicu Office 365 Outlook yang diberi nama Saat ada surel baru.

    Jika Anda tidak memiliki alur kerja, lihat dokumentasi berikut ini:

  • Berdasarkan apakah aplikasi logika Anda adalah Konsumsi atau Standar, tinjau persyaratan berikut:

    • Konsumsi: Memerlukan Node.js versi 8.11.10 dan tautan ke akun integrasi, kosong atau sebaliknya, dari sumber daya 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.

    • Standar: Memerlukan Node.js versi 16.x.x, tetapi tidak ada akun integrasi.

Menambahkan tindakan Jalankan Kode JavaScript

  1. Di portal Azure, buka alur kerja aplikasi logika Penggunaan Anda di perancang.

  2. Di perancang, ikuti langkah-langkah umum ini untuk menambahkan tindakan Kode Sebaris bernama Jalankan Kode JavaScript ke alur kerja Anda.

    Contoh ini menambahkan tindakan di bagian 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.

  3. 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.

    Tip

    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.

  4. Dengan posisi kursor Anda masih dalam kotak Kode, dari daftar konten dinamis yang terbuka, temukan bagian Saat surel baru tiba, dan pilih properti Badan, yang mereferensikan badan pesan email.

    Cuplikan layar memperlihatkan alur kerja Konsumsi, tindakan Jalankan Kode JavaScript, daftar konten dinamis, dan properti

    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 harus 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.

  5. 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, tindakan Jalankan Kode JavaScript, dan properti

    Tindakan Jalankan Kode JavaScript tidak secara sintaksis 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. Tindakan Buat tabel HTML kemudian 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.

  6. 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-saja workflowContext . 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 Jenis 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 toolbar perancang alur kerja, pilih Tampilan kode. 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 bar alat tampilan kode, 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 Tambahkan parameter baru .

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

    Parameter 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 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.

Langkah berikutnya