Otomasyon Araç Kiti: Hazır Betik İskeleti, Hata Günlüğü ve Teslim Kontrol Listesi

Vaka: Cuma Akşamı Çalışmayan Rapor Betiği

Not: Aşağıdaki şirket, kişiler ve olay örnek bir senaryodur; gerçek bir kuruma ait değildir.

Kuzey Lojistik adlı orta ölçekli bir şirkette operasyon uzmanı Elif, her cuma depolardan gelen sevkiyat Excel dosyalarını elle birleştirip yöneticisi Murat Bey'e haftalık özet hazırlıyordu. Kursta öğrendiği openpyxl ve pathlib ile bir betik yazdı. Betik Elif'in bilgisayarında kusursuz çalışıyordu.

Sorun nasıl ortaya çıktı?

Elif iki haftalığına izne çıktı ve işi meslektaşı Kaan'a devretti. Kaan betiği kopyaladı ama ilk çalıştırmada hata aldı: dosya yolları Elif'in masaüstüne sabitlenmişti, e-posta şifresi kodun içinde yazıyordu, örnek girdi dosyası yoktu ve hata mesajı yalnızca teknik bir izleme çıktısından ibaretti. Daha kötüsü, betik önceki çıktıların üzerine yazdığı için geçen haftanın raporu kayboldu.

Alınan kararlar

  • Önce değer sorusu: Elif, işin otomasyona değip değmediğini kontrol listesiyle yeniden tartıştı.
  • Betik yeniden iskelete oturtuldu: ayarlar tek yerde toplandı, hata günlüğü eklendi.
  • Teslim kontrol listesi uygulandı: betik ancak Kaan'ın kendi başına çalıştırabildiği gün teslim sayıldı.
  • Zamanlanmış görev kuruldu: cuma günü rapor kendiliğinden üretilir oldu.

1. Standart betik iskeleti

Bölümİçeriği ve amacı
Ayar bölümüGirdi klasörü, çıktı klasörü, günlük dosyası adı ve e-posta adresleri en üstte tek yerde durur; yollar koda gömülmez.
Argüman almaargparse ile girdi klasörü, çıktı klasörü ve deneme modu (dry-run) seçeneği komut satırından verilir.
Günlük (logging)Bir günlük dosyasına zaman damgalı bilgi, uyarı ve hata satırları yazılır; ekrana da kısa özet basılır.
main fonksiyonuAsıl iş burada akar; küçük fonksiyonlar çağrılır. Dosya en altta, if __name__ == "__main__": koşuluyla başlatılır.
try/exceptBeklenen hatalar (dosya yok, sütun yok, ağ yok) anlamlı Türkçe mesajla günlüğe yazılır; betik sıfırdan farklı çıkış koduyla kapanır.

Hata mesajı kalıbı: Hangi dosya, hangi adım, ne yapılması gerekir. Örnek: "depo_ankara.xlsx içinde 'Adet' sütunu bulunamadı; sütun başlığını kontrol edin."

2. Otomasyona değer mi? Karar kontrol listesi

SoruOtomasyon lehine işaret
Sıklıkİş haftalık, günlük veya her ay tekrarlanıyor mu?
SüreElle yapmak her seferinde fark edilir zaman alıyor mu?
Hata riskiElle yaparken kopyalama ve unutma hatası çıkıyor mu?
Kuralların netliğiKuralları madde madde yazabiliyor musunuz?
Veri kaynağının kararlılığıDosya düzeni veya web sayfası sık değişmiyor mu?

Çoğu cevap evetse yazın; iki veya daha fazlası hayırsa önce süreci sadeleştirin.

3. Teslim kontrol listesi

  • Sabit yollar ayar bölümüne taşındı.
  • Şifreler ve anahtarlar ortam değişkenlerinde tutuluyor, kodda ve README'de yok.
  • Örnek girdi dosyası klasörde duruyor.
  • README'de kurulum ve bir kullanım örneği var.
  • İlk çalıştırmadan önce girdi dosyalarının yedeği alındı.
  • Deneme modu var: dosyaya yazmadan ne yapacağını ekrana döker.
  • Teslim alan kişi betiği tek başına çalıştırıp denedi.

4. Klasör ve arşiv düzeni önerisi

  • Ana klasör: otomasyon_haftalik_rapor
  • Alt klasörler: girdi, cikti, arsiv, gunluk, betik
  • Çıktı adı: haftalik_rapor_2026-10-02.xlsx (yıl-ay-gün sırası, Türkçe karakter ve boşluk yok)
  • Arşiv kuralı: Üzerine yazmak yerine eski çıktı arsiv klasörüne taşınır.

5. Windows Görev Zamanlayıcı adımları

  • Görev Zamanlayıcı'yı açın ve Temel Görev Oluştur'u seçin; açıklayıcı bir ad verin.
  • Tetikleyiciyi seçin (örneğin haftalık, cuma 17.00).
  • Eylem olarak Program başlat'ı seçin; program kısmına sanal ortamdaki python.exe'nin tam yolunu yazın.
  • Bağımsız değişkenlere betiğin tam yolunu ve gerekli seçenekleri ekleyin.
  • Başlangıç yeri alanına betik klasörünü yazın; göreli yollar için bu çok önemlidir.
  • Görev oluşunca elle çalıştırıp günlük dosyasını kontrol edin.
  • Bilgisayarın o saatte açık olduğundan emin olun.

6. Çalıştırma özeti e-posta kalıbı

Konu: Haftalık sevkiyat raporu çalıştırma özeti - [tarih]

Merhaba [Ad] Bey/Hanım, haftalık rapor betiği [saat] itibarıyla tamamlandı. İşlenen dosya sayısı: [sayı]. Atlanan veya hatalı dosya: [sayı, varsa adları]. Çıktı dosyası: [klasör ve ad]. Dikkat edilmesi gereken nokta: [varsa tek cümle]. Ayrıntılar günlük dosyasındadır. İyi çalışmalar.

Sonuç ve çıkarılan dersler

Elif iznindeyken rapor kimse müdahale etmeden üretildi; Kaan yalnızca özet e-postayı okudu. Elif döndüğünde betiği teslim kontrol listesiyle bir sayfalık standart hâline getirdi ve ekipteki diğer küçük araçlara da uyguladı.

  • Çalışan betik ile devredilebilir betik aynı şey değildir.
  • Günlük ve anlamlı hata mesajı, sizi değil betiği konuşturur.
  • Yedek ve deneme modu ucuz bir sigortadır.

Tartışma soruları

  • Sizin iş akışınızdaki hangi tekrarlayan görev, karar kontrol listesinden en çok evet alıyor?
  • Bir betiği devrettiğinizde ilk hangi sabit yol veya gizli bilgi sorun çıkarırdı?
  • Çalıştırma özeti e-postasında yöneticinizin görmek isteyeceği tek satır ne olurdu?

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol