關於使用Node-RED實現數據鏈接功能

BLP導線バナー


前言

給您添麻煩了。
本商品為窄版上衣。

這次來自i-Reporter的代理商Panasonic FS Engineering Co.,Ltd。,“使用i-Reporter和Node RED實現數據鏈接功能”作為簡化 (低編碼) i-Reporter和外部係統協作構建的技術我們為這篇文章做了贡獻。

※什麽是Node RED
Node-RED (節點紅色) 是一種直觀的工具,無需編程知識即可自動執行應用程序和係統。您可以通過連接瀏覽器上稱為“節點”的塊來直觀地設計數據流 (流) 。

如果您在使用ConMas Gateway鏈接外部係統時遇到睏難,如果您能閱讀它,我們將不勝感激。

問候

初次見面。
我是從事i-Reporter銷售代理店的Panasonic FS Engineering株式會社的木庭。

是否有可能更輕松,更順暢地在現場使用數據-從這個想法,我想到了使用i-Reporter和Node-RED的數據鏈接方法。

當我真正嘗試它時,可以通過簡單的設置自動鏈接數據,並且工作效率得到了很好的提高。我想與大家分享這種方便的方法,並在文章中進行了總結。

對於那些想要更多地利用i-Reporter數據的人來說,這肯定是一個提示,“我想靈活地使用無代碼工具鏈接係統”。

請一定要看到最後!

建立這種合作的背景

一位客戶要求將i-Reporter用作內部係統UI。因此,我們介紹了一種與Gateway+Python合作的方法,並對其進行了研究。
但是,由於以下原因,i-Reporter的部署將被推遲。

為何放棄i-Reporter?

  1. Python學習成本
    我沒有時間學習Python。
  2. 使用Gateway功能時的復雜性
    需要將代碼直接寫入工具以外的多個文件,管理復雜且維護睏難。
  3. 創建復雜SQL的負擔
    創建復雜的SQL需要在Python中編寫,這增加了開發工作量。
  4. 訪問目的地不明確
    訪問所需數據的目的地不明確且難以管理。
  5. i-Reporter和Python文件之間的關係不明確
    i-Reporter的調用方和Python文件沒有直接連接,操作負擔很重。

建議的解決方案

  1. 無法確保學習Python的時間
    →考慮利用無代碼或低代碼開發工具。
  2. 使用Gateway時減輕代碼管理負擔
    →探索直接從i-Reporter調用並直接返回的方法。
  3. 消除訪問地阯的混亂
    →簡化數據的管理和獲取,探討更直觀的訪問方法。

Node-RED功能

  • 可視化編程
    提供在Web瀏覽器上運行的流編輯器,可在拖放節點時以可視化方式構建工作流。
  • 支持JavaScript
    可通過編寫JavaScript函數來實現自定義處理。
  • 基於Node.js的運行時
    提供輕量級、靈活的環境,可在各種設備上運行。
  • JSON流管理
    創建的流以JSON格式存儲,易於重用和共享。
  • MQTT/TLS支持
    從版本0.14開始,MQTT節點可以建立TLS連接,以實現更安全的通信。

Node-RED廣泛用於物聯網和業務自動化領域,因為即使是編程初學者也可以直觀地構建係統。

【參照】Node-RED (Wikipedia)

樣本操作環境

示例屏幕

Node-RED流

動作圖像

總結

利用Node-RED的優勢

1.降低教育成本

Node-RED是一種低代碼開發工具,即使不熟悉編程的人也可以相對輕松地創建流。因此,可以在降低學習成本的同時快速推進係統開發。

2.簡化的文件配置

不再需要編寫DB連接字元串、管理Action文件和創建腳本文件。所有操作都在Node-RED中完成,從而簡化了文件配置並簡化了管理。

3.支持復雜的SQL語句

由於SQL語句可以在Node-RED中編寫,因此可以執行復雜的數據操作,例如事務處理,外部/內部聯接,SELECT·INSERT·UPDATE

4.明確的訪問

網關地阯與Node-REDAPI地阯相匹配,從而簡化係統連接並簡化操作管理。

5.高可擴展性

Node-RED是一款可擴展的開發工具,可幫助您輕松實現以下功能:。

  • 讀寫CSV文件
  • 與其他公司的WebAPI集成
  • 發送電子郵件和聊天通知
  • 獲取PLC數據

通過這種方式,利用Node-RED可以簡化開發並構建靈活的係統。

利用Node-RED的要點

1.在Node-RED中創建WebAPI

使用Node-RED,您可以輕松地使用原始代碼創建WebAPI。直觀的流程設計支持直觀的開發。

2.JSON格式的返回值很重要

將Node-RED創建的WebAPI的返回值與適當的JSON格式對齊是一個重點。設計統一的數據結構以確保客戶端處理順暢非常重要。

通過堅持這兩點,可以實現更有效的係統構建。

另外,衹讀者

如果您已經在使用我們將與您分享更多信息。
另外,如果您能告訴我們您的意見和感想,我們將不勝感激。

i-Reporter聯合示例說明

以下是示例的說明,以下是項目的說明。
此外,有關如何安裝Node-RED、添加所需節點以及如何使用Node-RED等信息,請參閱單獨的HP。
另外,在節點說明部分中,省略了與之前示例相同的節點的說明。
麻煩您參考之前的樣品。

  • 在i-Reporter中顯示PostgreSQL數據
  • 在i-Reporter中顯示QR碼
  • 查看圖像文件
  • 設置焦點
  • 單選群集選擇集

在i-Reporter中顯示PostgreSQL數據

流圖

概述

檢索PostgreSQL數據並將其顯示在i-Reporter中的示例
檢索inventory表中的數據並將其顯示在i-Reporter屏幕上

要使用的節點 (要添加的節點)

在本示例中,我們將添加以下Node-RED節點以訪問PostgreSQL:。

  • node-red-contrib-re-postgres

節點設置

http in節點

方法:與i-Reporte方法相同
URL:指定URL的端點
名稱:為註釋指定一個描述性名稱

template節點

列出用於訪問的SQL語句
名稱:為註釋指定一個描述性名稱
屬性:指定模板內容的變數名稱
下一個postgres節點請求的變數是msg.payload
,因此將其指定給msg.payload
類型:指定Mustache模板
輸出格式:指定純文本

postgres節點

Name:指定Postgres節點的註釋
Sewver:指定以下資料庫連接信息的名稱
Receve query output?:在以後的流程中使用取得的數據時,勾選

Name:命名資料庫連接信息
Host:指定伺服器名稱,伺服器IP地阯
Database:指定資料庫名稱
Username:指定用戶名
Password:指定密碼

template節點

創建字元串以將檢索到的數據返回到i-Reporter群集
使用此JSON格式創建數據

http response節點

與http in配對的節點
使用預設值

配置i-Reporter

源文件

[
    {
        "id": "e5093ff27efd600e",
        "type": "http in",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "データ取得",
        "url": "/Get-Data",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 280,
        "y": 4220,
        "wires": [
            [
                "a016c039f0157d8f"
            ]
        ]
    },
    {
        "id": "a016c039f0157d8f",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "SQL",
        "field": "payload",
        "fieldType": "msg",
        "format": "sql",
        "syntax": "mustache",
        "template": "SELECT\n    id\n    , part_no\n    , part_no\n    , part_nam\n    , stock_cnt\nFROM\n    stddb.t_inventory\nORDER BY stock_cnt ASC\nLIMIT 5\n",
        "output": "str",
        "x": 690,
        "y": 4220,
        "wires": [
            [
                "4cc5f7592a8bf6ff"
            ]
        ]
    },
    {
        "id": "4cc5f7592a8bf6ff",
        "type": "postgres",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "postgresdb": "1429ffd5a6603e33",
        "name": "",
        "output": true,
        "perrow": false,
        "rowspermsg": "1",
        "return_on_error": false,
        "limit_queries": "0",
        "limit_by": "payload",
        "limit_value": "1",
        "limit_drop_intermediate": false,
        "limit_drop_if_in_queue": false,
        "outputs": true,
        "x": 880,
        "y": 4220,
        "wires": [
            [
                "85397862ed216455"
            ]
        ]
    },
    {
        "id": "85397862ed216455",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "json",
        "syntax": "mustache",
        "template": "{\n    \"result\": {\n        \"code\": 0,\n        \"description\": \"Success!!!\"\n    },\n    \"apply\": [\n        {\n            \"sheet\": 1,\n            \"cluster\": 2,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.0.id}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 3,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.0.part_no}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 4,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.0.part_nam}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 5,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.0.stock_cnt}}}\"\n        },\n\n        {\n            \"sheet\": 1,\n            \"cluster\": 7,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.1.id}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 8,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.1.part_no}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 9,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.1.part_nam}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 10,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.1.stock_cnt}}}\"\n        },\n\n        {\n            \"sheet\": 1,\n            \"cluster\": 11,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.2.id}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 12,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.2.part_no}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 13,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.2.part_nam}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 14,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.2.stock_cnt}}}\"\n        },\n\n        {\n            \"sheet\": 1,\n            \"cluster\": 15,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.3.id}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 16,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.3.part_no}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 17,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.3.part_nam}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 18,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.3.stock_cnt}}}\"\n        },\n\n        {\n            \"sheet\": 1,\n            \"cluster\": 19,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.4.id}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 20,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.4.part_no}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 21,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.4.part_nam}}}\"\n        },\n        {\n            \"sheet\": 1,\n            \"cluster\": 22,\n            \"type\": \"string\",\n            \"value\": \"{{{payload.4.stock_cnt}}}\"\n        }\n\n    ]\n}",
        "output": "str",
        "x": 1300,
        "y": 4220,
        "wires": [
            [
                "9d7dfb43e876a634"
            ]
        ]
    },
    {
        "id": "9d7dfb43e876a634",
        "type": "http response",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 1450,
        "y": 4220,
        "wires": []
    },
    {
        "id": "1429ffd5a6603e33",
        "type": "postgresdb",
        "cfgname": "Localhost",
        "hostname": "localhost",
        "port": "5432",
        "db": "postgres",
        "ssl": false
    }
]

在i-Reporter中顯示QR碼

流圖

概述

對集群1中輸入的字元串進行QR編碼,並將其顯示在i-Reporter的屏幕上。

要使用的節點 (要添加的節點)

  • node-red-contrib-image-tools

節點設置

http in節點

Barcode Generator節點

Text:指定要轉換為QR碼的字元串
這次將從i-Reporter中用id這個變數來繼承字元串
繼承的變數將以msg.payload.id的形式輸入到變數中
Type:這次將轉換為QR碼,請選擇QR碼。

image節點

轉換為Base64格式
設置Output:base64

template節點

以此格式創建數據

配置i-Reporter

源文件

[
    {
        "id": "e9a3130d5919b122",
        "type": "http in",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "QR作成",
        "url": "/Make-QR",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 290,
        "y": 4480,
        "wires": [
            [
                "659cc17a2ce81dd4"
            ]
        ]
    },
    {
        "id": "659cc17a2ce81dd4",
        "type": "Barcode Generator",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "data": "payload.id",
        "dataType": "msg",
        "barcode": "qrcode",
        "barcodeType": "barcode",
        "options": "",
        "optionsType": "ui",
        "sendProperty": "payload",
        "props": [],
        "x": 710,
        "y": 4480,
        "wires": [
            [
                "613466464d37465f"
            ]
        ]
    },
    {
        "id": "613466464d37465f",
        "type": "jimp-image",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "data": "payload",
        "dataType": "msg",
        "ret": "b64",
        "parameter1": "",
        "parameter1Type": "msg",
        "parameter2": "",
        "parameter2Type": "msg",
        "parameter3": "",
        "parameter3Type": "msg",
        "parameter4": "",
        "parameter4Type": "msg",
        "parameter5": "",
        "parameter5Type": "msg",
        "parameter6": "",
        "parameter6Type": "msg",
        "parameter7": "",
        "parameter7Type": "msg",
        "parameter8": "",
        "parameter8Type": "msg",
        "sendProperty": "payload",
        "sendPropertyType": "msg",
        "parameterCount": 0,
        "jimpFunction": "none",
        "selectedJimpFunction": {
            "name": "none",
            "fn": "none",
            "description": "Just loads the image.",
            "parameters": []
        },
        "x": 890,
        "y": 4480,
        "wires": [
            [
                "de0adf2b1d2ed0a6"
            ]
        ]
    },
    {
        "id": "de0adf2b1d2ed0a6",
        "type": "change",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "data:image/png;base64,",
                "fromt": "str",
                "to": "",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1100,
        "y": 4480,
        "wires": [
            [
                "66027e96639dfcd1"
            ]
        ]
    },
    {
        "id": "66027e96639dfcd1",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "json",
        "syntax": "mustache",
        "template": "{\n    \"result\": {\n        \"code\": 0,\n        \"description\": \"Success!!!\"\n    },\n    \"apply\": [\n        {\n            \"sheet\": 1,\n            \"cluster\": 32,\n            \"type\": \"image\",\n            \"value\":\"{{{payload}}}\"\n        }\n    ]\n}",
        "output": "str",
        "x": 1300,
        "y": 4480,
        "wires": [
            [
                "0ba54da75fb7fd64"
            ]
        ]
    },
    {
        "id": "0ba54da75fb7fd64",
        "type": "http response",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 1450,
        "y": 4480,
        "wires": []
    }
]
 

查看圖像文件

流圖

概述

調用群集37中選定的圖像文件,並將其顯示在i-Reporter屏幕上。

要使用的節點 (要添加的節點)

添加以下Node-RED節點以檢索圖像數據並將其轉換為Base64格式:。

  • node-red-contrib-image-tools

節點設置

http in節點

Resd file

從i-Reporter為Msg.payload.fl變數指定文件名
裝入此文件

配置i-Reporter

源文件

[
    {
        "id": "2a05cf56bd260e0a",
        "type": "http in",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "画像読込",
        "url": "/Make-picture",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 300,
        "y": 4600,
        "wires": [
            [
                "7dcccd963194b66e"
            ]
        ]
    },
    {
        "id": "7dcccd963194b66e",
        "type": "file in",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "filename": "payload.fl",
        "filenameType": "msg",
        "format": "",
        "chunk": false,
        "sendError": false,
        "encoding": "none",
        "allProps": false,
        "x": 720,
        "y": 4600,
        "wires": [
            [
                "83fddd4210b2173b"
            ]
        ]
    },
    {
        "id": "83fddd4210b2173b",
        "type": "jimp-image",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "data": "payload",
        "dataType": "msg",
        "ret": "b64",
        "parameter1": "",
        "parameter1Type": "msg",
        "parameter2": "",
        "parameter2Type": "msg",
        "parameter3": "",
        "parameter3Type": "msg",
        "parameter4": "",
        "parameter4Type": "msg",
        "parameter5": "",
        "parameter5Type": "msg",
        "parameter6": "",
        "parameter6Type": "msg",
        "parameter7": "",
        "parameter7Type": "msg",
        "parameter8": "",
        "parameter8Type": "msg",
        "sendProperty": "payload",
        "sendPropertyType": "msg",
        "parameterCount": 0,
        "jimpFunction": "none",
        "selectedJimpFunction": {
            "name": "none",
            "fn": "none",
            "description": "Just loads the image.",
            "parameters": []
        },
        "x": 890,
        "y": 4600,
        "wires": [
            [
                "ac767862aee316a1"
            ]
        ]
    },
    {
        "id": "ac767862aee316a1",
        "type": "change",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "data:image/png;base64,",
                "fromt": "str",
                "to": "",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1100,
        "y": 4600,
        "wires": [
            [
                "4c8d32ffa9bc11ee"
            ]
        ]
    },
    {
        "id": "4c8d32ffa9bc11ee",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "json",
        "syntax": "mustache",
        "template": "{\n    \"result\": {\n        \"code\": 0,\n        \"description\": \"Success!!!\"\n    },\n    \"apply\": [\n    {\n        \"sheet\": 1,\n        \"cluster\": 34,\n        \"type\": \"image\",\n        \"value\":\"{{{payload}}}\"\n    }\n    ]\n}",
        "output": "str",
        "x": 1300,
        "y": 4600,
        "wires": [
            [
                "5c1d265fe120ddfa"
            ]
        ]
    },
    {
        "id": "5c1d265fe120ddfa",
        "type": "http response",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 1450,
        "y": 4600,
        "wires": []
    }
]

設置焦點

流圖

概述

將焦點移至群集35上指定的群集號。
在動作群集上設置焦點時執行該動作。

通過使用此方法,可以在輸入特定數據後自動移動焦點,從而實現平滑的工作流

要使用的節點 (要添加的節點)

無要添加的節點

節點設置

http in節點

template節點

配置i-Reporter

源文件

[
    {
        "id": "bce3b44ea5fd7c32",
        "type": "http in",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "フォーカスセット",
        "url": "/Set-focus",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 330,
        "y": 4840,
        "wires": [
            [
                "f7e7778f83b25cae"
            ]
        ]
    },
    {
        "id": "f7e7778f83b25cae",
        "type": "change",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.clid",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1080,
        "y": 4840,
        "wires": [
            [
                "68c4e54ba5fc454e"
            ]
        ]
    },
    {
        "id": "68c4e54ba5fc454e",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "json",
        "syntax": "mustache",
        "template": "{\n    \"result\": {\n        \"code\": 0,\n        \"description\": \"Success!!!\"\n    },\n    \"apply\": [\n        {\n            \"sheet\":1,\n            \"cluster\":{{{payload}}},\n            \"type\":\"SetFocus\",\n            \"value\": \"\"\n        }\n    ]\n\n}",
        "output": "str",
        "x": 1300,
        "y": 4840,
        "wires": [
            [
                "92a9e28385c334b8"
            ]
        ]
    },
    {
        "id": "92a9e28385c334b8",
        "type": "http response",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 1450,
        "y": 4840,
        "wires": []
    }
]

單選群集選擇集

流圖

概述

從外部資料庫檢索數據,並將其設置為單選群集選項。

要使用的節點 (要添加的節點)

添加以下Node-RED節點以訪問PostgreSQL:。

  • node-red-contrib-re-postgres

節點設置

http in節點

template節點

為了這次訪問DB,我們將在名為msg.base_data的變數中創建一個返回字元串

change節點

將來自外部資料庫的變數msg.payload中的數據替換為
msg.base_data.appy.0.selectitems
然後將msg.base_data放回msg.payload中。

json節點

此節點將msg.payload中的JSON對象轉換為JSON字元串

配置i-Reporter

源文件

[
    {
        "id": "2ea56ea0b25a0857",
        "type": "http in",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "単一選択クラスタ選択肢取得",
        "url": "/Get-tnam",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 360,
        "y": 4900,
        "wires": [
            [
                "2fa4f08a98cd25fd"
            ]
        ]
    },
    {
        "id": "2fa4f08a98cd25fd",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "ベースJSON",
        "field": "base_data",
        "fieldType": "msg",
        "format": "json",
        "syntax": "mustache",
        "template": "{\n    \"result\": {\n        \"code\": 0,\n        \"description\": \"Success!!!\"\n    },\n    \"apply\": [\n        {\n            \"item\": \"list1\",\n            \"sheet\": {{{payload.sheet}}},\n            \"cluster\": {{{payload.cluster}}},\n            \"type\": \"SetItemsToSelect\",\n            \"value\": \"\"\n            \n        }\n    ]\n}",
        "output": "json",
        "x": 590,
        "y": 4900,
        "wires": [
            [
                "c1b53a7404b91999"
            ]
        ]
    },
    {
        "id": "c1b53a7404b91999",
        "type": "template",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "SQL",
        "field": "payload",
        "fieldType": "msg",
        "format": "sql",
        "syntax": "mustache",
        "template": "SELECT\n      player_nam AS item\n    , player_nam AS label\n    , false AS selected\nFROM\n    stddb.t_player\nWHERE\n    tema_nam={{{payload.tnam}}}",
        "output": "str",
        "x": 750,
        "y": 4900,
        "wires": [
            [
                "243b5892a658a184"
            ]
        ]
    },
    {
        "id": "243b5892a658a184",
        "type": "postgres",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "postgresdb": "1429ffd5a6603e33",
        "name": "",
        "output": true,
        "perrow": false,
        "rowspermsg": "1",
        "return_on_error": false,
        "limit_queries": "0",
        "limit_by": "payload",
        "limit_value": "1",
        "limit_drop_intermediate": false,
        "limit_drop_if_in_queue": false,
        "outputs": true,
        "x": 900,
        "y": 4900,
        "wires": [
            [
                "4cbadf09c151a876"
            ]
        ]
    },
    {
        "id": "4cbadf09c151a876",
        "type": "change",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "データOBJ追加",
        "rules": [
            {
                "t": "set",
                "p": "base_data.apply.0.selectItems",
                "pt": "msg",
                "to": "payload",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "base_data",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1080,
        "y": 4900,
        "wires": [
            [
                "48f412aaa05f34b6"
            ]
        ]
    },
    {
        "id": "48f412aaa05f34b6",
        "type": "json",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "property": "payload",
        "action": "str",
        "pretty": false,
        "x": 1290,
        "y": 4900,
        "wires": [
            [
                "c7f2de45cf870ec8"
            ]
        ]
    },
    {
        "id": "c7f2de45cf870ec8",
        "type": "http response",
        "z": "3b9d424424fa37f2",
        "g": "beaca7f0903c3bfb",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 1450,
        "y": 4900,
        "wires": []
    },
    {
        "id": "1429ffd5a6603e33",
        "type": "postgresdb",
        "cfgname": "Localhost",
        "hostname": "localhost",
        "port": "5432",
        "db": "postgres",
        "ssl": false
    }
]

怎麽樣?我希望這篇文章對您有所幫助。
感謝您閱讀到最後。
如有不明之處,請隨時向以下地阯咨詢。
恭候您的聯絡。

關於版本
i-Reporter:5.2.24021
Gateway:2.1.230600
▼註意事項
・對於基於本文內容構建的機制造成的任何損害,我們概不負責。
・關於本報道的內容,株式會社Sim Top不進行開發、技術支援或支援,敬請諒解。
・因ConMas Gateway規格變更,本連結功能可能無法使用。

執筆者・咨詢處:
松下FS工程株式會社

聯係我們

https://www.panasonic.com/jp/company/pfseg.html
パナソニックFSエンジニアリング株式会社 ソリューション統轄部 IoTソリューション部
担当:大塚 篤 / 村瀬 達也
TEL:03-6714-4521 / 03-6714-4535
メールアドレス:pfseginfo@ml.jp.panasonic.com

※如有疑問,請發送至上述郵箱。
※因業務關係,回信可能會延遲。請事先了解。
※請勿向銷售代理店詢問。

安裝4,000公司以上!
無紙應用程序共享No. 1

可以直接從熟悉的Excel表格轉移
現場表格的電子化係統

3分で分かる資料ダウンロード 現場帳票のデジタル化相談してみる