گره های مبدل برای تغییر پیام های ورودی مانند مولد، نوع پیام، محتوا و metadata استفاده می شود.
تغییر مولد (Change Originator) #

تمام پیام های ورودی به پلتفرم ویرالینک فیلد مولد (originator) دارند که مشخص کننده موجودیتی است که پیام را ارسال کرده است. این فیلد میتواند یک دستگاه، مجموعه، مدیر و غیره باشد.
این گره در مواردی مورد استفاده قرار می گیرد که یک پیام ارسالی باید به عنوان یک پیام از یک موجودیت دیگر پردازش شود. برای مثال یک دستگاه داده های تله متری را ارسال می کند که این داده ها باید در درایی های بالا دستی یا مشتری کپی شود. در این مورد، مدیر بایستی این گره را قبل از گره ذخیره داده های تله متری (Save Timeseries) استفاده کند.
مولد (originator) میتواند به موارد زیر تغییر نماید:
- مشتری مولد (Originator’s Customer)
- مدیر مولد (Originator’s Tenant)
- موجودیت مرتبط که توسط Relations Query مشخص میشود.
در پیکربندی Relations Query مدیر میتواند پارامتر های جهت (Direction) و حداکثر عمق سطح (Max relation level) را انتخاب نماید. همچنین میتواند لیستی از Relation filters را با نوع رابطه و موجودیت مورد نیاز پیکربندی نماید.

در صورتی که چندین موجودیت مرتبط پیدا شود، تنها اولین موجودیت پیدا شده به عنوان موجودیت جدید استفاده خواهد شد بقیه موارد نادیده گرفته خواهد شد.
در صورتی که هیچ موجودیت مرتبط / مشتری / مدیر پیدا نشود پیام از طریق زنجیر Failure ارسال خواهد شد در غیر اینصورت از زنجیر Success استفاده خواهد شد.
پیام خروجی از این گره شامل Id مولد جدید خواهد بود.
گره مبدل اسکریپت (Script) #

این گره به واسطه تابع JavaScript نوشته شده میتواند محتوا، metadata و نوع پیام را تغییر میدهد.
تابع JavaScript 3 پارامتر ورودی دارد:
- msg – محتوای پیام است.
- metadata – metadata پیام است.
- msgType – نوع پیام است.
اسکریپت نوشته شده بایستی ساختار زیر را باز گرداند (return کند)
{
msg: new payload,
metadata: new metadata,
msgType: new msgType
}

تمام فیلد ها در object نتیجه اختیاری است و در صورتی که تعریف نشده باشند با فیلد پیام اصلی جایگزین خواهد شد.
پیام خروجی از این گره یک پیام جدید خواهد بود که با استفاده از تابع JavaScript ساخته شده است.
تابع JavaScript را میتوان با Test JavaScript function تست و ارزیابی کرد.
مثال
فرض میکنیم گره پیامی را با محتوای زیر دریافت میکند:
{
"temperature": 22.4,
"humidity": 78
}
و metadata پیام ورودی:
{ "sensorType" : "temperature" }
نوع پیام (Message Type) ورودی – POST_TELEMETRY_REQUEST است
میخواهیم تغییرات زیر را به کمک تابع JavaScript اعمال کنیم:
- تغییر نوع پیام به CUSTOM_UPDATE
- اضافه نمودن صفت version به محتوای پیام با مقدار v1.1
- تغییر مقدار صفت sensorType در metadata پیام به roomTemp
اسکریپت زیر تمام تغییرات را انجام میدهد
var newType = "CUSTOM_UPDATE";
msg.version = "v1.1";
metadata.sensorType = "roomTemp"
return {msg: msg, metadata: metadata, msgType: newType};
برای دیدن مثال های واقعی میتوانید و موارد استفاده این گره به لینک های زیر مراجعه نمایید
- تبدیل داده های تله متری ورودی
- پاسخ به فراخوانی های RPC
گره به ایمیل (To Email) #

این گره پیام ها را به پیام های ایمیل تبدیل میکند. این گره فیلد های ایمیل را با داده های ورودی از metadata پیام تغییر میدهد. این گره پیام خروجی SEND_EMAIL را ست میکند که بعدا میتواند توسط گره ارسال ایمیل (Send Email Node) پردازش و ارسال شود. تمام فیلد های زیر میتواند با استفاده از metadata پیام ورودی پیکربندی شود.

برای مثال پیام ورودی که دارای فیلد deviceName در metadata خود است میتوان مقدار آن را در متن ایمیل به صورت زیر استفاده کرد.
Device ${deviceName} has high temperature
برای دیدن موارد استفاده این گره در مثال های عملی لینک زیر را مطالعه فرمایید.
- ارسال ایمیل