Ana içeriğe geç

GetInstance Task

GetInstance Task (type: "19"), hedef workflow'daki tek bir instance'ın tam projeksiyonunu — metadata ve data birlikte — döner. GET /api/v1/{domain}/workflows/{workflow}/instances/{instance} endpoint'inin task karşılığıdır ve trigger task ailesini tamamlar:

TaskTipNe döner
GetInstances15Instance listesi (sayfalama/filtreleme ile)
GetInstanceData13Yalnızca instance data'sı
GetInstance19Tek instance'ın tam projeksiyonu (metadata + data)

Aynı domain'deki sorgular in-process çalışır (HTTP/Dapr atlaması yoktur); farklı domain'e giden sorgular aynı REST endpoint'ini HTTP veya Dapr üzerinden çağırır. Her iki yol da script context'e birebir aynı yanıt şeklini sunar — mapping, instance'ın nerede olduğundan bağımsız tek şekilde yazılır.

Görev Tanımı

Schema: task-definition.schema.json

{
"key": "fetch-order-instance",
"version": "1.0.0",
"domain": "core",
"flow": "sys-tasks",
"flowVersion": "1.0.0",
"tags": ["data-fetch", "workflow-communication"],
"attributes": {
"type": "19",
"config": {
"domain": "sales",
"flow": "order-workflow",
"key": "ORDER-001",
"extensions": []
}
}
}

Konfigürasyon Alanları

AlanTipZorunluVarsayılanAçıklama
domainstringEvet-Hedef workflow domain'i
flowstringEvet-Hedef workflow adı
keystringHayır-Hedef instance'ın business key'i
instanceIdstringHayır-Hedef instance ID'si (GUID formatında)
extensionsstring[]Hayır-Zenginleştirme için dahil edilecek data extension'ları
useDaprbooleanHayırfalseDoğrudan HTTP yerine Dapr servis çağrısı kullan
headersobjectHayır-HTTP header'ları
timeoutSecondsintegerHayır30Timeout süresi (saniye, minimum: 1)
validateSslbooleanHayırtrueSSL sertifika doğrulaması
acceptedStatusCodesstring[]Hayır-Başarılı kabul edilecek hata kodları ("403", "4xx" vb.)

Not: Hedef instance key veya instanceId ile belirtilir. Bu değerler çoğunlukla statik konfigürasyon yerine input mapping içinde dinamik olarak atanır.

Property Erişimi

PropertySetter MetoduAçıklama
TriggerDomainSetDomain(string domain)Hedef domain
TriggerFlowSetFlow(string flow)Hedef flow
KeySetKey(string? key)Hedef instance business key'i
InstanceIdSetInstanceId(string? instanceId)Hedef instance ID'si
ExtensionsSetExtensions(List<string>? extensions)Data extension listesi
HeadersSetHeaders(Dictionary<string, string?> headers)Tüm header'lar
-AddHeader(string key, string? value)Tekil header ekle
-RemoveHeader(string key)Tekil header kaldır
UseDaprSetUseDapr(bool useDapr)Dapr service invocation
ValidateSSLSetValidateSSL(bool validateSSL)SSL doğrulama

Input mapping örneği:

public class FetchOrderInstanceMapping : ScriptBase, IMapping
{
public Task<ScriptResponse> InputHandler(WorkflowTask task, ScriptContext context)
{
var getInstanceTask = task as GetInstanceTask;
getInstanceTask.SetDomain("sales");
getInstanceTask.SetFlow("order-workflow");
getInstanceTask.SetKey(context.Instance.Data.orderKey);
return Task.FromResult(new ScriptResponse());
}

public Task<ScriptResponse> OutputHandler(ScriptContext context)
{
var order = context.Body?.data;
return Task.FromResult(new ScriptResponse { Data = new { order } });
}
}

Standart Yanıt

{
"id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"key": "ORDER-001",
"flow": "order-workflow",
"domain": "sales",
"status": "A",
"currentState": "active",
"createdAt": "2026-07-15T09:30:00Z",
"modifiedAt": "2026-07-20T14:05:00Z",
"data": {
"orderId": "ORDER-001",
"status": "pending",
"amount": 1500
},
"extensions": {}
}

Yanıt Alanları

AlanAçıklama
idInstance ID'si
keyInstance business key'i
flow/domainInstance'ın ait olduğu workflow ve domain
statusInstance durumu
currentStateInstance'ın bulunduğu state
createdAt / modifiedAtOluşturma / son değişiklik zamanı
dataInstance veri nesnesi
extensionsExtension verileri (istendiyse)

İlgili Sayfalar