Skip to main content

Senkronize Edici

Bir kaynak dokümanın (ya da detayın) alanlarını, kurduğunuz alan eşlemesine göre bir hedefe kopyalayan nesnedir. Hedef; başka bir doküman, bir detay (grid), bir veritabanı tablosu veya bir sorgu olabilir. Akış bu adıma ulaştığında eşlenen alanlar kaynaktan okunup hedefe yazılır.

Ne zaman kullanılır?

Bir akış içinde bir dokümandaki verileri başka bir yere taşımanız ya da yansıtmanız gerektiğinde kullanın: form alanlarını bir veritabanı tablosuna aktarmak, bir ana dokümandaki değerleri başka bir dokümana kopyalamak veya bir detay satırlarını hedef bir grid'e geçirmek gibi. Eşlemeyi tek tek alan bazında tanımladığınız için yalnızca seçtiğiniz alanlar aktarılır.

Ayarlar

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

AyarAçıklama
SourceDocumentObjectNameKaynak dokümanın nesne adı.
SourceDetailNameKaynak taraftaki detay (grid) adı.
SourceTypeKaynağın türü (DocumentSynchronizerSourceType).
TargetTypeHedefin türü (DocumentSynchronizerTargetType): doküman, tablo, sorgu vb.
TargetDocumentObjectNameHedef doküman nesnesinin adı.
TargetDetailHedefe yazarken kullanılacak detay (grid) adı.
TargetTableNameHedef veritabanı tablosunun adı.
TargetQueryNameHedef sorgunun adı.
TargetConnectionNameHedef için kullanılacak bağlantı adı.
FieldsKaynak ↔ hedef alan eşleme listesi (List<FlowMatchingOptionsField>).
HideSystemFieldsEşleme arayüzünde sistem alanlarının gizlenmesi.
Value / ValueSourceType / ValueTypeDeğişken kaynaklı değer üçlüsü.
ResumeOnErrorHata olursa akışın durmak yerine devam etmesi (hata yönetimli adım).
ErrorOptions / ErrorDescriptionObjectNameTasarımcının belirlediği ayrıntılı hata yapılandırması.

Akıştaki yeri

Senkronize Edici, akışın akıp giden bir ara adımıdır: önceki adım tamamlanınca eşlenen alanlar kaynaktan hedefe kopyalanır ve akış bir sonraki adıma devam eder. Onay beklemez. Hata yönetimli bir adım olduğu için, kopyalama sırasında bir hata oluşursa ResumeOnError ayarına göre akış ya durur ya da devam eder.

Kod örnekleri

Bu nesne, alan kopyalamayı çalıştıran tek bir Synchronize() metodu sunar. Sunucu (akış) kodu turuncu çerçevelidir.

// Eşlenen alanları kaynaktan hedefe kopyalar (asenkron)
await p_SenkronizeEdici.Synchronize();
note

Yukarıdaki çağrı, sınıf üzerinde doğrulanmış Task Synchronize() imzasına dayanır. Kaynak/hedef ve alan eşlemesi genellikle adımın tasarımcı ayarlarından gelir; bu yüzden çoğu durumda kodla ek bir şey yapmanız gerekmez.

TODO: doğrulanacak — Synchronize() metodunun akış kodundan elle çağrılıp çağrılmadığı ve Value / ValueSourceType / ValueType üçlüsünün tipik kullanımı IDE'de doğrulanmalı.

İpuçları

  • Hedef türünü (TargetType) doğru seçin: doküman, detay, tablo ve sorgu için farklı hedef ayarları (TargetDocumentObjectName, TargetDetail, TargetTableName, TargetQueryName) devreye girer.
  • Bir detaya (grid) yazıyorsanız TargetDetail ile hedef detayın adını belirtin.
  • Fields listesindeki her satır bir kaynak alanını bir hedef alanına bağlar; yalnızca eşlenen alanlar aktarılır.
  • Kopyalama hatasında akışın durmasını istemiyorsanız ResumeOnError ayarını kullanın; bu nesne hata yönetimli bir adımdır.
  • ValueType burada bir enum değil, Nullable<Int32> tipindedir; değişken kaynaklı değer üçlüsüyle (Value / ValueSourceType / ValueType) birlikte kullanılır.
Doğrulanmış kod arayüzü (FlowDocumentSynchronizer)

Taban sınıf: BaseErrorManagedApiStep<FlowDocumentSynchronizerProperties>.

Kaynak özellikleri: SourceDocumentObjectName (String), SourceDetailName (String), SourceType (DocumentSynchronizerSourceType)

Hedef özellikleri: TargetDocumentObjectName (String), TargetTableName (String), TargetDetail (String), TargetQueryName (String), TargetConnectionName (String), TargetType (DocumentSynchronizerTargetType)

Eşleme: Fields (List<FlowMatchingOptionsField>), HideSystemFields (Boolean)

Değer kaynağı: Value (Object), ValueSourceType (Int32), ValueType (Nullable<Int32>)

Metot: Synchronize() → Task

Miras alınan (hata yönetimi): ResumeOnError, ErrorOptions (IFlowErrorOptions), ErrorDescriptionObjectName

Kaynak: synergy-csp references/flow-objects.md (FlowDocumentSynchronizer, [dump-only: çalışma zamanı idiyomu doğrulanmamış]).