Ana içeriğe geç

Method Returns

Method Returns
Inputs: 0
Outputs: 1
Kategori: trexMes service

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:

{
  "_msgid": "abc123",
  "payload": {
    "methodName": "SaveOrder",
    "returnValue": {
      "success": true,
      "orderId": 4521
    },
    "executionTime": 245
  }
}
{
  "_msgid": "abc123",
  "payload": {
    "PlanId": 1042,
    "PlanQuantity": 500.0,
    "PlanTotalProductionQuantity": 312.0,
    "LeftAmountForPlanCompletion": 188.0,
    "PlanWorkStartDate": "2026-05-19T08:00:00Z",
    "PlanNote": "Öncelikli sipariş"
  }
}

Örnek Senaryo — Context Getter ile Üretim Verisi Okuma

  1. Business EventsOnShiftStarted tetiklenir.
  2. Context GetterAnalysisStateContext sorgusu yapılır, WorkStationId = 5.
  3. Responser — ilk akış kapanır.
  4. Panel context verisini hazırlar ve Node-RED'e gönderir.
  5. Method Returns (adı: AnalysisStateContext) tetiklenir.
  6. function node — msg.payload.ShiftOeePercent okunur.
  7. Custom Form — OEE değeri ekranda gösterilir.

Sık Karşılaşılan Hatalar

Method Returns hiç tetiklenmiyor

  • Kaynak node adı ile methodname eşleşiyor mu?
  • Method Invoker / Context Getter node'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