|
İşlem Tanımı Temel elemanı (mor > zpro > process > ProcessDef) kendisi doğrudan sayfalarda kullanmak için değil, işlem tanımı elemanları üretmek için kullanılan bir elemandır.
Bir işlem tanım elemanı oluşturmak için aşağıda verilen adımları izleyin:
| 1. | Kütüphanede "mor > zpro > process > ProcessDef" elemanını bulun. |
| 2. | Sürükle ve Bırak yöntemi ile elemanı sayfaya yerleştirin. Bu işlemi yaparken SHIFT tuşuna basmayın. |
| 3. | Elemanın "DZ Kodları" özelliğinde herhangi bir değişiklik yapın. Örneğin bir satırın sağ tarafına ilave boşluklar verin. Bu sayede "DZ Kodları" özelliğin artık kalıt alınmamasını ve sayfadaki eleman üzerinde oluşmasını sağlamış oluruz. Amacımız elemanın bu özelliğini bütünüyle yeniden belirlemek. |
| 4. | Eleman üzerine sağ tıklayın ve bağlamsal menüden "Kütüphane | Elemanı Kütüphaneye Ekle" komutunu verin. |
| 5. | Açılan dosya diyaloğu üzerinde, bir kütüphane dizini seçin ve yeni oluşturulacak olan kütüphane elemanını isimlendirin. |
Eleman kütüphanede oluşturulduktan sonra, eleman dosyasını MoreMotion XML Editörüyle açın gerektiği gibi düzenleyin.
<?xml version="1.0" encoding="UTF-8"?>
<?mmf version="1.1"?>
<dummy name="ProcessDef" basedon="\cpn\ProcessForm\ProcessDef.mmel">
<!-- İkon dosyası -->
<iconfile rules="hid">ikonlar\islemim.bmp</iconfile>
<!-- Yardım dosyası -->
<helpfile rules="hid" helpbm="Islemim">Bilesenim.chm</helpfile>
<!-- İşlem Özellikleri -->
<prop name="myprop" type="string" caption="İşlem Özelliğim"/>
<!-- Gerekli dosyaların konuşlandırma tanımları -->
<reqitems>
<item name="res" target-prefix="\WEB-INF\MM-INF\res\">birimim.res</item>
<item name="jar" target-prefix="\WEB-INF\lib\">bilesenim.jar</item>
</reqitems>
<ctdef>
// ZORUNLU ÖZELLİKLERİN DOĞRULANMASI
%check-required-props('myprop,other-prop')
%vof(standard_process_definitions) // BU SATIRA DOKUNMAYIN
%config(std.config)
</ctdef>
<prop name="config" type="xmldata"><![CDATA[<process name="%vof(_fname + '.' + name)">
<class>mypack.MyProcess</class>
<unitname>myunit</unitname>
<myprop>%vof(myprop)</myprop>
<otherProp>%vof(other-prop)</otherProp>
</process>]]>
</dummy>
|
İşlem sınıfına parametreler geçirebilmek için bunları <prop> elemanı ile tanımlamalısınız.
<prop name="myprop" type="string" caption="İşlem Özelliğim"/>
Bakın Özellik Tipleri.
İşlem parametrelerine girilen değerleri "/WEB-INF/MM-INF/config" altındaki konfigurasyon dosyalarına aktarmak için %config() fonksiyonu kullanılmıştır. Fonksiyonun parametresi gizli bir özelliğin adıdır. Derleme işlemi sırasında std.config özelliğinin değeri içindeki CScipt'ler çözümlendikten sonra olduğu gibi konfigürasyon dosyasına eklenecektir.
Bir İşlem sınıfı bu konfigürasyon parametresine şöyle erişir:
String myprop = callDef.getProcessConfig().getParameter("myprop").stringValue();
İşlem tanım elemanı bir sayfaya yerleştirildikten sonra proje derlendiğinde işlem sınıfı tarafından gerek duyulan dosyaların sunucu üzerindeki hedef dizinlerine kopyalanması gerekir. Hangi dosyaların gerekli olduğunu belirtmek için <reqitems> elemanı kullanılır.
<reqitems>
<item name="res" target-prefix="\WEB-INF\MM-INF\resources\">myunit.res</item>
<item name="jar" target-prefix="\WEB-INF\MM-INF\lib\">mycomp.jar</item>
</reqitems>
|
Hedef dizin üzerinde konuşlandırılması gereken her bir dosya türü için <item> elemanı ile yapılan bir tanıma gerek vardır. "target-prefix" niteliği sunucu üzerindeki hedef dizini belirtir. Örneğin, İşlem Tanım elemanı ile aynı dizin altında bulunan mycomp.jar dosyası
\WEB-INF\MM-INF\lib dizinine kopyalanacaktır.
Aşağıdaki kod parçası, MoreMotion'in İşlem Yöneticisi tarafından çağrılacak olan İşlem Sınıfının adını tanımlamaktadır.
<class>mypack.MyProcess</class>
mypack.MyProcess sınıfı, MoreMotion'in org.moremotion.process.Process veya org.moremotion.process.QueryProcess ara yüzlerinden birini gerçeklemiş olan bir java sınıfı olmalıdır.
Bakın Detaylar.
Burada belirlenen isim İşlem Sınıfları tarafından createMessage() metodu ile oluşturulan mesajlar için temel niteleyici olarak kullanılır. Örneğin, eğer, birim adı "birimim" ise ve aşağıdaki metod çağrısı ile bir mesaj oluşturulusa:
createMessage("MESSAGE_ID_1",null,null)
o zaman:
| 1. | "MESSAGE_ID_1" e ait mesaj metni myunit.res dosyasından alınacaktır. |
| 2. | Mesaj veri kaynağının adı myunit_messages, içeriği ise aşağıdaki gibi olacaktır. |
<myunit_messages>
<message id="MESSAGE_ID_1">
<text>MESSAGE_ID_1 için mesaj metni</text>
<unitname>myunit</unitname>
<details>Mesaj Detayları...</details>
</message>
</myunit_messages>
|
|