Method Returns¶
Method Invoker veya Context Getter ile başlatılan asenkron bir işlemin dönüş verisini yakalar. Panel tarafı işlemi tamamlayıp cevap gönderdiğinde bu node tetiklenir.
Property Tablosu¶
| Alan | Tip | Varsayılan | Açıklama |
|---|---|---|---|
name |
string | — | Canvas üzerinde gösterilecek ad |
methodname |
string | (boş) | Cevabını dinlemek istediğiniz Method Invoker veya Context Getter node'unun adı |
methodname = node adı
methodname alanındaki açılır listede akıştaki tüm Method Invoker ve Context Getter node'larının adları listelenir. Seçilen ad, kaynak node'un name alanıyla birebir eşleşmelidir.
Hangi Node'lardan Cevap Alır?¶
| Kaynak Node | Cevap Tipi | Açıklama |
|---|---|---|
| Method Invoker | Method return değeri | Panel servisindeki method'un döndürdüğü veri |
| Context Getter | StateContext snapshot | Sorgulanan istasyona ait context property değerleri |
Asenkron Çalışma Modeli¶
Method Invoker veya Context Getter çağrısı iki ayrı akış oluşturur:
sequenceDiagram
participant Flow as Node-RED Akışı
participant Panel as trexMes Panel
participant Returns as Method Returns
Flow->>Panel: Method Invoker / Context Getter (HTTP)
Flow->>Flow: Responser → akış kapandı
Note over Panel: Panel işlemi gerçekleştiriyor...
Panel->>Returns: Cevap geldi (ayrı HTTP isteği)
Returns->>Flow: Yeni akış başladı
Neden iki akış?
İlk akış çağrıyı yapar ve Responser ile kapanır. Panel asenkron olarak işlemi tamamladıktan sonra Node-RED'e geri döner; bu noktada Method Returns yeni bir akış başlatır. Uzun süren işlemler bu sayede HTTP timeout'a düşmeden çalışır.
Tipik Kullanım — Method Invoker ile¶
flowchart LR
A[Form Events<br/>btnSave click] --> B[Method Invoker<br/>OrderService.SaveOrder]
B --> C[Responser]
D[Method Returns<br/>SaveOrder] --> E[switch<br/>success?]
E -->|true| F[Custom Form<br/>Onay]
E -->|false| G[Custom Form<br/>Hata]
F --> H[Responser]
G --> H
style A fill:#ccffcc,color:#000
style B fill:#ccffcc,color:#000
style C fill:#ccffcc,color:#000
style D fill:#ccffcc,color:#000
style F fill:#ccffcc,color:#000
style G fill:#ccffcc,color:#000
style H fill:#ccffcc,color:#000
Tipik Kullanım — Context Getter ile¶
flowchart LR
A[Business Events<br/>OnOrderStarted] --> B[Context Getter<br/>ProductionPlanStateContext]
B --> C[Responser]
D[Method Returns<br/>ProductionPlanStateContext] --> E[function<br/>Plan verisini işle]
E --> F[Custom Form<br/>Bilgi ekranı]
F --> G[Responser]
style A fill:#ccffcc,color:#000
style B fill:#ccffcc,color:#000
style C fill:#ccffcc,color:#000
style D fill:#ccffcc,color:#000
style F fill:#ccffcc,color:#000
style G fill:#ccffcc,color:#000
style G fill:#ccffcc,color:#000
Node adı eşleşmesi
Method Returns node'undaki methodname seçimi, kaynak node'un name alanı ile birebir eşleşmelidir.
- Method Invoker adı
"SaveOrder"ise →methodname = SaveOrder - Context Getter adı
"ProductionPlanStateContext"ise →methodname = ProductionPlanStateContext
Çıkış Mesajı¶
Panelden dönen veri msg.payload içinde gelir. İçerik kaynağa göre değişir:
Örnek Senaryo — Context Getter ile Üretim Verisi Okuma¶
Business Events—OnShiftStartedtetiklenir.Context Getter—AnalysisStateContextsorgusu yapılır,WorkStationId = 5.Responser— ilk akış kapanır.- Panel context verisini hazırlar ve Node-RED'e gönderir.
Method Returns(adı:AnalysisStateContext) tetiklenir.functionnode —msg.payload.ShiftOeePercentokunur.Custom Form— OEE değeri ekranda gösterilir.
Sık Karşılaşılan Hatalar¶
Method Returns hiç tetiklenmiyor
- Kaynak node adı ile
methodnameeşleşiyor mu? Method Invoker/Context Getternode'u akışta deploy edildi mi?- Panel tarafında ilgili servis/context aktif mi?
Yanlış veri geliyor
Akışta birden fazla Method Invoker veya Context Getter varsa her birinin name alanının benzersiz olduğundan emin olun.
İlgili¶
- Method Invoker — Servis method'u çağıran node
- Context Getter — StateContext sorgulayan node
- Display Methods — Panel'in method tetiklemelerini yakala