ERD

Logo Object AddStopTransForAWOrd fonksiyonundan hata alıyoruz.

  Tiger/Logo Objects

LogoObject ile durdurulmuş bir iş emrini yeniden başlatırken (16335 : İş emrini başlatmak için önce iş emri durdurulmalıdır.) hatası alıyoruz.

Kullandığımız fonksiyon: 

AddStopTransForAWOrd(IS_EMRI_REFERANSI, DURMA_NEDENI_REF, 0, 0, TARIH, SAAT, ACIKLAMA)


Bunun nedeni objenin kullandığı bir sorguda index kullanılmamış olması gibi görünüyor.

sorgu:

SET ROWCOUNT 0


SELECT

STOPTRANS.LOGICALREF, STOPTRANS.PRODORDREF, STOPTRANS.DISPLINEREF, STOPTRANS.OPREF, STOPTRANS.WSREF, STOPTRANS.CAUSEREF, STOPTRANS.STOPDATE, STOPTRANS.STOPTIME, STOPTRANS.STARTDATE, STOPTRANS.STARTTIME, STOPTRANS.STOPDURATION, STOPTRANS.AFFECTSCOST, STOPTRANS.AFFECTSPLAN, STOPTRANS.TRANSEXP, STOPTRANS.LINENR, STOPTRANS.WSPARTREF, STOPTRANS.ACTIVEPARTNUM

FROM

LG_217_STOPTRANS STOPTRANS WITH(NOLOCK)

WHERE

(STOPTRANS.DISPLINEREF = 28379)



LG_217_STOPTRANS tablosunda iki tane index tanımlı.

I217_STOPTRANS_I1 ve I217_STOPTRANS_I2


bazı sql sunucular birinci index i bazıları ikinci index i otomatik olarak seçiyor.

ikinci indexi seçtiği zaman bu hata oluşuyor.

sorgu sıralamayı;[DISPLINEREF] ASC, [CAUSEREF] ASC olarak yapıyor.

obje sorgu sonucunda son kayda bakarak işlem yapıyor gibi görünüyor.

birden fazla durma işlemi uygulandı ise ve son durdurma olarak [CAUSEREF]'i küçük bir kayıt girildi ise

hiçbir zaman son kayıt olarak gelmiyor.


Konu ile ilgili farklı bir görüşünüz yok ise düzeltme talep etmekteyiz.


Teşşekürler. İyi çalışmalar.








YUNUS DEMİRBAŞ

Merhabalar , 


Logo tarafında bir geliştirme henüz gerçekleşmediği için geçici olarak aşağıdaki şekilde çözebilirsiniz. 


_STOPTRANS tablosundaki _STOPTRANS_I2 index kaydına en başa LOGICALREF asc olarak sıralama ekleyip yeniden index build ederseniz sorun çözülecektir.


07/12/21 10:50

Cevap vermek için giriş yapmanız gerekmektedir.