OrchestraHCM Şema Fonksiyonları
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.
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| COM | No 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.
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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| SETDATA | SELBEGDA | SY-DATUM | {"and":[{"==":[{"var":"PageEvent"},"Get"]},{"==":[{"var":"WfId"},"0"]}]} | Sayfa ilk yüklenirken SELBEGDA alanını günün tarihi yapar. | |
| SETDATA | SELENDDA | SY-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.
Ş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.
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| CONT | Mevcut konteyner verisini hata ayıklama için yürütme günlüklerine yazdır | ||||
| PAGE | Mevcut 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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| SETVS | approveButton | true | {"==":[{"var":"WFID"},0]} | Onayla düğmesini sadece WFID 0 ise (taslak durumu) göster | |
| SETVS | btnSubmit | true | {"and":[{"var":"UserName"},{"==":[{"var":"COMP.length"},3]}]} | Kullanıcı varsa ve tam 3 şirketi varsa gönder düğmesini göster | |
| SETVS | adminPanel | true | {"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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| SETRQ | managerApproval | true | {"==":[{"var":"WFID"},0]} | WFID 0 ise (taslak durumu) yönetici onaylaını zorunlu yap | |
| SETRQ | justification | true | {"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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| SETENB | submitButton | true | {"==":[{"var":"WFID"},0]} | Gönder düğmesini sadece WFID 0 ise (taslak durumu) etkinleştir | |
| SETENB | editFields | false | {"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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| SETOP | companySelect | {"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 | ||
| SETOP | personnelAreaSelect | {"TABLE":"WERKS","VALUE":"Werks","TEXT":"Name1","WHERE":"{\"==\": [{\"var\": \"Bukrs\"}, \"001\"]}"} | Personel alan seçeneklerini şirket kodu 001'e göre filtrele | ||
| SETOP | dynamicSelect | SY-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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| MSG | Important Notice | Application submitted successfully. | {"and":[{"==":[{"var":"PageEvent"},"Post"]},{"==":[{"var":"PostFieldName"},"REFRESH"]},{"==":[{"var":"Langu"},"EN"]}]} | Yenile düğmesine tıklandığında İngilizce başarı mesajı göster | |
| MSG | Error Occured | Application 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.
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| 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.
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| SETPROP | ORGTREE | {"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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| TABLE | COMP | Tüm şirket verisini Container[COMP] içine yükle | |||
| TABLE | COMP | Bukrs = "001" | Şirket verisini JSONata kullanarak Bukrs='001' ile filtrele ve yükle | ||
| TABLE | PEOPLE | Tüm çalışanları Container[PEOPLE] içine yükle | |||
| TABLE | PEOPLE | Werks = "1000" | Personel alanı 1000'den çalışanları JSONata kullanarak yükle | ||
| TABLE | WERKS | Bukrs = "001" | UserPersonnelAreas | Filtrelenmiş 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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| INFTY | 0001 | INS | {"Pernr":"123","Massn":"01","Massg":"01","Stat2":"3"} | true | Temel personel işlemi (infotype 0001) statik veri ile ekle |
| INFTY | 0000 | INS | {"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 |
| INFTY | 1 | UPD | {"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.
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| DELPERNR | 123 | Personel numarası 123'ü (00000123 olarak doldurulacak) tüm PA tablolarından ve PEOPLE tablosundan sil | |||
| DELPERNR | page.Elements[FieldName = 'PERNR'].Data | PERNR sayfa elementi verisinden personel numarasını sil | |||
| DELPERNR | 00001234 | {"==":[{"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).
| Func | Par1 | Par2 | Par3 | Par4 | Comment |
|---|---|---|---|---|---|
| PEOPLE | PEOPLE 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 |