Form Mimarisi
Formlar birbirine bağlı beş bileşenden oluşur:- Form = Meta veriler, görünürlük ayarları ve dağıtım yapılandırması içeren konteyner
- FormElement = Form içindeki bireysel alanlar ve UI bileşenleri
- FormSite = Formları belirli site ve yıllara bağlayan dağıtım bağlantıları
- FormSubmission = Kullanıcı gönderim oturumu konteyneri
- FormElementSubmission = Bireysel alan değerleri ve veri depolama
Form Ayarları
Her form,updateForm çağrısında doğrulanan bir settings objesi taşır. Alanların tamamı opsiyoneldir; göndermediğiniz değerler organizasyon varsayılanına veya formdaki mevcut değere geri döner.
Halka açık gönderim seçenekleri
allowPublicSubmissionEdits:trueolduğunda halka açık katılımcılar mevcut gönderimlerini (veya taslaklarını) tekrar açıp düzenleyebilir; göndermezseniz platformun varsayılan düzenleme politikası uygulanır.allowPublicSubmissionSupportingDocuments: Halka açık gönderimlerde destekleyici doküman çekmecesini açar ve kullanıcıların kanıt dosyası yüklemesine izin verir. Tanımsız bırakmak varsayılan belge politikasını korur.
İş akışı geçersiz kılma
workflowOverride, tek bir type anahtarına sahip opsiyonel bir objedir. Desteklenen değerler DIRECT_APPROVAL ve REQUIRE_APPROVAL (aşağıda açıklanan iş akışlarıyla aynı). Nesneyi göndermemek veya null iletmek formun organizasyon düzeyindeki varsayılan iş akışını kullanmasını sağlar.
Planlama ve hatırlatmalar
Farklı periyot türleri için veri girişi ve onay fazlarındaki son tarihleri ve hatırlatma davranışını yapılandırmak üzeredefaultSchedules kullanın.
Form düzeyinde varsayılan planlar
defaultSchedules objesi periyot türüne (MONTHLY, QUARTERLY, YEARLY) göre anahtarlanır ve her iş akışı fazı için planlar içerir:
dataEntry: Katılımcı son tarihlerini kontrol ederapproval: Onaylayıcı son tarihlerini kontrol eder
dueDate: Esnek bir son tarih belirtimi (aşağıdaki türlere bakın)reminders: Opsiyonel hatırlatma yapılandırma bloğu:enabled: Hatırlatmaları etkinleştirmek/devre dışı bırakmak için boolean değeroffsets: Son tarihten kaç gün önce hatırlatma gönderileceğini belirten{ type: "days-before"; days: number }nesneleri dizisi.daysdeğeri 1-30 aralığında olmalıdır.enabledtrueolduğunda zorunludur;enabledfalseolduğunda göz ardı edilir.
Son tarih belirtim türleri
dueDate alanı altı esnek format destekler:
| Tür | Açıklama | Örnek |
|---|---|---|
fixed-day | Periyodun belirli bir günü (1-31, ay uzunluğuna göre sınırlanır) | { type: "fixed-day", day: 15 } |
weekday-occurrence | Periyodun N. hafta günü (weekday: 0=Paz - 6=Cmt) | { type: "weekday-occurrence", weekday: 1, occurrence: 2 } (2. Pazartesi) |
last-weekday | Periyottaki bir hafta gününün son tekrarı | { type: "last-weekday", weekday: 5 } (son Cuma) |
relative-days | Periyot bitiminden N gün sonra (0-60) | { type: "relative-days", daysAfterPeriodEnd: 15 } |
relative-weekday | Periyot bitiminden sonraki N. hafta günü | { type: "relative-weekday", weekday: 5, occurrence: 1 } (sonraki ilk Cuma) |
specific-date | Sabit takvim tarihi (yalnızca YEARLY) | { type: "specific-date", month: 4, day: 15 } (15 Nisan) |
specific-dateyalnızca YEARLY periyotlarla kullanılabilir.monthdeğeri 1-12 aralığındadır (1 = Ocak). Ay uzunluğunu aşan günler (örn. Şubat’ta 31. gün) otomatik olarak son geçerli güne sınırlanır.relative-daysiçindaysAfterPeriodEnddeğeri 0-60 aralığındadır (0 = dönem bitişi günü).- Son tarih ve hatırlatma hesaplamaları tutarlılık için UTC kullanır.
Element düzeyinde plan geçersiz kılma
Bireysel form elementleri,FormElement.schedule sütununda bir plan depolayarak form düzeyindeki varsayılanları geçersiz kılabilir. Bu, formun geri kalanı varsayılan planı kullanırken belirli alanlar için farklı son tarihler belirlemenize olanak tanır.
Form Türleri ve Dağıtım
İç formlar (özel)- Ekip üyeleri verileri doğrudan platformda girer
- CSV toplu içe/dışa aktarma yetenekleri
- Otomatik veri gönderimi için API entegrasyonu
- Silinmemiş durumdayken her FormSite için tek gönderim
- Otomatik kaydetme UX’i görünüme göre değişebilir
- Her FormSite için benzersiz bir public URL
- Site/yıl başına birden çok gönderim
- Alan bazında onay (iş akışına göre)
- Marka başlığı (logo/renk) meta verileriyle
Akıllı Form Özellikleri
Koşullu Mantık: Kullanıcı yanıtlarına dayalı dinamik form davranışı- YEARLY: Tek periyot birimi (1)
- MONTHLY: 12 periyot birimi (1–12)
- QUARTERLY: 4 periyot birimi (1–4)
- TIMESTAMP: Zaman damgalı giriş;
recordedAtzorunlu, periyot birimi ay’dan türetilir
- total: Zaman içinde toplanabilen toplam değerler (ör. emisyon)
- snapshot: Zaman noktasındaki değerler (ör. faktör), dağıtılmaz
Gelişmiş Form Oluşturucu
Görsel editör: Form yapısı için sürükle-bırak arayüzü- Oluştururken gerçek zamanlı önizleme
- Element yeniden sıralama ve iç içe geçirme
- Formlar arasında copy/paste
- CSV’den oluşturma veya mevcut formu kopyalama
- CSV içe aktarma (toplu)
- Kopyala & özelleştir
- Manuel oluşturucu
- Sürükle-bırak koşul oluşturma
- Birden fazla koşul türü (eşittir, içerir, büyüktür, vb.)
- AND/OR mantığı ile iç içe koşul grupları
- Gerçek zamanlı doğrulama ve önizleme
Veri Toplama İş Akışı
1. Form Tasarımı: Elementler ve mantıkla form yapısı oluşturun 2. Dağıtım: Belirli site ve yıllara atayın- Doğrudan platform girişi
- Doğrulama ile CSV içe aktarma
- API entegrasyonu
- Halka açık form gönderimleri (açıksa)
- Gerekli alan zorunluluğu
- Veri türü ve format doğrulaması
- Çapraz alan doğrulama kuralları
- Birim uyumluluğu kontrolleri
- CSV/XLSX dışa aktarma
- API uç noktaları
- Dashboard entegrasyonu
- Özet istatistikler
İş Akışı ve Onaylar
Formlar organizasyonun varsayılan iş akışını devralır; form bazında ayarlarla (workflowOverride) değiştirilebilir:- DIRECT_APPROVAL: Yeni değerler APPROVED olarak kaydedilir
- REQUIRE_APPROVAL: Yeni değerler COMPLETED olarak kaydedilir ve onay bekler
REQUIRE_APPROVAL modunda gönderim arayüzünde şu ek kontroller yer alır:
- Satır içi onay kontrolleri: Her dönem satırı için Anında Onayla / Reddet / Geri Al düğmeleri ve canlı durum rozetleri bulunur. Reddedilen değerler, kullanıcı yeni veri girdiğinde otomatik olarak tekrar COMPLETED durumuna döner.
- Toplu işlemler: Aylık veya çeyreklik NUMBER / SINGLE_CHOICE / MULTIPLE_CHOICE / LONG_TEXT / SHORT_TEXT alanlarında tüm dolu dönemleri tek tıkla onaylayıp reddetmek mümkündür. ACTIVITY alanları da aynı dönem içindeki tüm satırlar için toplu onaya devam eder.
- Durum eşitlemesi: Durum değişiklikleri kullanıcı arayüzünde anında görünür ve raporlara gecikmesiz aktarılır.
DIRECT_APPROVAL modundaysa bu düğmeler gizlenir, yeni kayıtlar otomatik olarak APPROVED durumuna alınır.
Destekleyici Dokümanlar
Her element satırından açılabilen bir destekleyici doküman çekmecesi vardır:- Özel gönderimler: Dosyalar doğrudan ilgili FormElementSubmission kaydına eklenir. Yetkili kullanıcılar yeni dosya yükleyebilir, var olanları indirebilir ve silebilir.
- Halka açık gönderimler: Çekmece açıldığında, oturum açmadan dosya yükleyebilmek için taslak bir gönderim oluşturulur veya mevcut taslak kullanılır. Çekmece daha önce yüklenen dosyaları listeler; silme işlemleri yalnızca yetkili iç ekip tarafından yapılır.
- Sayaçlar ve göstergeler: Ataş simgesi, bağlı dosya sayısını rozet şeklinde gösterir; yükleme ve silme işlemleri anında yenilenir.
Geliştirici Modu
Geliştirici modu açıkken gönderim ekranında cURL kopyala eylemi görünür. Bu buton, ilgili element kimliği, site, yıl, periyot birimi ve mevcut değeri içeren çalıştırmaya hazır bircurl komutunu panoya kopyalar. Böylece ekipler REST entegrasyonlarını hızlıca başlatabilir veya manuel payload hazırlamadan test edebilir.
Görev İlerlemesi Takibi
Kullanıcılar veri girişi yaparken arayüz iyimser (optimistic) ilerleme metrikleri üretir:- Veri girişi ilerlemesi: İçinde bulunulan aya kadar olan doldurulmuş/doldurulması gereken alan sayısını hesaplar; hatırlatma günlerine göre geciken ayları vurgular.
- Onay ilerlemesi: Onay gerektiren formlarda, sıradaki onaylanması gereken değerlerin kalan/toplam sayısı ve gecikmedeki dönemler gösterilir.
Halka Açık Form Ayarları
allowPublicSubmissionEditsallowPublicSubmissionSupportingDocuments
Notlar
- FormElement anahtarları bir form içinde benzersizdir
- ACTIVITY elementleri TIMESTAMP periyodunu kullanamaz
- Özel formlarda her FormSite için tek (silinmemiş) FormSubmission bulunur
Gerçek Dünya Örnekleri
Enerji Takip Formu:- Aylık elektrik tüketimi (kWh birimi ile NUMBER)
- Enerji kaynağı seçimi (SINGLE_CHOICE: Şebeke/Güneş/Rüzgar)
- Koşullu yenilenebilir detayları (sadece yenilenebilir seçilirse gösterilir)
- Destekleyici dokümantasyon yüklemesi (FILE_UPLOAD)
- Çeyreklik atık akışları (birden fazla NUMBER alanı ile GROUP)
- Atık işleme yöntemi (MULTIPLE_CHOICE)
- Yönlendirme oranı hesaplaması (özel formülle ACTIVITY)
- Site-özel imha prosedürleri (LONG_TEXT)
- Şirket bilgileri (SHORT_TEXT alanları)
- Kapsam 1, 2, 3 emisyonları (tCO2e birimleri ile NUMBER)
- Aktivite tabanlı hesaplamalar (karmaşık emisyonlar için ACTIVITY)
- Aylık veri toplama (MONTHLY periyot ayarı)
Operasyonel Faydalar
- Tutarlılık: Tüm site ve zaman periyotları boyunca aynı form yapısı
- Verimlilik: Otomatik kaydetme, toplu işlemler ve şablon yeniden kullanımı
- Uyumluluk: Yerleşik doğrulama ve denetim izleri
- Ölçeklenebilirlik: Yüzlerce site ve binlerce gönderimi işleyin
- Esneklik: Geçmiş verileri kaybetmeden formları uyarlayın

