2016-03-28 21 views
1

Bu işlemdeki programların herhangi birindeki belirli ölçütler karşılanırsa işlemi durdurmanın bir yolu var mı?Tek program yerine tüm işlem akışını sonlandırın

5 SAS programından oluşan bir işlem var. Bu işlem her sabah saat 8'de çalışacak. Ancak, bazen veritabanı yenilenmez ve bu işlem garip rakamlar gönderir.

"İstisna kontrolü" ye ihtiyacım var. 2. programda veritabanını bazı kriterlerle kontrol ediyorum. Hata yoksa, kodun kalan kısmını çalıştırmaya devam edin. Aksi halde, bir bildirim e-postası gönderin ve 2. programı ve tüm sonraki programlarını çalıştırarak STOP yazın.

% 1 iptal ettim iptal ancak geçerli programı sonlandırır. Sonraki programlar etkilenmez .. Her bir programda kontrol yapabilirim ama bu kodu gereksiz kılar ...

Ayrıca google "SAS işlemini sonlandır" da deniyorum, ancak bunların çoğu abort ifadesine işaret etmiyor Yardım ...

+0

Durma ifadesine baktınız mı? – InfiniteFlashChess

+0

% abort abend veya% abort dönüşünü denediniz mi? –

+0

@DominicComtois bu iki tek duraklı oturum .. takip edenler için değil ... Evet denedim .. ve onlar işe yaramıyor .. – Lovnlust

cevap

1

Kuruluş Kılavuzu'nu kullanıyorsanız, bu program mantıksal kapılarla programa dahil edilir. İlk olarak, veritabanı dosyasının geçirilip geçirilmediğini ("geçit programı") belirleyen programda, bir makro değişkeni bu sınama dayalı bir değer atayın. Üste | Muhtemelen bu program sadece başarısız olsanız bile bunu yapmaktan mutlu olduğunuz şeyleri yapar.

İşlem akışı sayfasında, veritabanı dosyasının iletilip geçirilmediğini belirleyen programa sağ tıklayıp 'Durum -> Ekle' seçeneğini seçin.

Ardından Makro Değişkenine dayalı bir koşul ekleyin ve 'eşittir' seçeneğini ve aradığınız değeri kullanın (veya 'büyüktür' veya herhangi bir anlam ifade ediyorsa). Sonra "Sonra bu görevi çalıştır" dan sonraki görevi seçin; ve Else bu görevi çalıştırdıktan sonra diğer seçeneği koydu.

Daha sonra, hangisinden hangisi ileriye doğru hareket ediyorsa, o zaman çalıştırmak istediğiniz programların geri kalanına bağlantılar olmalıdır; İşlemi bitirmemesi gereken şey.

SAS, KB Sample 39995 içinde, karşıdan yükleyebileceğiniz bir örnek proje de dahil olmak üzere, bunun nasıl yapılacağına ilişkin bir örnek verir. Hata koşuluna ulaştığınızda OBS=0 seçeneğini ayarlayabilirsiniz. Bu, SAS'ın çalışmaya devam etmesine izin verecek, ancak çoğu durumda hiçbir şey yapamayacak (OBS=0'dan itibaren, sadece herhangi bir veri kümesinin 0 kaydını etkileyebilecek). Bunun bir şey yapmayacağının bir garantisi olduğundan emin değilim, ama yaptığım her şey yeterliydi. Ayrıca, SAS'ın yeniden bağlandığında otomatik olarak yeniden bağlanmayacak harici libnames ile tüm işlemlerinizi gerçekleştirirseniz, OPTIONS ERRORABEND'u da kullandım.

İlgili konular