Bekir Karadeniz
Bekir Karadeniz
CTO
23 Aralık 2025

OrchestraHCM Şema Fonksiyonları


OrchestraHCMGeliştirmeŞemalar

OrchestraHCM şemaları, iş akışlarınızı ve uygulamalarınızı hiç kod yazmadan geliştirmenizi sağlar. Şemalar birden fazla fonksiyondan oluşur. Bu fonksiyonlar dört parametreden oluşmaktadır. Şemalar ile kendi uygulama ekranlarınızı, iş akışlarınızı kolaylıkla oluşturabilirsiz. Günlükleri gerektiinde açarak yapılan hesaplamaları da takip edebilirsiniz.

Bu makalede, her bir şema fonksiyonunu ve kullanım örneklerini bulabilirsiniz.

Şema Fonksiyonları

Her fonksiyon etiketine tıklayarak fonksiyon açıklamasına ve kullanım örneklerine gidebilirsiniz.

Not: Şema fonksiyonları ve parametreleri zamanla güncellenebilir. Tüm güncellemeler bu makaleye aktarılacaktır, OrchestraHCM şema düzenleyisinden de her fonksiyona ve bu dokümana ulaşabilirsiniz.

COM

Şema içerisinde yorum satırları eklemek için kullanılır. Bu fonksiyon, şema akışını etkilemez ve sadece geliştiricilere veya yöneticilere bilgi vermek amacıyla kullanılır. Yorum satırları, şemanın amacını, işleyişini veya belirli bölümlerini açıklamak için idealdir.

FuncPar1Par2Par3Par4Comment
COMNo use.No use.No use.No use.Şema hakkında yorumlar, süreç üzerinde etkisi yoktur

AUTH

Şema yetki kontrolü için kullanılır. Bu fonksiyon, belirli bir rol veya izin setine sahip kullanıcıların şemayı çalıştırmasına izin verir veya engeller. AUTH fonksiyonu, şemanın güvenliğini sağlamak ve yalnızca yetkili kullanıcıların belirli işlemleri gerçekleştirmesini garanti altına almak için kullanılır.

Satır No
Fonksiyon
Par1
Par2
Par3
Par4
Deact
Yorum
0010
AUTH
EMPLOYEE
Sadece personel rolüne sahip kullanıcılar çalıştırabilir.
ya da kullancı bazlı yetki kontrolü için:
Satır No
Fonksiyon
Par1
Par2
Par3
Par4
Deact
Yorum
0010
AUTH
bekirk@hrsp.com.tr
USER
Par2 USER girildiğinde sadece Par1 de belirtilen kullanıcı çalıştırabilir.

SETHDR

Ekran başlığını değiştirmek için kullanılır. Bu fonksiyon, kullanıcı arayüzünde dinamik başlıklar oluşturmak istediğinizde idealdir. SETHDR fonksiyonu, kullanıcı deneyimini kişiselleştirmek ve şema etkileşimini artırmak için kullanılır.

SETDATA

Ekran elemanlarına veri atamak için kullanılır. Bu fonksiyon, kullanıcı arayüzündeki form alanlarını veya diğer veri gösterim bileşenlerini dinamik olarak güncellemek istediğinizde idealdir.

Par1 e alan adını, Par2 atamak istediğiniz değeri, Par4 ise JSONLogic koşulunu belirtir (opsiyonel - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
SETDATASELBEGDASY-DATUM{"and":[{"==":[{"var":"PageEvent"},"Get"]},{"==":[{"var":"WfId"},"0"]}]}Sayfa ilk yüklenirken SELBEGDA alanını günün tarihi yapar.
SETDATASELENDDASY-MON30{"and":[{"==":[{"var":"PageEvent"},"Get"]},{"==":[{"var":"WfId"},"0"]}]}Sayfa ilk yüklenirken SELENDDA alanını ayın son günü yapar.

PJSON

Konteyner JSON verilerini JSONata sözdizimiyle işler ve sonucu Par2'de tanımlanan konteyner değişkenine yerleştirir. Par2'ye "R" yazarsanız, konteyner verileri değiştirilir. Sayfa ve konteyner nesneleri arasında veri kopyalanabilir. Par1, JSONata biçiminde olmalı ve bağlam, sayfa ve konteyner nesnelerini içermelidir. Par4 yalnızca konteyner verileriyle JSONogic gibi yazılmalıdır. Par4 koşul parametresi yalnızca konteyner ile çalışır.

Satır No
Fonksiyon
Par1
Par2
Par3
Par4
Deact
Yorum
0010
PJSON
COMP[Bukrs="001"]
selectedCompany
Bukrs="001" olan şirketleri seçer ve sonucu Container[selectedCompany] içine yerleştirir.
0010
PJSON
$count(COMP)
companyCount
COMP satır sayısını sayar ve sonucu Container[companyCount] içine yerleştirir.
0010
PJSON
page.Elements[FieldName="myField"].Data
MyFieldData
page.Elements[FieldName="myField"].Data değerini alır ve sonucu Container[MyFieldData] içine yerleştirir.

PRINT

Şema günlüklerine bilgi yazmak için kullanılır. Bu fonksiyon, şema çalışması sırasında belirli olayları, değişken değerlerini veya hata mesajlarını kaydetmek için idealdir. PRINT fonksiyonu, şema yürütme sürecini izlemek ve hata ayıklamak için kullanılır.

FuncPar1Par2Par3Par4Comment
PRINTCONTMevcut konteyner verisini hata ayıklama için yürütme günlüklerine yazdır
PRINTPAGEMevcut sayfa tasarım verisini hata ayıklama için yürütme günlüklerine yazdır

SETVS

Elementi görünürlüğünü JSONLogic koşuluna göre ayarlar. Par1: Alan adı, Par2: görünürlük (true/false), Par4: JSONLogic koşulu (opsiyonel - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
SETVSapproveButtontrue{"==":[{"var":"WFID"},0]}Onayla düğmesini sadece WFID 0 ise (taslak durumu) göster
SETVSbtnSubmittrue{"and":[{"var":"UserName"},{"==":[{"var":"COMP.length"},3]}]}Kullanıcı varsa ve tam 3 şirketi varsa gönder düğmesini göster
SETVSadminPaneltrue{"in":["ADMIN",{"var":"Roles"}]}Kullanıcının ADMIN rolü varsa yönetici panelini göster

SETRQ

Elementin zorunluluk durumunu JSONLogic koşuluna göre ayarlar. Par1: Alan adı, Par2: zorunlu (true/false), Par4: JSONLogic koşulu (opsiyonel - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
SETRQmanagerApprovaltrue{"==":[{"var":"WFID"},0]}WFID 0 ise (taslak durumu) yönetici onaylaını zorunlu yap
SETRQjustificationtrue{"in":["MANAGER",{"var":"Roles"}]}YÖNETİCİ rolüne sahip kullanıcılar için geçerçeği zorunlu yap

SETENB

Elementin etkin/pasif durumunu JSONLogic koşuluna göre ayarlar. Par1: Alan adı, Par2: etkin (true/false), Par4: JSONLogic koşulu (opsiyonel - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
SETENBsubmitButtontrue{"==":[{"var":"WFID"},0]}Gönder düğmesini sadece WFID 0 ise (taslak durumu) etkinleştir
SETENBeditFieldsfalse{"in":["READONLY",{"var":"Roles"}]}SADECE_OKU rolüne sahip kullanıcılar için düzenleme alanlarını pasifleştir

SETOP

Container'daki verilere göre bir element için dropdown/select seçenekleri ayarlar. Par1: Alan adı, Par2: TABLE, VALUE, TEXT alanları ve opsiyonel WHERE filtresi içeren JSON seçenekleri nesnesi VEYA seçenekleri temizlemek için 'SY-EMPTY', Par4: JSONLogic koşulu (opsiyonel - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
SETOPcompanySelect{"TABLE":"COMP","VALUE":"Bukrs","TEXT":"Butxt"}COMP tablosundan şirket dropdown seçeneklerini ayarla, değer olarak Bukrs ve görüntü metni olarak Butxt kullan
SETOPpersonnelAreaSelect{"TABLE":"WERKS","VALUE":"Werks","TEXT":"Name1","WHERE":"{\"==\": [{\"var\": \"Bukrs\"}, \"001\"]}"} Personel alan seçeneklerini şirket kodu 001'e göre filtrele
SETOPdynamicSelectSY-EMPTY{"==":[{"var":"ClearOptions"},true]}ClearOptions konteyner değişkeni true olduğunda dropdown'daki tüm seçenekleri temizle

MSG

Par4'teki JSONLogic koşuluna göre kullanıcıya bir mesaj gönderir. Parametreler: Par1: Başlık, Par2: Mesaj Metni, Par3: hata mesajıysa true, aksi takdirde bilgi mesajı olarak kabul edilir, Par4: Koşul (opsiyonel JSONLogic - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
MSGImportant NoticeApplication submitted successfully.{"and":[{"==":[{"var":"PageEvent"},"Post"]},{"==":[{"var":"PostFieldName"},"REFRESH"]},{"==":[{"var":"Langu"},"EN"]}]}Yenile düğmesine tıklandığında İngilizce başarı mesajı göster
MSGError OccuredApplication submission failed.true{"and":[{"==":[{"var":"PageEvent"},"Post"]},{"==":[{"var":"PostFieldName"},"REFRESH"]},{"==":[{"var":"Langu"},"EN"]}]}Yenile düğmesine tıklandığında İngilizce hata mesajı göster

REFRESH

Sayfayı yeniler, Par1'de herhangi bir alan tanımlanmışsa, sadece bu alan yeniden yüklenir. Par4 koşul için JSONLogic ile kullanılır.

FuncPar1Par2Par3Par4Comment
REFRESH{"==":[{"var":"REFRESH_FIELD"},"SUBMIT"]}REFRESH_FIELD "SUBMIT" eşitteyse sayfayı yenile

SETPROP

Par1'de tanımlanan alan için Par4'teki JSONLogic koşuluna göre Par2'deki özellik değerlerini ayarlar.

FuncPar1Par2Par3Par4Comment
SETPROPORGTREE{"PLVAR":"03","DEPTH":"3"}{"==":[{"var":"WFID"},0]}WFID 0 ise (taslak durumu) ORGTREE alanı için PLVAR ve DEPTH özelliklerini ayarla

TABLE

Par1'de tanımlanan tablo verilerini yükler ve aynı anahtarla container'a ekler. Par2 yüklenen verileri filtrelemek için JSONata filtre ifadesi sağlar (container ve page verilerine erişebilir). Par3 container anahtarını belirtir (boş ise model kodunu kullanır). Par4 tablonun ne zaman yükleneceğini belirlemek için koşullar için kullanılabilir. Desteklenen tablo kodları: COMP (Şirketler), WERKS (Personel Alanları), BTRTL (Personel Alt Alanları), PLVAR (Plan Varyantları), PERSG (Çalışan Grupları), PERSK (Çalışan Alt Grupları), P1000 (HRP1000 Organizasyonel Birimler), PEOPLE (Çalışan Ana Verileri).

FuncPar1Par2Par3Par4Comment
TABLECOMPTüm şirket verisini Container[COMP] içine yükle
TABLECOMPBukrs = "001"Şirket verisini JSONata kullanarak Bukrs='001' ile filtrele ve yükle
TABLEPEOPLETüm çalışanları Container[PEOPLE] içine yükle
TABLEPEOPLEWerks = "1000"Personel alanı 1000'den çalışanları JSONata kullanarak yükle
TABLEWERKSBukrs = "001"UserPersonnelAreasFiltrelenmiş personel alanlarını JSONata kullanarak Container[UserPersonnelAreas] içine yükle

INFTY

Infotype tablolarında infotype işlemleri (INSERT, UPDATE, DELETE) gerçekleştirir. Par1: Infotype kodu (4 basamağa doldurulur), Par2: Komut (INS/UPD/DEL), Par3: Veri (JSON nesnesi veya JSONata ifadesi), Par4: Koşul (JSONLogic). Gerekli alanları otomatik doldurur: Aedtm (mevcut tarih), Uname (aktif kullanıcı), Sprps (boş), Seqnr (000), PERNR (8 basamağa doldurulur), Subty (sağlanmadıysa boş), Endda (sağlanmadıysa 9999-12-31), Objps (sağlanmadıysa 1), Begda (sağlanmadıysa mevcut tarih).

FuncPar1Par2Par3Par4Comment
INFTY0001INS{"Pernr":"123","Massn":"01","Massg":"01","Stat2":"3"}trueTemel personel işlemi (infotype 0001) statik veri ile ekle
INFTY0000INS{"Pernr":"$container.EmployeeId","Massn":"$container.ActionType","Massg":"$container.ReasonCode"}{"==":[{"var":"UserRole"},"HR"]}Personel ana kaydını (infotype 0000) container verisiyle JSONata kullanarak ekle, sadece İK kullanıcıları için
INFTY1UPD{"Pernr":"00000123","Massn":"02"}{"==":[{"var":"EditMode"},true]}Düzenleme modunda iken personel işlemini (infotype 0001) güncelle

GOURL

Şema yürütmesini belirli bir URL'ye yönlendirmek için kullanılır. Bu fonksiyon, şema akışını başka bir şema veya uygulama bileşenine aktarmak istediğinizde idealdir. GOURL fonksiyonu, kullanıcı deneyimini iyileştirmek ve şema işleyişini daha esnek hale getirmek için kullanılır.

DELPERNR

Bir personel numarasını tüm PA tablolarından ve PEOPLE tablosundan siler. Par1: Silinecek personel numarası (doğrudan değer, sayfa elementi referansı veya '=' ile JSONata ifadesi destekler). Personel numarası otomatik olarak 8 karaktere sıfırlarla doldurulur. Par4: JSONLogic koşulu (opsiyonel - boş ise her zaman uygulanır). Bu fonksiyon, çalışanın infotype verileri dahil olmak üzere sistemdeki tüm izlerini kaldırır.

FuncPar1Par2Par3Par4Comment
DELPERNR123Personel numarası 123'ü (00000123 olarak doldurulacak) tüm PA tablolarından ve PEOPLE tablosundan sil
DELPERNRpage.Elements[FieldName = 'PERNR'].DataPERNR sayfa elementi verisinden personel numarasını sil
DELPERNR00001234{"==":[{"var":"DeleteConfirmed"},true]}Personel numarası 00001234'ü sadece silme onaylandığında sil

PEOPLE

PA0000, PA0001 ve PA0002 infotype tablolarından PEOPLE tablosunu günceller. Aktif çalışanları (Stat2=3) senkronize eder ve işten çıkan çalışanları (Stat2=0) PEOPLE tablosundan kaldırır. Mevcut tarih itibariyle kiracıdaki tüm aktif çalışanları otomatik olarak işler. Par1: where şartı (şu anda kullanılmıyor), Par4: JSONLogic koşulu (opsiyonel - boş ise her zaman uygulanır).

FuncPar1Par2Par3Par4Comment
PEOPLEPEOPLE tablosunu PA infotype'lardan tüm aktif çalışanlarla güncelle
PEOPLE{"==":[{"var":"PageEvent"},"Load"]}PEOPLE tablosunu sadece sayfa yüklenirken güncelle
PEOPLE{"==":[{"var":"UserRole"},"HR"]}PEOPLE tablosunu sadece İK kullanıcıları için güncelle
OrchestraHCM Şema Fonksiyonları