FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

Geçici klasörden dosyayı filtrelemek mümkün mü?

+5 oy
506 kez görüntülendi

Herkese selamlar,

 

Arkadaşlar,bir ERP yazılımından günde bir defa geçici klasöre bir .xls dosyası atılacak ancak ismi değişken olacak (Hep aynı isimde olsun istedim ancak yapamadılar).

 

Örnek; 

Dün: d7b98cb1.xls

Bugün: d7558fd4.xls

Yarın: d78nse0.xls

 

Dosyanın sabit özellikleri: İlk iki hane (d7) ve uzantı (.xls)

 

 

İyi haber;klasör içinde bu uzantıya sahip tek dosya bu olacak.Yani aslında bir liste içinde .xls uzantılı dosyayı bulup tam adını almalıyım.(BE_FileListFolder ile içindekiler listelendi.) 

 

Yardımlarınızı bekliyorum,şimdiden teşekkürler.....

 

 

17, Aralık, 2020 Scripts kategorisinde Şemsi Saracoğlu (135,570 puan) tarafından soruldu

1 cevap

+2 oy
 
En İyi Cevap

Selam ederim Şemsi Hocam;

Bir betikte ilk önce;
Send event
ile temp klasöründe 
tempPath\dir d7*.xls /b > xlsListe.txt
cmd komutunu kullandıralım. Sonra, FM de
bir tabloda bir metin alanı
oluşturup daha sonra
Import Records
fonksiyonu kullanalım. Specify data source da tempPath\xlsListe.txt yani xlsListe.txt dosyasının yolunu tanımlayalım. Specify import order de de FM de oluşturduğumuz metin alanını seçerek dosya içeriğini import edecek şekilde yapılandıralım. Hepsi bu kadar.

 

tempPath : xls dosyalarının bulunduğu klasörün tam yolu 

( C:\Users\kullaniciAdi\AppData\Local\Temp )

 

Aşağıda örnek dosyayı da paylaşıyorum

Örnek Dosya

Not: Betiği çalıştırmadan önce temp klasörünün tam yolunu yazmayı unutmayın. Ben tanımlama yaparken 
C:\Users\kullaniciAdi\AppData\Local\Temp 
şeklinde yazdım. 

 

Send Event, BaseElements ve MBS eklentileri ile yeni düzenleme.

Örnek Dosya 2

 

 

Herkese hayırlı günler dilerim

Saygılarımla

17, Aralık, 2020 ercanD (73,590 puan) tarafından cevaplandı
18, Aralık, 2020 ercanD tarafından düzenlendi
Ercan Hocam,mükemmel bir örnek hazırlamışsınız,teşekkürler.Ancak ilk sorun; Geçici klasördeki dosya değiştikten sonra hala ilk dosyayı görmesi.Ama bundan daha önemlisi "Send Event" kullanmadan çözmem gerekiyor.

Yine de çok iyi kurgulanmış bu script için tekrar teşekkür ederim.
Teveccühünüz hocam. İlk sorun da bir şekilde halledilebilir. Ancak Send event fonksiyonunu kullanmadan... Biraz düşünmek lazım. Hocam MBS kullanma imkanınız var mı?
Ercan Hocam,dosyanızdaki kurgu,izlediğim yolu tamamen değiştirmemi de sağlayabilir.İlk başta sunucudaki tek dosyada herşeyi  halletmeyi denemek istiyordum.Ancak bu örneğin yardımıyla biri excel dosyanın bulunduğu yerde diğeri sunucuda çalışan ve kayıtları lokalden sunucuya transfer eden iki ayrı dosyayı da düşünebilirim.Bu sayede "Send Event" kullanmam mümkün olabilir.
Şemsi Hocam, bir örnek daha yaptım bir inceleyin isterseniz.

http://filemakerturk.com/?qa=blob&qa_blobid=16940663105237885700
Yukarıda bir mesajda
"Geçici klasördeki dosya değiştikten sonra hala ilk dosyayı görmesi"
demişsiniz. Eğer Send event kullanmayacaksanız ERP çilere ilgili güne ait xls dosyası oluşturmadan önce temp i temizlettirebilirler yada sadece d7 ile başlayan xls dosyalarını sildirebilirler ise gönderdiğim bu örnek işinize yarayabilir diye düşünüyorum.
Şayet send event kullanırsanız o eski dosyaları temizleme imkanımız var.
Selam ederim Şemsi Hocam;

Yukarıda ana cevaba Örnek Dosya 2 adı altında Send Event fonksiyonu, BaseElements ve MBS eklentileri ile yeni düzenleme yaparak ekledim. Umarım işinizi çözer.


Herkese hayırlı günler dilerim
Saygılarımla.
Ercan Hocam eyvallah,işleri biraz daha kolaylaştıracak ve daha stabil hale getirecek bir kaç dış müdahele adımı ekledim.Önce xls dosyayı geçici klasörden kopyalayan daha sonra da benim istediğim bir klasöre attıktan sonra silen bir batch dosya hazırladım.Bu kopyalama ve silme işlemleri zamanlı olacak.Önce 07:00'de kopyalayacak,sonra 07:30'da silecek.

Ben de FM ile 07:15'de araya girip dosyadaki verileri import edecek,düzenleyecek ve sonra da transfer edeceğim.Tüm işlemler otomatik zamanlı olacak.

Harika destekleriniz için teşekkür ederim.
...