İhtiyaç durumuna göre performans bakımından metotlarımızın verimli çalışması için bunları server tarafında çalıştırabiliriz.

Öncelikle Remote Service tanımının yapılması gerekmektedir. Bunun için yapılması gereken işlem adımları;

1 - 

  •    Definitions klasörü altında RemoteServices.lsrv dosyası seçilir.
  •    Customization Remote Service Definitions ekranı açılır.
  •    Mouse sağ klik > Add tıklanarak Remote Service tanımlama ekranı açılır.

 

2 - Açılan Remote Service Definition ekranından gerekli tanımlamaları yaparız;

Service Name: Service Adı

Service Class Name: Server kısmında çalışacak olan metotlarımızın bulunduğu class ismi. (Var olan bir class seçilebilir)

Description: Açıklama


3 - Server tarafında çalışmasını istediğimiz class içerisinde ögrenci projesine ait bir öğrenci kaydı yaparak örneklendirelim.

  • Metodumuza client üzerinden ulaşmak istediğimiz için metodumuz public olmak zorunda
  • Server side çalışacağı için burada client context bulunmamaktadır. Bu nedenle, metodumuzun alacağı ilk parametre IServerContext olmalıdır. Geriye kalan parametrelerimizi isteğe bağlı olarak belirleriz. Örnek metotta boolean bir değeri client side’ a dönüyoruz.


public boolean transferStudentOnSS(IServerContext context,
Stringname, String surname, GregorianCalendar birthday)
{

boolean ok = true;           
IObjectFactory objectFactory = context.getServerObjectFactory();

CustomBusinessObject student = ProjectUtil.createNewCBO("CBOStudent");

ProjectUtil.setMemberValue(student, "StudentName", name);
ProjectUtil.setMemberValue(student, "SurName", surname);
ProjectUtil.setMemberValue(student, "Birthday", birthday);
ProjectUtil.setMemberValue(student,"Identitynr","123456323789");

          FactoryParams params = new FactoryParams();
          params.setCustomization(ProjectGlobals.getM_ProjectGUID());
             try 
             {
                    ok = objectFactory.insert(student , params);
             }
             catch (Exception e) 
             {
                    e.printStackTrace();
                    ok = false;
             }
             return ok;
       }



4 - ClientSide üzerinden bu metodu çalıştırmak için ilk olarak Transfer isminde custom bir form tanımı yaparak designer ortamından forma bir tane buton sürükleriz.

  • Buton ismini “transfer Student SS” olarak tanımlarız.
  • Butonun event’larından onClick event’ında transferStudentOnSS isimli metod tanımlanır. (Butona basıldığında tetiklenir).
  • Tanımlama işlemi sonrasında formun event handler classında transferStudentOnSS  metodu oluşturulur.

 


5 - Metot içerisinde serverside’da tanımladığımız metoda parametreler gönderip işlem sonucunu bekleyen bir yapı oluştururuz.

CallRemoteMetodu içerisinde tanımlanan “CSRV” remote Service tanımını yaparken verdiğimiz isim, “transferStudentOnSS" Server Side'da tanımladığımız metot ismi ve son olarak da parametrelerimizi gönderdiğimiz bir Object Array göndeririz. Result ile ServerSide metodu bize ne donduruyorsa onun sonucunu alırız.

(Yaptığımız örnekte serverside metodu boolean bir alan dönüyor.) Dönen sonuca göre uyarlama formumuzda başarılı veya başarısız diye bir mesaj alırız.


public void transferStudentOnSS(JLbsXUIControlEvent event)
       {
       try {
RemoteMethodResponse result = clientContext.callRemoteMethod("CSRV", "transferStudentOnSS", 
new Object [] {null,"Adı","Soyadı",new GregorianCalendar(1979, 3, 16)});

                    if ((Boolean) result.Result) 
                    {
                           ProjectUtil.warn(event, "Başarılı");
                    }else
ProjectUtil.warn(event, "Başarısız..");
             }
catch (Exception e) {
                    // TODO Auto-generatedcatch block
                    e.printStackTrace();
             }
       }



Telif HakkıKullanım KoşullarıGizlilik
Copyright © 2018 Logo Yazılım