Ana içeriğe geç

Atama

Bir organizasyon değerini (kullanıcı, pozisyon, departman, meslek ya da değişken) bir kaynaktan alıp akıştaki bir hedef nesneye toplu olarak kopyalayan adımdır. Örneğin akışı başlatan kişiyi bir pozisyon nesnesine, bir departmanın yöneticisini bir onaycı pozisyonuna ya da bir değişkenin değerini başka bir değişkene yazmak için kullanılır.

Bu adım, değer atamalarını ayrı bir Fonksiyon bloğunda elle yazmak yerine, tasarımcıda kaynak ve hedef seçilerek yapılandırılan hazır bir atama kutusudur.

Ne zaman kullanılır?

Sonraki adımlarda kullanılacak bir org değerini (onaycı, departman, meslek) önceden bir nesneye yerleştirmek istediğinizde kullanın. Tek bir kişiyi doğrudan onaycı yapacaksanız çoğu zaman Pozisyon nesnesinin kendi atama metotları yeterlidir; Atama adımı, kaynak nesneden hedef nesneye kopyalama mantığı gerektiğinde (ör. "şu departmanın yöneticisini şu onay pozisyonuna ata") veya birden çok atamayı tek bir adımda toplamak istediğinizde tercih edilir.

Ayarlar

Atama nesnesi seçildiğinde tasarımcıda kaynak/hedef eşlemesi ve hata davranışı düzenlenir:

AyarAçıklama
AssignmentNameAtamanın adı.
SourceTypeKaynağın türü (kullanıcı / pozisyon / departman / meslek / değişken / sabit).
SelectedObjectName / SelectedObjectPropertyKaynak olarak okunacak nesne ve özelliği.
TargetObjectName / TargetObject / TargetObjectTypeCodeDeğerin yazılacağı hedef nesne ve türü.
ConstantUser / ConstantPosition / ConstantDepartment / ConstantProfessionSabit değer atanacaksa ilgili org sabiti.
ConstantValueSabit metin değeri.
SelectedManagerProfile / ManagerAccordingToTitleYönetici profili / unvana göre yönetici seçim seçenekleri.
ResumeOnErrorAtama sırasında hata olursa akışın durmak yerine devam edip etmeyeceği.
ErrorOptions / ErrorDescriptionObjectNameHata yönetimi yapılandırması ve hata açıklamasının yazılacağı nesne.

Akıştaki yeri

Atama, akışın ortasında çalışan bir işlem adımıdır: önceki adım tamamlandığında yapılandırılan kaynak değeri okunur, hedef nesneye yazılır ve akış bir sonraki adıma geçer. Genellikle bir onay adımından (ör. Pozisyon) önce konumlandırılır; böylece o adıma gelindiğinde onaycı çoktan atanmış olur.

ResumeOnError ile yapılandırıldığında, kaynak değer bulunamadığında akış durmadan ilerleyebilir.

Kod örnekleri

Atama adımının kod arayüzünde TARGET (hedef) nesne parametre olarak verilir; iki argümanlı metotlarda sıra (kaynak, hedef) şeklindedir. Bu, bir nesnenin kendisini değiştiren Pozisyon Set* metotlarının tersidir. Sunucu (akış) kodu turuncu çerçevelidir.

Akışı başlatan kişiyi bir pozisyona atama

// Akışı başlatan kullanıcıyı hedef pozisyona yaz
p_Atama.SetUserFromFlowInitiator(p_Mudur);

// Atamayı çalıştır
await p_Atama.Assign();

Bir departmanın yöneticisini onay pozisyonuna atama

// Kaynak departmanın yöneticisini hedef pozisyona kopyala
p_Atama.SetDepartmentManagerUserFromDepartment(p_Departman, p_Mudur);
await p_Atama.Assign();

Değişkenden değişkene değer kopyalama

// Bir değişkenin değerini başka bir değişkene yaz
p_Atama.SetVariableFromVariable(p_Kaynak, p_Hedef);
await p_Atama.Assign();
Çalışma zamanı idiomu doğrulanmamış

Yukarıdaki çağrı sırası (Set* ile eşleme yapıp ardından Assign() çağırma) metot imzalarından çıkarılmıştır; çalışan bir akıştan birebir teyit edilmemiştir. TODO: doğrulanacak.

İpuçları

  • Hedef nesne her zaman parametredir: SetUserFromFlowInitiator(p_Mudur) çağrısı, akış başlatıcıyı p_Mudur pozisyonuna yazar.
  • İki argümanlı metotlarda sıra (kaynak, hedef)'tir, ör. SetUserFromVariable(p_Degisken, p_Pozisyon).
  • Atama tamamlanması için Assign() çağrılır; bu metot Task döndürür, dolayısıyla await ile beklenmelidir.
  • Sayaç mantığı gerektiğinde değişkenler IncrementVariable / DecrementVariable ile bir artırılıp azaltılabilir.
  • Kaynak değerin bulunmama ihtimaline karşı ResumeOnError ayarını değerlendirin; aksi halde atama başarısız olduğunda akış durabilir.
Doğrulanmış kod arayüzü (FlowAssign)

Temel metot: Task Assign()

Atama metotları (Void): SetConstantDepartment(FlowDepartment), SetConstantPosition(FlowPosition), SetConstantProfession(FlowProfession), SetConstantUser(FlowPosition), SetConstantVariable(Variable), SetDepartmentFromFlowInitiator(FlowDepartment), SetDepartmentFromOther(FlowDepartment, FlowDepartment), SetDepartmentFromPosition(FlowPosition, FlowDepartment), SetDepartmentFromVariable(Variable, FlowDepartment), SetDepartmentManagerUserFromDepartment(FlowDepartment, FlowPosition), SetManagerDepartmentFromDepartment(FlowDepartment, FlowDepartment), SetManagerUserAccordingToProfession(FlowPosition, FlowPosition, FlowAssign), SetManagerUserFromUser(FlowPosition, FlowPosition), SetPositionFromOther(FlowPosition, FlowPosition), SetPositionFromVariable(Variable, FlowPosition), SetProfessionFromFlowInitiator(FlowProfession), SetProfessionFromPosition(FlowPosition, FlowProfession), SetProfessionFromVariable(Variable, FlowProfession), SetUserFromFlowInitiator(FlowPosition), SetUserFromFlowInitiatorManager(FlowPosition), SetUserFromImpersonatingUser(FlowPosition), SetUserFromLogonUser(FlowPosition), SetUserFromVariable(Variable, FlowPosition), SetVariableFromDepartment(FlowDepartment, Variable), SetVariableFromPosition(FlowPosition, Variable), SetVariableFromProfession(FlowProfession, Variable), SetVariableFromProjectName(Variable), SetVariableFromVariable(Variable, Variable), SetVariableProfession(FlowProfession, FlowProfession), SetVariableUser(Int32, FlowPosition), IncrementVariable(Variable), DecrementVariable(Variable)

Tasarımcı özellikleri: AssignmentName, SourceType, SelectedObjectName, SelectedObjectProperty, TargetObjectName, TargetObject, TargetObjectTypeCode, ConstantUser, ConstantPosition, ConstantDepartment, ConstantProfession, ConstantValue, SelectedManagerProfile, ManagerAccordingToTitle + miras alınan ResumeOnError, ErrorOptions, ErrorDescriptionObjectName (BaseErrorManagedApiStep).

Sınıf: FlowAssign : BaseErrorManagedApiStep<FlowAssignProperties>.

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