Döngüler. Excel dosyalarını içe aktar
Döngüleri iş süreçlerinde kullanma. Excel dosyalarından verileri okuyun.
Daha sonraki süreci anlamak için teoriye biraz dalmak ve döngülerin prensibini anlamak gerekir. Daha önce tüm süreçlerimiz sadece ileriye gidiyordu. Belirli bir çatal seçebilirlerdi ( If-Else ve Switch bloklarında), ancak her bloğun yalnızca bir kez yürütüleceğinden emindik; geri dönüş olmayacaktı.
döngüler
Döngüler, belirli bir bölümü birden çok kez tekrarlama yeteneği sağlar. İşlem, seçilen blok dizisinin tekrar tekrar yürütülmesi için oluşturulur. Döngüyü sonlandırma koşulu sağlanana kadar.
AppMaster size üç farklı türde döngü kullanma yeteneği verir. Çalışmalarının prensibi kesinlikle aynıdır. Döngüyü sonlandırma koşulu, onları birbirinden ayıran tek şeydir.
- Loop Tüm döngülerin en basiti. Times (Integer) parametresi, verilen döngünün kaç kez yürütülmesi gerektiğine dair sabit bir değer ayarlar.
- While loop . Belirli bir koşul sağlanana kadar çalışacak bir döngü. Bu koşul, Condition (Boolean) parametresinde belirtilir. Her döngünün başında Condition değeri kontrol edilir; True ise, döngü yürütülür; False ise, döngü durur. Limit (Integer) parametresi, döngünün sonsuza kadar çalışmamasını sağlamak için döngünün tekrar sayısı limitini ayarlar. Ulaşıldığında, Condition değerine bakılmaksızın döngü sona erer.
- For each loop . Dizilerle çalışmak üzere tasarlanmış döngü. Girdi olarak bir dizi alır ve her dizi öğesi üzerinde belirli bir işlem gerçekleştirmenize olanak tanır. Dizideki eleman sayısı kadar çalışır.
Her çevrimde iki çıkış akışı vardır.
- Loop Body . Döngü gövdesinin kendisi. Gerekli sayıda tekrarlanacak olan bu işlem.
- Completed . Döngü bittiğinde iş parçacığı çalışacaktır. Döngü tamamlandıktan sonra ne yapılacağını belirtir. Bu arada, herhangi bir döngü, ilk koşulların karşılanması beklenmeden komutla tamamlanabilir. Bunu yapmak için, Break Loop bloğunu doğru yerde kullanmanız yeterlidir. Akışı hemen Completed aktaracaktır.
Read XLSX File
xlsx dosyasının analizi için Read XLSX File bloğunu kullanacağız. Çalışma prensibi, For each loop bloğuna neredeyse benzer. Tablo dosyasını bir dizi dizi olarak temsil eder. Ve sırayla her satır da bir dizidir, ancak zaten verilen satırın bir sütun dizisidir.
xlsx dosyasının kendisi de benzer bir biçimde sunulur. İlk sütun bölümün adını, ikinci sütun ise bu bölümün içerdiği bilgileri içerir. Aynı zamanda, bilgilerin yazıldığı satırı da önceden bilemeyiz; herhangi bir keyfi yerde görünebilir. Bu örnekte, biyografi ikinci satırda ve oturum açma sekizinci satırda belirtilmiştir, ancak satırlar ve bunların yazıldığı sıra herhangi biri olabilir.
İş süreci, girdi parametresi olarak bir dosya alarak başlar. Lütfen iletilen dosyanın veri türü, yani dosya kimliği olduğunu ve tüm dosyanın olmadığını unutmayın. Aynı dosyayı Read XLSX File bloğuna geçiriyoruz.
Bu durumda Each row , Loop Body bir analoğudur. Bu, döngünün xlsx dosyasındaki satır sayısı kadar yürütüleceği anlamına gelir. Aynı zamanda, her döngüde, şu anda hangi satırın işlendiği ( Row number ) ve bu satırda hangi sütunların olduğu ( Row columns ) hakkında bilgi alırız.
Görevimiz, her satırın ilk hücresini kontrol etmektir. "Giriş" veya "Bio" yazan bir hücre bulmayı umuyoruz. Bu şekilde, gerekli bilgileri içeren bir sütun bulduğumuzu anlayacağız.
Bunu yapmak için indeksi 0 olan bir Array Element bloğuna ihtiyacımız var. Bu şekilde stringin ilk hücresinin içeriğini elde ederiz. Bundan sonra, istenen eşleşmeyi bulmak için Switch bloğunu kullanıyoruz (Login, Bio).
Böyle bir eşleşme bulunamazsa, döngü sonraki satırı kontrol ederek bir sonraki yinelemeye gider. Bulunursa, bu satırın ikinci hücresinin ihtiyacımız olan bilgileri içermesi gerektiğini anlıyoruz ve bu bilgiyi almak için Array Element bloğunu tekrar (ancak dizin 1 ile) kullanıyoruz.
Sadece bu bilgileri kaydetmek için kalır. Sonuçta, bunu hemen yapmazsanız, döngü devam edecek ve alınan veriler kaybolacaktır.
Değişkenler
Bu durumda en iyi çözüm değişkenleri kullanmak olacaktır. Anlamları, belirli değerlerin bir bloktan diğerine hemen transfer edilmemesi, ancak bellekte saklanması ve gerektiğinde kullanılması gerçeğinde yatmaktadır.
Bunun için iki blok var:
- Variable blok. Herhangi bir sayı, dize veya hatta bir dizi nesne olabilir. Bu bloğun kendisinin hiçbir şey yapmadığını anlamak önemlidir; giriş parametresi yoktur. Sadece bellekte bir değerin yazılması için bir yer ayrıldığını, daha sonra tekrar başvurma ve bu değeri bulma olanağını duyurmaya hizmet eder.
- Set Variable bloğu, bir değişkene yeni bir değer yazmak için tasarlanmıştır.
Bizim durumumuzda, String türünde iki değişken tanımlayacağız ve bulunan değerleri bir yerde Login ve ikinci Bio'da bunlara yazacağız. Döngünün sonunda, sadece bu değişkenlerden gelen değeri uç bloğa geçirmemiz gerekiyor.
Şimdi, tamamlanmış iş süreci için bir uç nokta oluşturma ve böylece onu web uygulaması ön ucunda kullanıma sunma zamanı.
Son sonuç
Sonuç olarak iş süreci şu şekilde olmalıdır:
Uygulamanın oluşturulmasını tamamlamak için son rötuşlar vardır. Ön uç iş sürecine geri dönelim ve bitirelim. İhtiyacımız var:
- Sunucuya kaydetmek için xlsx dosya modelini iletin.
- Sonucu genişletin ve dosya kimliğini alın.
- Bu kimliği önceden oluşturulmuş POST /xlsx-data/ uç noktasına iletin
- Uygun alanlarda görüntülemek için alınan verileri kullanın (ve ayrıca Disable parametresini sıfırlamak, düzenleme olanağını açmak için).
Her şey doğru yapıldıysa, dosyalardan bilgi yükledikten sonra son sürüm böyle görünmelidir.