Skip to main content

Belge Durumu

Akışa bağlı bir veya birden çok dokümanın durumunu toplu olarak güncelleyen nesnedir. Akış bu noktaya geldiğinde, ayarlarda tanımladığınız dokümanların durumu istenen değere taşınır. Tek tek doküman açıp durumunu değiştirmek yerine, bu adımı kullanarak bir grup dokümanı aynı anda yeni bir duruma getirebilirsiniz.

Ne zaman kullanılır?

Bir akış adımında, sürecin durumunu yansıtacak şekilde doküman durumlarını otomatik değiştirmek istediğinizde kullanın: örneğin onay tamamlandığında ilgili dokümanları "Onaylandı" durumuna almak ya da süreç başında dokümanları "İşlemde" durumuna taşımak gibi. Tek bir formun kontrollerine erişip veri yazmak istiyorsanız bunun yerine Doküman nesnesini kullanın.

Ayarlar

Belge Durumu nesnesi seçildiğinde tasarımcıda şu başlıklar düzenlenir:

AyarAçıklama
DocumentsDurumu güncellenecek doküman(lar)ın listesi (FlowDocumentStateItem öğeleri).
AssignerPositionObjectNameDurum güncellemesini yapan pozisyon nesnesinin adı.

Akıştaki yeri

Belge Durumu, akışın ortasında çalışan bir işlem adımıdır: önceki adım tamamlanınca akış bu nesneye ulaşır, tanımlı dokümanların durumu güncellenir ve bir sonraki adıma geçilir. Bekleme yapmaz; durum güncellemesini uygulayıp akışı ilerletir. Genellikle bir onay adımından sonra, dokümanları sürecin yeni aşamasına taşımak için yerleştirilir.

Kod örnekleri

Belge Durumu nesnesinin durum güncellemesini koddan tetikleyen bir API'si vardır. Sunucu (akış) kodu turuncu çerçevelidir.

caution

Aşağıdaki metotlar derlenir ve nesnede mevcuttur, ancak çalışma zamanındaki kullanım kalıbı örnekle doğrulanmamıştır. Durum güncellemesi normalde nesnenin Documents ayarı üzerinden tasarımcıdan sürülür. TODO: doğrulanacak (IDE'de kod kullanımı teyit edilecek).

Tanımlı dokümanların durumunu güncelleme

// Ayarlardaki Documents listesinde tanımlı tüm dokümanların durumunu uygular
await p_BelgeDurumu.UpdateStates();

Tek bir dokümanı belirli bir duruma getirme

// Belirli bir FlowDocument nesnesini, sayısal durum değerine taşır
await p_BelgeDurumu.UpdateState(p_Dokuman, durumKodu);

İpuçları

  • Toplu güncelleme için dokümanları nesnenin Documents ayarına ekleyin; UpdateStates() bu listeyi işler.
  • UpdateState(FlowDocument, int) ikinci parametre olarak sayısal bir durum değeri (Int32) bekler; durum kodlarını sürecinizdeki tanımlara göre verin.
  • Durum güncellemesini kimin yaptığını belirlemek için AssignerPositionObjectName ayarına ilgili pozisyon nesnesinin adını yazın.
  • Tek bir formun alanlarını okuyup yazmak istiyorsanız bu nesne değil Doküman nesnesi içindir.
Doğrulanmış kod arayüzü (FlowDocumentState)

Taban sınıf: FlowObjectDesigner<FlowDocumentStateProperties> (toplu doküman durumu güncelleyici)

Özellikler: Documents (List<FlowDocumentStateItem>), AssignerPositionObjectName (string)

Metotlar: UpdateState(FlowDocument flowDocument, Int32 state) → Task<Boolean>, UpdateStates() → Task

Kaynak: synergy-csp references/flow-objects.md (FlowDocumentState, [dump-only: doğrulanmış üyeler, çalışma zamanı idiomu teyitsiz]).