j-Platform istemci ve yönetim uygulamaları nelerdir?

adminClient : Kurum, dönem, profile ve uyarlama yönetiminin yapıldığı, kullanıcı tanımları ve yetkilerin yönetildiği istemcidir.

serverAdminClient : Sistem tablolarını oluşturulması için kullanılan istemcidir. Boş bir veritabanı ile ilk defa j-Platform kullanılmaya başlanacaksa Sistem Tabloları için bu istemciye giriş yapılmalıdır.

j-PlatformClient : ERP uygulamasının kendisidir. Applet tabanlıdır.

Kurum Tabloları Neden Oluşturulur/Güncellenir?

İlk set kurulduğunda ve set geçişlerinde yapılması gereken işlem adımıdır. Kurum tablolarının yeni sete göre güncellenmesi gerekmektedir.

XUI Emulating Controllers Nedir? Nasıl Kullanılır?

XUI Emulating Controllers üründe bulunan formlardaki işlevleri formlar açılmadan kullanabilmeyi hatta sunucu tarafında da kullanabilmeyi sağlamak için geliştirilmiş bir altyapıdır.

Controller altyapısı iki parçadan oluşur;

Her formda kullanılan swing bileşenlerinin (TextEdit, ComboBox, Button gibi) görsel olmayan birer taklitlerinin geliştirilmesi : Örneğin sunucuda bir form açılıp, o formda bulunan kontrollere (bileşenlere) değerler doldurulup formdaki kaydet tuşuna basılabilir. Bu taklit sınıflar, görsel parçaları olmadığı için sunucuda Headless modda bile çalışabilirler.

Üründe bulunan her forma ait bir controller sınıfı oluşturulması : Her forma ait controller sınıfı o formun üzerindeki arayüz kontrollerinin desteklediği işlevleri kullanıcı arayüzü ve de etkileşimi olmadan yerine getirebilmek için gerekli metodları içerir.

Server Side ve Client Side çalışmanın farkı nedir?

Yapılacak olan işlemin performansına ve memory ihtiyacına göre kullanılacak olan tarafın Server mı Client mi olacağına karar verilebilir. Örneğin performans ve memory ihtiyacı olan işlemler ServerSide, form validation gibi performansı etkilemeyecek ve fazla memory ihtiyacı duymayan işlemler ClientSide çalıştırılırsa kolaylık sağlanmış olur. 

LBSServerContext Nerede/Nasıl Kullanılır?

Örneğin server tarafında çalışmasını istediğimiz class içerisinde bir metod tanımını düşünelim. Server side çalışacağı için metodumuzun alacağı ilk parametre IServerContext olmalıdır. Bu arayüz sunucu tarafında object ve query gibi birçok arayüze erişim konusunda olanak sağlar.

LBSClientContext Nerede/Nasıl Kullanılır?

Aynı şekilde ServerContext gibi ancak metodumuz client(uygulama) tarafında çalışacak ise ilk parametre olarak IClientContext kullanılması gerekir. Bu istemci tarafında arayüz object ve query gibi birçok arayüze erişim konusunda olanak sağlar.

Uyarlama Tabloları Ne Anlama Gelir?

Uyarlama projesi kapsamında oluşturulmuş Table Nesnesine bağlı tablolardır. Uyarlama işlemi ile tablo nesnesinde bir değişiklik yapıldıktan sonra adminClient’e giriş yapılarak uyarlama tabloları güncellenmelidir.

Sistem Tabloları Nasıl Oluşturulur?

LPT ortamından “Debug Configurations” ekranı açılarak “ServerAdminClient” üzerine tıklanarak “Debug” butonuna basılır.

Kullanıcı Adı : LOGO
Şifre              : LOGO

Sistem tabloları güncellendi” uyarısı görüldüğünde  j-Platform ürünü için gerekli sistem tabloları başarıyla oluşturulmuştur.

Kurum Tabloları Nasıl Oluşturulur?

Debug Configurations” ekranı açılır ve “AdminClient” üzerine tıklanarak “Debug” butonuna basılır.

Açılan ekrandan aşağıdaki bilgiler girilerek giriş yapılır.

Kullanıcı Adı: admin
Şifre             : logo

LBS Definitions Klasörü İçeriğinde Neler Vardır?

GUID Nedir? Ne İşe Yarar?

Projeler sunucuda GUID ile ilişkili olarak tutulur. GUID her projeye ait tekil bir bilgidir. Birden fazla kişi aynı proje üzerinde çalışıyorsa hepsinin GUID numarası aynı olmak zorundadır. Bu durumda ExportSettings ile bir kişi ayarlarını dışarı alıp diğer proje ekip üyelerine gönderebilir ve onlar da GUID değişikliği yaptıktran sonra Import Settings düğmesi ile bu dosyayı sistemlerine alıp aynı proje üzerinde farklı ortamlarda çalışma imkanını bulabilirler.

Bu menü ile seçili proje öncelikle derlenir. Sunucuda proje kaydı varsa üzerine yazılır yoksa yeni bir kayıt oluşturulur.

Deploy İşlemleri Nelerdir/Neden Kullanılır?

İki farklı deploy işlemi mevcuttur;

1- Deploy project to server, uyarlama projesini tüm kaynakları ile birlikte belirli bir sunucuya göndermek için kullanılır. Bir projenin deploy edilebilmesi için;

  • sunucu URL’si
  • kullanıcı adı
  • parola ve diğer seçeneklerin belirlenmesi gerekir.

İlgili parametreler projenin Properties > Logo Customization Deploy menüsünde belirlenir. “Deploy”, işleminden önce tüm proje derlenir.

Uyarlama projesinin sunucuya yüklenmesi ancak build (inşaa,derleme) sürecinde bir sorun yaşanmaması halinde gerçekleşir.

Not : Daha önceden sunucuya deploy edilmiş bir uyarlama projesini kaldırmak için "Project Properties" sayfasındaki "Logo > Customization > Deploy" sayfasında bulunan Clear Customizations butonuna tıklanmalıdır.

2- Deploy Project to File, seçili projeden lpdd uzantılı paketlenmiş dosya oluşturulur. Bu dosya istenilen sunucuya adminClient üzerinden deploy edilebilir.

Bunun için “j-Platform administration” uygulamasında “customization operations” işlemi içinde yapılır.

Extension Nedir?

Ürüne ait formların başlık(header) veya satırlarına(line) extension yapısını kullanarak ihtiyaca göre yeni alanlar ekleyebiliriz. Extension alanlar için öncelikle tablo(table) tanımı yapılır.

Profile Nedir? Nasıl Kullanılır?

LPT Geliştirme Platformunda uyarlamaları j-Platform ile ilişkilendirebilmek için profile oluşturulmalıdır.

Profiller kullanıcı/kullanıcı grubu bazında ilişkilendirilerek farklı roller için kullanılabilir.

Farklı çalışma grupları için, ekip bazlı farklı Uyarlama Profilleri tanımlanmalıdır.

Uyarlanan formu profile üzerinden üründe gözükmesini istediğimiz yere tanımlarız.

Query Nesnesindeki Restriction Terms Alanı Neden Kullanılır?

Query Objelerine Where condition tanımı yapılırken Restriction Terms alanı kullanılır. Restriction Terms ekranında girilen parametrenin table'ın hangi alanıyla term oluşturulacağını belirleriz.

Link(Bağlantı) Neden Kullanılır?

Tablo ve İş nesnesi(Custom Businnes Object) arasında ki ilişkisel bağlantıları kurmak içi kullanılır. 

Lookup Nedir? Nasıl Kullanılır?

Lookup bir Form üzerinde combo text edit’e tıklandığında ilgili browser formunu açıp bizim seçim yapmamıza olanak sağlayan yapıdır. Yani herhangi bir formda ComboTextEdit butonuna tıklandığında, açılan browser ekranıdır. 

Browser formdaki listeden seçilen ürünün formda gösterilmesi için yapılan işleme “RESET” diyoruz. Aynı ekrandan combotext'e bir alan seçtiğimizde reset edeceğimiz alanların tagları seçilir, böylece gelmesini istediğimiz itemi seçtikten sonra bulunduğumuz ekrandaki combotext editi resetlemiş oluruz.

Businness Logic Handler Nedir? Nasıl Kullanılır?

BLH bir iş nesnesinin iş mantığı katmanından geçerken kullanılacak handler sınıfıdır.

Bu özellik sayesinde üründeki BO ya da uyarlanmış bir BO’nun işlem öncesi/sonrası yapabileceklerimizi olanak sağlanır.

Aşağıdaki metodlar override edilerek amacımızı gerçekleyebiliriz. Bu metodların çalışma zamanları ve anlamları kısaca;

  • beforeInsert save işlemi öncesi tetiklenir.
  • afterInsert save işlemi sonrası tetiklenir.
  • afterDelete silme işlemi sonrası tetiklenir.
  • beforeDelete silme işlemi öncesi tetiklenir.
  • beforeUpdate güncelleme işlemi öncesi tetiklenir.
  • afterUpdate güncelleme işlemi sonrası tetiklenir.
  • beforeRead database okuma işlemi öncesi tetiklenir.
  • afterRead database okuma işlemi sonrası tetiklenir.
  • callDeleteHandler silme işlemi anında tetikenir.
  • callInsertHandler save işlemi anında tetiklenir.
  • callReadHandler database okuma anında tetiklenir.
  • callUpdateHandler Güncelleme anında tetiklenir.

Öncelikle projenizde "Business Logic Handler" tanımı yapmamız gerekir.

onSaveData metodu ne için kullanılır?

Formun event metodlarından, kaydet butonuna basıldığı zaman çalışan bir metoddur. Örnek vermek gerekirse form kaydedildiği sırada validasyon işlemleri için kullanılabilir.

PopupMenuItem Nedir?

Form ya da browser üzerinden sağ klik/F9 ile ulaşabildiğimiz menülerine popup menüleri denir. LPT ile bu menüleri özelleştirebiliriz. 

LPT’de Kaç Rapor Türü vardır?

LPT ile oluşturabileceğimiz 3 adet Custom Rapor türü vardır;

Master Detail Report

Query Independent Report

Regular Query Report

j-Platform dan sunulan SOAP Tabanlı Web Servisler hangileridir?

BatchWebService

DataExchangeService

DataQueryService

ReportingWebService

REST API için HTTP Metodları Nelerdir?

GET, POST, PUT, PATCH ve DELETE.

LPT’de Trigger Tanımı Yapılabilir mi? Tanımlayabileceğimiz Kaç Trigger Türü Vardır?

LPT üzerinden trigger tanımları yapılabilir. Üç farklı tipte trigger tanımı oluşturulabilir; firma, dönem bağımlı veya bağımsız.

docs Portalındaki Proje Geliştirme Klavuzu Adımları Nelerdir? Sırası Nasıl Oluşturulmalıdır?

Custom bir tabloya ait CRUD (ekle, değiştir,sil, okuma) işlemlerinin yapılabilmesi ve  kayıtların listelenmesi için izlenilecek yol dökümanlarımızda da verildiği gibi sırası ile Table, Businness Object, Form, Query ve Browser Form oluşturulması gerekmektedir.

Remote Service Tanımı Neden Gereklidir?

İhtiyaç durumuna göre performans bakımından metotlarımızın verimli çalışması için bunları server tarafında çalıştırabiliriz. Böyle durumlarda öncelikle Remote Service tanımının yapılması gerekmektedir.

Tablo Elemanlarından LOGICALREF Ne Anlama Gelmektedir?

Tablo tanımlarken otomatik olarak oluşturulan ve tablonun unique ID’si olan kolon olarak tanımlayabiliriz. Link(Bağlantı) oluşturulurken eğer ki özel olarak bir referans değeri belirtilmediyse tablonun LOGICALREF alanından yararlanılır.

DBConnection Ne İçin Kullanılır?

DBConnection, j-Platform için kullanılacak database bilgilerinin tanımlandığı bir .xml dosyasıdır. DBConnection.xml dosyasının içeriği değiştirildiğinde server stop start edilmelidir.

LOOKUP İşleminde RESET Neden Kullanılır?

Wizard ile bir lookup işlemi tanımlandığında, browser’dan dönen değerlerin bileşenlerinin yenilenerek gösterilmesini sağlar.

WSDL Nedir? Ne İçin Kullanılır?

SOAP Web servislerinin kullanılabilmesi için web servis içindeki metod, parametre, web servis adresi gibi değerlerin bilinmesi gerekir. j-Platform tarafından sunulan SOAP web servislerin tanımlarını ve detaylarını öğrenebileceğimiz XML tabanlı tanımlama dilidir.

Rest Çağrılarında Kullanılabilecek Parametreler Nelerdir? Ne Anlama Gelirler?

expandLevel: Nesnelerin detaylarına erişim seviyesi, öndeğer 0 sadece nesneye ait başlık bilgileri kullanılır.

expand: Genişletilecek/açılacak virgülle ayrılmış içiçe (nested) nesne adları.

fields: Döndürülecek olan virgülle ayrılmış sütun isimleri

offset: Başlangıç değeri.

limit: Kayıt sayısının limiti.

sort: Query sıralaması için column adlarını virgül ile ayrırarak kullanır.

withCount: Sonuçta, totalCount(ToplamSayı) değerinin yer alıp yer almayacağını belirler.

j-Platform ERP’deki Tablo Türleri Nelerdir?

Sistem Tabloları : Firma ve kullanıcı gibi temel tanımların yer aldığı tabloları içerir. Database'de "S_" ile başlayan tablolardır. j-Platform'ın kullanılabilmesi için öncelikle sistem tabloları oluşturulmalıdır.

Örneğin :

Kurum ve Dönem Tabloları : j-Platform'daki iş ürünlerine ait tanım ve hareketleri içeren tablolardır. Database'de "U_FFF" ile başlayanlar kurum, "U_FFF_DD" ile başlayanlar ise dönem tablolarıdır.

Örneğin :

Uyarlama Tabloları : LPT ile uyarlama sonucu oluşturulan tablolardır. Database'de "X_" ile başlayan tablolardır.

Örneğin :

IClientContext ve IServerContext Nedir?

j-Platform İstemci/Sunucu (Client/Server) mimarisine sahip bir uygulamadır. Performans ve memory ihtiyacı olan işlemler sunucu üzerinde çalıştırılırken, form validation gibi basit diyebileceğimiz işlemler istemci tarafında çalıştırılır.
İstemci tarafında IClientContext, sunucu tarafında ise IServerContext arayüzleri object ve query gibi birçok arayüze erişebilme olanağı sağlar.

REST Nedir? JSON Nedir? j-Platform'da Nasıl Kullanılır?

REST (Temsili Durum Aktarımı),  World Wide Web (www) gibi dağıtımlı sistemler için geliştirilmiş bir yazılım mimari stilidir. 

JSON kendini tanımlayan (self-describing) veri değişim formatıdır.

Logo RESTful API;

  • Veriyi, JSON dosyaları olarak saklar.

  • Böylece ürün içerisinde gerçekleştirilen her işleme "JSON formatında bir URL yoluyla" erişimi mümkün kılar. 

  • Bu da, web ve mobil uygulamalar için RESTful API'ı bu denli güçlü yapan özelliklerden sadece biridir.

  • REST günümüzde en yaygın web API tasarım modeli haline gelmiştir.

REST'in avantajlarından bazıları;

  • bileşen etkileşimlerinin ölçeklenebilirliği
  • arayüzlerin genelliği
  • bileşenlerin bağımsız dağıtımıdır.
  • REST aynı zamanda gecikme süresini indirgeyen, güvenliği güçlendiren ve yasal sistemleri içeren uygulama bileşenleri arasında bir aracı görevi görür.
  • REST API, HTTP çağrılarını yapabilen her dilde kullanılabilir.

SOAP Nedir? SOAP Mesaj Yapısı Nedir? j-Platform'da Nasıl Kullanılır?

j-Platform dan sunulan WS ler SOAP (Simple Object Access Protocol) ve REST temellidir.

j-Platform hazır SOAP WS leri ile entegrasyon imkanı sunar. LPT ortamını kullanarak üründen sunulan hazır servislere ek olarak custom (özel) SOAP WS geliştirmeniz de mümkündür.

Kavramsal Olarak SOAP  (Basit Nesne Erişim Protokolü);

SOAP aslında Service-oriented Architecture'in uygulanmış şeklidir. Üzerinde bulunan Universal Description Discovery and Integration (UDDI) ile birlikte hizmet yönelimli mimarinin pratikte kullanılmasını mümkün kılar.

SOAP dağıtık uygulamalarda ve web servislerinin haberleşmesinde kullanılmak üzere tasarlanan, RPC (Remote Procedure Call) modelini kullanan, istemci/sunucu mantığına dayalı bir protokoldür. Daha genel olarak SOAP, web üzerinden fonksiyonları kullanmak için geliştirilmiş bir sistemin XML tabanlı kurallar topluluğudur. SOAP ile ilgili bütün mesajlar XML formatında iletilir ve temel olarak bir SOAP mesajı 3 şekilde oluşabilir:

  • Metot Çağırımı
  • Cevap Mesajı
  • Hata Mesajı

SOAP Mesaj Yapısı;

Envelope

Bütün SOAP mesajlarının içinde olduğu elemandır. SOAP mesajına ilişkin XML belgesinin root elemanı olmak zorundadır. Envelope elemanı içinde Body veya Header gibi elemanlar bulunur. Envelope elemanının içinde her zaman bir Body elemanı vardır fakat Header elemanı olmak zorunda değildir. SOAP mimarisine göre eğer Envelope elemanı içinde Header elemanı varsa bu eleman Envelope elemanının içindeki ilk eleman olmalıdır. Soap kullanan mimarilerde kesinlikle erişim protokolü olarark TCP kullanılmalıdır

Header

SOAP mesajlarındaki Header elemanını HTML standartlarında bulunan <Head></Head> etiketlerine benzetebiliriz. Header bölümü metot çağrımı ile doğrudan ilişkili değildir. Header bölümü ile meta-data dediğimizi bilgiler gönderilir.

Body

Body elemanı SOAP mesajının en önemli kısmını oluşturur. Body bölümünde web metodunun adı ve metodun parametrik bilgileri XML formatında gönderilir. Cevap mesajında ise metodun geri dönüş değeri Body bölgesine eklenir. Metodun parametrik yapısının bu şekilde XML formatında yazılmasına SOAP Serialization denir. Son olarak hata mesajlarında ise Body bölümünde hatanın adı ve tanımı gibi bilgiler bulunur.

Custom Web Servis Oluşturulurken ServerContext'e Erişim Nasıl Sağlanır?

ServerContex'e erişim için Server Side çalışacak olan metodumuza 3 adet parametre zorunlu olarak verilmelidir;

Firm: j-Platform'da tanımlı firma numarası. (Type: integer)

Period: j-Platform'da tanımlı firma period numarası. (Type: integer)

Language: Dil Parametresi. (Type: String | Örn: "TRTR")

Kod Örneği (CustomWebService class'ı):

CustomWebService
//ServerContext'e ulaşılacağı için yukarıda belirttiğimiz 3 tane parametrede zorunluluk var.
public String[] getFirstNItems(int firm, int period, String language, int rowCount){ 
try{
    //context için 3 adet zorunlu parametre veriliyor.
    IServerContext context = WebServiceHelper.getContext(firm, period, language); 
    //Bu sayede işlemler için Object, Query vb. birçok arayüze ulaşma imkanımız var.
    IServerQueryFactory factory = context.getServerQueryFactory(); 
    QueryParams params = new QueryParams();
    QueryBusinessObjects items = new QueryBusinessObjects();
    factory.first("MMQOItemBrowser", params, items, rowCount, true);
    String[] results = new String[rowCount];
    if(items != null && items.size() > 0){
          for(int i = 0; i < items.size(); i++){
                 QueryBusinessObject item = (QueryBusinessObject) items.get(i)
                 String code = QueryUtil.getStringProp(item, "Code");
                 String name = QueryUtil.getStringProp(item, "Name");
                 String searchText = QueryUtil.getStringProp(item, "SearchText");
                 results[i] = "Code: " + code + " Name: " + name + " Search Text: " + searchText;
          }
    }
    return results;
}
catch (Exception e){
       e.printStackTrace();
}
return null;
}



 



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