Troia Scripts Library

DIALOG.SALT70D001.BEFORE();
DIALOG.SALT70D001.AFTER();
COMPANY = '01';
DOCTYPE = 1;
DOCSTAT = 4;
VALIDFROM = FIRSTDATEINMONTH('01',GETYEAR(SYS_CURRENTDATE));
VALIDUNTIL = LASTDATEINMONTH('03',GETYEAR(SYS_CURRENTDATE));
DIALOG.SALT70D001.SEARCH();
COPY FIELDS REPORTLIST INTO TMPTABLE;

LOOP AT REPORTLIST 
BEGIN
	APPEND ROW TO TMPTABLE;
	MOVE-CORRESPONDING REPORTLIST TO TMPTABLE;
ENDLOOP;

/*
Trace ile çekilen rapordaki veri tiplerini getirir.
TRACEON;
DUMP REPORTLIST;
TRACEOFF;
*/

SET TMPTABLE TO TABLE TMPTABLE;

Bir dialogtan dönen veri tablosunu başka bir tabloda kullanmamız gerekebilir. Bu durumda yukarıdaki scripti DEVT11 de test edebilirsiniz. #DialogdanRaporÇekme

INSERT INTO IASNUMRANGEPARTVALS SELECT A.*
FROM OTHERDBNAME.DBO.IASNUMRANGEPARTVALS A
WHERE A.CLIENT = '00'
AND A.COMPANY = '01'
AND NOT EXISTS (SELECT B.CLIENT
FROM IASNUMRANGEPARTVALS B 
WHERE B.CLIENT = A.CLIENT
AND B.COMPANY = A.COMPANY
AND B.NUMRANGE = A.NUMRANGE);

Test DB’de çalışırken Canlı DB’deki bir tablodan veri çekmekilmesi için yukarıdaki scripti kullanabilirsiniz. Yukarıda Canlı’daki numaratörlerin Test DB ile eşitlenmesi içindir. #UpdateDBFromOtherDB

SELECT  DISTINCT IASADRBOOKCONTACT.EMAIL, IASUSERINFGRP.*, IASADRBOOKCONTACT.NAME, IASADRBOOKCONTACT.SURNAME,
    IASADRBKCNTORG.DEPARTMENT  
            FROM IASUSERINFGRP 
            LEFT OUTER JOIN IASUSERS ON (IASUSERS.CLIENT = IASUSERINFGRP.CLIENT 
                AND IASUSERS.USERNAME = IASUSERINFGRP.USERNAME) 
            LEFT OUTER JOIN IASADRBOOKCONTACT ON (IASADRBOOKCONTACT.CLIENT = IASUSERS.CLIENT 
                AND IASADRBOOKCONTACT.CONTACTNUM = IASUSERS.CONTACTNUM) 
            LEFT OUTER JOIN IASADRBKCNTORG ON (IASADRBKCNTORG.CLIENT = IASUSERS.CLIENT 
                AND IASADRBKCNTORG.CONTACTNUM = IASUSERS.CONTACTNUM) 
            WHERE IASUSERINFGRP.CLIENT = SYS_CLIENT
                AND IASUSERINFGRP.INFOGRP = 'SYST40_KullaniciGrupAdi'
                AND IASADRBOOKCONTACT.EMAIL != '' 
                ORDER BY IASUSERINFGRP.USERNAME

SYST40’da oluşturulan kullanıcı grubundan mail adresini çekmek için yukarıdaki scripti kullanabilirsiniz.

SELECT IASADRBKCNTORG.COMPANY 
	FROM IASUSERS 
	LEFT OUTER JOIN IASADRBKCNTORG ON (IASADRBKCNTORG.CLIENT = IASUSERS.CLIENT 
		AND IASADRBKCNTORG.CONTACTNUM = IASUSERS.CONTACTNUM) 
	WHERE IASADRBKCNTORG.CLIENT = '00' 
		AND IASUSERS.USERNAME = SYS_USER

Login olan kullancının firma bilgisi almak için yukarıdaki scripti kullanabiliriz.

SELECT USERNAME 
	FROM IASUSERINFGRP 
	WHERE INFOGRP = 'Kullanici_Grup';


LOOP AT IASUSERINFGRP 
BEGIN

	IF SYS_USER == IASUSERINFGRP_USERNAME THEN
		SET CHKISDELETE TO SHOW;
		RETURN;
	ELSE
		CONTINUE;
	ENDIF;

ENDLOOP;

Dialogun “AFTER” metoduna yukarıdaki scripti ekleyerek login olan kullanıcıya göre toolları gizleme/gösterme fonksiyonunu kullanabilirsiniz.

Leave a Comment