ChakraHQChakraHQ
Model Data

Atribut Turunan

Pengantar

Atribut turunan memungkinkan Anda menentukan atribut untuk Objek Chakra berdasarkan perhitungan otomatis. Berikut jenis yang didukung:

  1. Berdasarkan Rumus
  2. Berbasis Query
  3. Berbasis Chakra Script

Sesuai namanya, Anda tidak dapat menetapkan nilai atribut turunan—nilainya akan dihitung oleh sistem berdasarkan logika yang diberikan dalam bentuk query, formula, atau skrip.

Data atribut turunan ditampilkan di bawah kunci derivedData pada objek Anda, seperti:

{  "_data": {    "id": "ecd2f0fe-c755-4deb-9a97-f5bd8d9e9f02",    "createdAt": 1597212692774,    "updatedAt": 1597212693393,    "status": "OPEN",    "data": {      "name": "Lin Liu",      "source": "Form",      "google_coordinates": [        12.323333,        27.188833      ],      "duplicate": true,      "phone_number": "4400000105",    },    "derivedData": {      "lead_source": "google",      "lead_priority": 5,      "lead_score": 50    },    ...    }}

Pada data proses sampel di atas, atribut di bawah derived data—lead_score, lead_priority, dan lead_score—merupakan atribut turunan. Atribut di bawah data adalah atribut standar.

Jenis Atribut

Atribut turunan mengikuti sistem jenis yang sama dengan atribut biasa. Jadi, saat Anda menentukan atribut turunan seperti lead_priority_score , Anda juga perlu menentukan jenis atribut seperti int, real, ... dan memastikan formula/skrip mengembalikan data dalam format yang sama.

DA Berbasis Chakra Script

Atribut turunan berbasis Chakra Script menjalankan skrip yang ditentukan pengguna untuk menghasilkan data Script akhir.

Runtime

Skrip harus berupa skrip JavaScript yang berjalan pada runtime Nodejs 10.0. Skrip harus menghasilkan nilai setelah dijalankan. Skrip harus berjalan secara sinkron; semua upaya asinkron akan diabaikan.

Karena skrip ini terkait erat dengan pembuatan dan pembaruan Object, ukurannya harus ringan. Praktik yang disarankan adalah menjaga waktu eksekusi di bawah 100 ms.

Require

Anda tidak dapat menggunakan require untuk memuat modul eksternal. Beberapa modul utilitas sudah disertakan dalam konteks dan dapat langsung digunakan:

  1. ```_``` - Lodash - pustaka utilitas JS
  2. ```moment``` - moment - pustaka tanggal dan waktu JS
  3. ```moment_tz``` - moment-timezone - pustaka tanggal dan waktu JS dengan plugin zona waktu

Console.log

Console.log dinonaktifkan dan tidak akan berfungsi sebagaimana mestinya saat dijalankan secara aktual. Namun, log skrip akan menampilkan output console.log selama proses pengujian .

Payload

Skrip menerima objek json bernama PAYLOAD sebagai bagian dari konteks global. Objek ini berisi objek Chakra yang akan digunakan untuk melakukan perhitungan.

Contoh

Semua contoh skrip berikut valid

  1. ```1+2```
  2. ```PAYLOAD.data.duplicate? true: false```
  3. ```javascript
    function calculateNormalScore(payload) {
    return _.get(payload, 'data.lead_score') / 100
    }
    calcualteNormalScore(PAYLOAD);
### LogsThe Chakra Scripts page gives you access to logs of previous executions with the payload info as well.Log data legend:1. Started At - The time at which the script started running2. Script - Name of the script3. Status - Success/Error - Completion status of the script4. Payload - the input data provided to the script during the execution5. Response - The response output provided the script6. Log - The log outputted by the script during a test execution7. Exception Log - Exception log if any when the script errors out8. Duration(ms) - Duration in Millie's taken for the script to be executed9. Debug - false indicates the execution happened in-situ while true indicates a test run initiated by the user### TestYou can modify and test the script by using the test payload option. It is **strongly recommended** to use the payload of previous script executions to test a script before saving modifications

Di halaman ini