Ek III - Sıkça Sorulan SorularAppendix III - Frequently Asked Questions
TROIA Platformu ve TROIA Programlama Dili büyük araçlardır, bu yüzden çok fazla zorlayıcı nokta vardır. Bu bölüm, zaman kazanmanız için sıkça sorulan sorulara faydalı ve pratik yanıtlar vermeyi amaçlar.TROIA Platform and TROIA Programming Language are huge tools, so there are too many challenging points. This section aims to give useful and practical responses to frequently asked questions to make you save time.
Soru: Build number'ım nedir?Question: What is my build number?
Bir TROIA application developer'ı veya system administrator'ı olarak, build number'ınızı bilmek önemlidir. Çünkü yeni sürümlerle bazı yeni özellikler ortaya çıkar veya bug'lar düzeltilir. Ve ihtiyacınız olan özellikleri build'inizin destekleyip desteklemediğini bilmelisiniz. Geçerli bir deployment için tüm TROIA platform component'lerinin aynı build number'ına sahip olması gerekir.As an TROIA application developer or system administrator, it is important to know your build number. Because some new features revealed or bugs are fixed with new releases. And you must know whether your build supports the features that you need. For a valid deployment all TROIA platform components must have same build number.
Build number'ınızı login screen'de veya about dialog'undan okuyabileceğiniz ilk yöntemFirst method that you can read your build number on login screen or from about dialog
Zaten login olduysanız, client ve server build number'larınızı Settings->Deployment'tan görüntüleyebilirsiniz. Bu tab'da deployment'ınız hakkında bazı diğer faydalı bilgileri de alabilirsiniz.If you are aready logged in you can view your client and server build numbers from Settings->Deployment . At this tab you can also get some other useful information about your deployment.
602, 603, 604, 802, 803, CANIAS ERP sürümlerinin isimleridir ve hepsi büyük bir TROIA Platform build'i üzerinde çalışacak şekilde tasarlanmıştır. (602, 3.08.xx xxxxxx üzerinde çalışır, 603, 5.01.xx xxxxxx üzerinde çalışır, 604, 5.02.xx xxxxxx üzerinde çalışır, 802, 8.02 YY.MM.DD-NN üzerinde çalışır, 803, 8.03 YY.MM.DD-NN üzerinde çalışır). Bu yüzden; 602, 603, 604, 802, 803, TROIA Platformu için geçerli build isimleri değildir.602, 603, 604, 802, 803 are names CANIAS ERP versions and all are designed to run on a major TROIA Platform build. (602 works on 3.08.xx xxxxxx, 603 works on 5.01.xx xxxxxx, 604 works on 5.02.xx xxxxxx, 802 works on 8.02 YY.MM.DD-NN, 803 works on 8.03 YY.MM.DD-NN). So; 602, 603, 604, 802, 803 are not valid build names for TROIA Platform.
23.02.10-01 build'lerinden sonra, TROIA Platformu CANIAS ERP'nin 8.02, 8.03, 9.03 sürümlerini destekler.After 23.02.10-01 builds, TROIA Platform supports 8.02, 8.03, 9.03 versions of CANIAS ERP.
Soru: Integer'ların BölünmesiQuestion: Division of Integers
Integer'lar bölünürken, sonuç ilgili sayıların data type'larına bağlıdır. Hem dividend hem divisor integer olduğundan, TROIA Java'daki gibi integer division yapar ve ondalık kısmı atar.When dividing integers, the result depends on the data types of the numbers involved. Since both dividend and divisor are integers, TROIA performs integer division and discards the decimal portion as in Java.
OBJECT:
DECIMAL RESULT;
RESULT = 1 / 2; // result is 0 (not 0.05)
RESULT = 1.0 / 2; // result is 0.5
RESULT = 1 / 2.0; // 0.5Ondalık bir sonuç elde etmek için, sayılardan en az birinin DECIMAL olması gerekir. Lütfen yukarıdaki örnek kodu inceleyin. Bu örnekte dividend ve divisor hardcode'dur, bunlar integer variable olduğunda davranış aynıdır.To get a decimal result, at least one of the numbers must be a DECIMAL. Please review the sample code above. In this example dividend and divisor are hard coded, behaviour is same when these are integer variables.
Soru: Geçersiz .cls ve .dlg Dosyaları Nasıl SilinirQuestion: How to Delete Invalid .cls and .dlg Files
Bazı durumlarda, var olmayan class'lar için .dlg ve .cls dosyalarını silmeniz gerekir. Bu durumda kullanıcının filepath'indeki tüm dosyaları silip tüm class ve dialog'ları convert&save edebilirsiniz. Ama convert&save operation'ı için yeterli zamanınız yoksa veya dosyaları silemiyorsanız, redundant dosyaları temizlemek için aşağıdaki kodu çalıştırabilirsinizIn some cases, you need to delete .dlg and .cls files for non-existing classes. In this case you can delete all files in user’s filepath and convert&save all class and dialogs. But if you don’t have enough time for convert&save operation or can not delete files you can run the code below to clear redundant files
OBJECT:
TABLE FOLDERLIST,
STRING FOLDERPATH,
STRING FILENAME,
STRING FPATH,
TABLE FLIST;
SELECT SYSPATH
FROM IASUSERS
WHERE CLIENT = SYS_CLIENT
AND USERNAME = SYS_USER;
STRINGVAR3 = '';
/*************************** CLASS ***************************/
OBJECT:
STRING CLASSFOLDER;
CLASSFOLDER = IASUSERS_SYSPATH + 'jcls/';
FILELIST CLASSFOLDER TO FOLDERLIST;
LOOP AT FOLDERLIST
BEGIN
FOLDERPATH = CLASSFOLDER + FOLDERLIST_NAME + '/';
CLEAR ALL FLIST;
FILELIST FOLDERPATH TO FLIST;
LOOP AT FLIST
BEGIN
FILENAME = FOLDERLIST_NAME + REPLACE(FLIST_NAME, '.cls', '');
SELECT CLASS
FROM SYSCLSHEAD
WHERE CLIENT = SYS_CLIENT
AND CLASS = FILENAME;
IF SYSCLSHEAD_ROWCOUNT == 0 THEN
FPATH = FOLDERPATH + FLIST_NAME;
STRINGVAR3 = STRINGVAR3 + 'DELETEFILE ' + SYSSINGLEQUOTE + FPATH + SYSSINGLEQUOTE + TOCHAR(10);
DELETEFILE FPATH;
ENDIF;
ENDLOOP;
ENDLOOP;
/*************************** DIALOGS ***************************/
OBJECT:
STRING DIALOGFOLDER;
DIALOGFOLDER = IASUSERS_SYSPATH + 'jdlg/';
FILELIST DIALOGFOLDER TO FOLDERLIST;
STRINGVAR2 = SYS_STATUSERROR;
LOOP AT FOLDERLIST
BEGIN
FOLDERPATH = DIALOGFOLDER + FOLDERLIST_NAME + '/';
CLEAR ALL FLIST;
FILELIST FOLDERPATH TO FLIST;
LOOP AT FLIST
BEGIN
FILENAME = REPLACE(FLIST_NAME, '.dlg', '');
FILENAME = FOLDERLIST_NAME + STRSTR(FILENAME, 1, STRLEN(FILENAME) -1);
SELECT DIALOG
FROM SYSDIALOGS
WHERE CLIENT = SYS_CLIENT
AND DIALOG = FILENAME;
IF SYSDIALOGS_ROWCOUNT == 0 THEN
FPATH = FOLDERPATH + FLIST_NAME;
STRINGVAR3 = STRINGVAR3 + 'DELETEFILE ' + SYSSINGLEQUOTE + FPATH + SYSSINGLEQUOTE + TOCHAR(10);
DELETEFILE FPATH;
ENDIF;
ENDLOOP;
ENDLOOP;
CLEARCLASSCACHE();
CLEARDIALOGCACHE();
RETURN;