İçeriğe geç
Program entegrasyonu

Canias ERP Entegrasyonu ve Modül Geliştirme

Canias’ınız yerinde kalır. Standart ekranlara sığmayan bir süreç için TROIA ile Canias’ın içinde modül yazarız; bayi, tedarikçi ya da saha ekranı gerekiyorsa ayrı uygulamayı Canias’a TROIA web servisiyle bağlarız. İki yolda da kayıt, ürünün kendi iş mantığından geçer.

Kısa özet

  • IAS bayisi değiliz; mevcut Canias kurulumunuza TROIA ile modül, ekran ve rapor, dış uygulamalar için de servis köprüsü yazarız. Lisans, geliştirme yetkisi ve bakım sözleşmesi IAS ile sizin aranızda kalır.
  • Canias ERP, IAS’ın kendi geliştirdiği TROIA platformu üzerinde çalışır. TROIA kodunu yalnızca uygulama sunucusu çalıştırır; masaüstü ve web istemci iş kuralı yürütmez, sunucunun ürettiğini gösterir.
  • Standart koda dokunmadan uyarlama mümkün: TROIA’daki cross tanımı, bir sınıfın ya da ekranın yerine özel olanını çalışma anında devreye alır. Üretici uyarlamaların güncellemeden sonra korunduğunu belirtiyor; biz yine de her yükseltmeyi test ortamında doğrularız.
  • Dış sistemler için belgelenmiş yol TROIA web servisi: WSDL ile tanımlı, XML taşıyan, login, callService, listServices ve logout işlemleriyle çalışan bir arayüz. Üreticinin yayımladığı genel amaçlı bir REST API bulamadık.
  • Okuma, raporlama için salt okunur yapılabilir. Yazma her zaman TROIA iş mantığından, yani bir TROIA ekranından ya da servis metodundan geçer.

IAS bayisi değiliz; Canias kurulumunuza modül ve köprü yazıyoruz

Canias satmıyoruz, kurmuyoruz ve lisans vermiyoruz. Canias ERP’yi zaten kullanan, ama bir süreci standart ekranlara sığmayan üreticiler için çalışıyoruz: eksik kalan ekranı, raporu ya da dış sistemle konuşan servisi yazıyoruz.

Canias bu iş için elverişli bir ürün. IAS, ERP’yi kendi geliştirdiği TROIA platformu üzerine kurmuş ve aynı geliştirme ortamını müşterisine de açıyor. Bu yüzden özel bir ihtiyacı karşılamanın yolu çoğu zaman ERP’nin dışına kaçmak değil, içinde, ürünün kendi diliyle yazmak. Bazı işler ise dışarıda daha doğru durur: tedarikçinin girdiği bir portal ya da tablette çalışan bir saha ekranı gibi. Hangisinin uygun olduğunu aşağıdaki iki yol bölümünde anlatıyoruz.

  • TROIA ile Canias içinde yeni ekran, rapor ve iş kuralı
  • Standart koda dokunmadan, cross tanımıyla davranış değiştirme
  • Dış uygulamaların çağıracağı TROIA web servisleri
  • Canias’tan pazaryerine, kargo firmasına ya da tedarikçi sistemine giden çağrılar
  • Tablet ve el terminali için Canias’a servisle bağlanan ayrı ekranlar
  • Canias verisinden beslenen yönetim raporları

Canias nasıl çalışır: iş mantığı sunucuda, istemci yalnızca gösterir

Canias ERP, 1989’da Karlsruhe’de kurulan IAS’ın (Industrial Application Software) ürünü; Türkiye’deki geliştirme merkezi 1994’ten beri İstanbul’da. Güncel ana sürümün adı caniasERP 9.03. Üretici ürünü genel bulut, özel bulut ve kendi sunucunuzda kurulum olarak üç biçimde sunuyor.

Entegrasyon açısından mimarinin en önemli kuralı şu: TROIA kodunu yalnızca uygulama sunucusu çalıştırır. TROIA platformunu anlatan açık kitaba göre en yaygın istemci Java tabanlı masaüstü istemci; web istemciyle aynı uygulama modelini paylaşıyor ve ikisi de iş kuralı yürütmüyor. Web servisleri de aynı sunucuya bağlanan üçüncü bir istemci türü. Uygulama sunucusu Windows, Linux ve Unix üzerinde çalışabiliyor.

Bunun pratik sonucu basit: Canias’a dışarıdan gelen bir kayıt, ekrandan girilmiş gibi aynı sunucu tarafı iş kurallarından geçebilir. Doğru tasarlanmış bir servis, kullanıcının ekranda yaptığı işin aynısını yapar ve hiçbir kontrolü atlamaz.

Canias platformunun entegrasyonu ilgilendiren bileşenleri. Kaynak: TROIA platformunu anlatan açık kitap ve üreticinin geliştirme sayfası.
BileşenGöreviEntegrasyonda neden önemli
Uygulama sunucusuTROIA kodunu çalıştıran tek bileşenYazılan modül ve servisler burada çalışır; iş kuralları tek yerde kalır
Masaüstü ve web istemciEkranları gösterir, kod çalıştırmazYeni bir ekran iki istemcide de aynı uygulama modelinden beslenir
Web sunucusu (Tomcat)Web istemciyi ve web servislerini barındırırDış sistemlerin bağlandığı kapı burası; bileşenlerin sürümü uygulama sunucusuyla uyumlu olmalı
Lisans sunucusuLisansı kullanıcı sayısına ve modüle göre yönetirServis kullanıcısının lisansla ilişkisi kurulumda teyit edilir
VeritabanıiasDB, MS SQL, MySQL, PostgreSQL, Oracle ya da DB2; JDBC ile erişilen diğerleriRaporlama sorgusunun yazımı ve okuma kopyasının kurulumu veritabanına göre değişir

İçeride mi, dışarıda mı? Modülün yeri baştan seçilir

Canias’ta özel bir ihtiyacı karşılamanın iki temel yolu var. Birincisi TROIA ile ERP’nin içinde yazmak: yeni ekran Canias menüsünde açılır, aynı yetki yapısını kullanır, kullanıcı başka bir programa geçmez. İkincisi ayrı bir web ya da mobil uygulama yazıp onu Canias’a TROIA web servisiyle bağlamak: Canias kullanıcısı olmayan kişiler, örneğin bayi ya da tedarikçi, sisteme bu yoldan dokunur.

Çoğu durumda ikisi birlikte kullanılır. Servisin kendisi bir TROIA sınıf metodu olduğu için, dış uygulama yazıldığında da Canias tarafında TROIA kodu yazılır. Yani asıl soru “TROIA yazılacak mı” değil, “kullanıcı nerede çalışacak” sorusudur.

Üç yolun karşılaştırması. Seçim kullanıcıya, cihaza, ağ yapısına ve geliştirme yetkisinin durumuna göre yapılır.
YolKullanıcı neredeUygun olduğu işDikkat edilecek
TROIA ile Canias içindeCanias masaüstü ya da web istemcisindePlanlama, onay, maliyet, kalite gibi ofis içi ekranlar ve raporlarGeliştirme yetkisi ve kaynak koda erişim kurulumda netleşmeli; değişiklik, ürünün kendi değişiklik kaydı sürecinden geçer
Ayrı uygulama ve servis köprüsüTarayıcıda, tablette ya da el terminalinde, Canias dışındaBayi ve tedarikçi portalı, depo ve üretim sahası ekranları, müşteri sipariş girişiCanias tarafında servis metodu yazılır; ağ erişimi, kimlik ve şifreleme ayrıca kurgulanır
Karmaİkisi birdenDışarıda toplanan verinin Canias içinde onaylandığı ya da işlendiği akışlarİki tarafın sorumluluğu ve hata durumunda ne olacağı yazılı hâle getirilir

TROIA ile geliştirme: ERP’nin kendi dilinde

TROIA, IAS’ın 1997’de tanıttığı, nesne yönelimli, dördüncü nesil bir programlama dili ve aynı adı taşıyan çalışma platformu. Canias ERP 2000’den beri bu platform üzerinde geliştiriliyor; ürünün standart modülleri de sonradan eklenen özel modüller de aynı dille yazılıyor. TROIA kitabına göre platform Java sanal makinesi üzerinde çalışıyor.

Üretici, geliştirme ortamının uygulamanın içine tam entegre olduğunu söylüyor. Pencere ekranına düğme ve tablo gibi bileşenler sürükle bırak ile yerleştiriliyor, raporlar PDF, HTML, RTF, XLS ve düz metin olarak üretilebiliyor, kod izleme ile profil ve iş akışı izleme araçları hata ayıklamaya yardım ediyor, kod tamamlama da bulunuyor.

Kaynak kod veritabanında, değişiklik yeniden başlatmasız

TROIA ile yazılan kaynak kod ilişkisel veritabanında saklanıyor; derlenen kod uygulama sunucusunda çalışıyor. Üreticiye göre mevcut uygulamaları düzenlemek için sistemi yeniden başlatmak gerekmiyor ve canlı ortamda TROIA IDE ile uzaktan geliştirme yapılabiliyor.

Bu esneklik dikkat de istiyor. Canlı sistemde anında etkili olan bir değişiklik, test edilmeden yapıldığında da anında etkili olur. Bu yüzden geliştirmeyi önce test ortamında yapıp kabulden sonra canlıya taşıyoruz. TROIA kitabı, değişiklik talebi olmadan bir TROIA öğesinin değiştirilmesine izin verilmediğini ve değişikliklerin ilgili kayıtla ilişkilendirilerek loglandığını anlatıyor. Yazdığımız her değişiklik bu kayıt üzerinden izlenebilir kalır.

Geliştirme ortamı nerede açılıyor?

TROIA kitabına göre geliştirme ortamı masaüstü istemcinin bir parçası; menüden açılıyor ve ayrı bir yetki istiyor, salt okunur ve yazma yetkisi ayrı tanımlanıyor. 2021’de canias4.0 tanıtılırken bir IAS yöneticisi, geliştirme ve bakımın web tarayıcısı olan her cihazdan yapılabildiğini söyledi; IAS’ın eğitim takviminde de caniasERP 9.03 için yeni geliştirme ortamı eğitimi yer alıyor. Kurulumunuzda hangisinin açık olduğu sürüme bağlı; keşifte bakıyoruz.

Alan tanımları: domain

TROIA’da bir ekran kontrolünün, tablo alanının ya da veritabanı kolonunun tipi, uzunluğu ve ondalık sayısı domain denen yeniden kullanılabilir tanımlardan geliyor. Yeni tablo ve ekran alanlarını mümkün olduğunca mevcut domain’lere bağlıyoruz; böylece aynı bilgi, örneğin bir malzeme kodu, her ekranda aynı biçimde duruyor.

Standart koda dokunmadan değiştirmek: cross

TROIA kitabı cross adlı bir tanımı anlatıyor: sistem bir sınıfı ya da diyaloğu yüklerken, tanımlı olanın yerine başka bir sınıfı ya da diyaloğu kullanmaya yönlendiriliyor. Tanım veritabanında duruyor ve çalışma anında uygulanıyor. Sistem düzeyindeki cross o veritabanına bağlı tüm kullanıcıları, kullanıcı düzeyindeki ise bir kullanıcıyı ya da bir profili etkiliyor; kullanıcının kendi tanımı profilinkinden, profilinki sistemdekinden önce geliyor. Değişiklik, kullanıcı yeniden giriş yaptığında etkili oluyor.

Bizim için anlamı şu: standart bir ekranın davranışını değiştirmek gerektiğinde üreticinin kodunu düzenlemiyoruz. Değişikliği kendi sınıfımızda yazıp cross ile devreye alıyoruz; önce tek bir test kullanıcısına tanımlıyor, kabulden sonra profile ya da sisteme genişletiyoruz.

Sürüm yükseltmesi

Üretici, müşteriye özel uyarlamaların standart kodun kendisini değil ondan türetilen işlevi etkilediğini ve güncellemelerden sonra yerinde kaldığını belirtiyor. Bu üreticinin ifadesi. TROIA kitabı ise cross tanımlarının sürüm yükseltmesinde nasıl davrandığını anlatmıyor.

Bu yüzden yükseltmeyi bir kontrol noktası sayıyoruz: özel sınıfların türediği standart sınıflar yeni sürümde değişmiş mi, ona bakıyor, ardından test ortamında kısa bir doğrulama listesi çalıştırıyoruz. Bu iş sözleşmede ayrı bir bakım maddesi olarak yazılır.

Kaynak koda erişim

Üretici, bakım sözleşmesi olan müşterilerine uygulamanın kaynak koduna erişim verdiğini söylüyor ve bunu “açık kaynak kod” diye adlandırıyor. Burada kastedilen bir açık kaynak lisansı değil, müşterinin koda erişimi. Üretici uyarlamaların IAS danışmanlarınca ya da eğitimli şirket personelince yapılabildiğini yazıyor; dışarıdan bir ekibin sizin adınıza geliştirme yapmasının koşulunu yayımlanmış bir belgede bulamadık. TROIA geliştirme ortamının hangi lisans koşuluyla açıldığı konusunda kaynaklar tek sesli değil; kapsamı IAS ile netleştirmeniz gerekiyor.

Dışarıdan Canias’a: TROIA web servisi

Dış bir uygulamanın Canias ile konuşmasının belgelenmiş yolu TROIA web servisi. Mantığı şöyle: Canias tarafında bir TROIA sınıf metodu yazılıyor ve web servisi olarak kaydediliyor. Dış uygulama bu metodu adıyla çağırıyor, parametreleri gönderiyor, sonucu alıyor. Dışarıya açılan şey veritabanı tabloları değil, TROIA’da yazılmış ve iş kurallarını çalıştıran bir metot.

Aşağıdaki ayrıntılar TROIA platformunu anlatan açık kitaptan. Kitap kendini resmî olmayan bir kaynak olarak tanımlıyor; yazarı IAS’ta yönetici olarak anılan bir isim. Bu yüzden her ayrıntıyı kurulumunuzun kendi sürümünde test ederek teyit ediyoruz.

Servis tanımı ve yetki

Servisler WSRT01 ekranında tanımlanıyor; hangi kullanıcının hangi servisi çağırabileceği WSRT02 ekranında veriliyor. Servis arayüzünün 1.0 sürümü kitapta kullanımdan kaldırılmış olarak geçiyor, yeni projeler için 2.0 öneriliyor. Servis, Java web uygulamalarını sunabilen bir web sunucusunda barınıyor; kitap en yaygın örnek olarak Apache Tomcat’i veriyor. Web sunucusundaki bileşenin uygulama sunucusuyla aynı sürümde olması gerekiyor. WSDL ile tanımlı, XML taşıyan bir servis; SOAP tarzı bir arayüz diye düşünebilirsiniz.

Dört işlem

login ile oturum açılıyor: istemci, dil, veritabanı sunucusu ve adı, uygulama sunucusu ve kullanıcı bilgisi gönderiliyor, karşılığında oturum kimliği ve güvenlik anahtarları dönüyor. callService ile kayıtlı bir servis çağrılıyor, listServices ile çağrılabilecek servisler listeleniyor, logout ile oturum kapatılıyor. Parametreler ve yanıtlar XML biçiminde.

callService’in iki ayrıntısı tasarımda işe yarıyor. Permanent parametresi açıksa sunucu işlemi kapatmıyor ve sonraki çağrılar aynı kapsamda çalışıyor; birkaç adımlı bir işi tek bağlam içinde yürütmek için kullanılabiliyor. ExtraVariables ile TROIA değişkenleri yanıtla birlikte geri alınabiliyor. Oturumda sıkıştırma istenmişse 4000 karakteri aşan yanıtlar sıkıştırılarak dönüyor.

Şifreleme varsayılan olarak kapalı

Kitaba göre servis düzeyindeki şifreleme varsayılan olarak kapalı; açıldığında 128 bit AES kullanılıyor. Parolanın login’e hangi biçimde gönderileceği konusunda kaynaklar farklı şeyler söylüyor; bunu kurulumunuzda test ederek netleştiriyoruz. Kuralımız değişmiyor: servis şifrelemesi açık olsun ya da olmasın, bağlantı TLS ya da VPN üzerinden kurulur.

REST API var mı?

Üreticinin yayımladığı, dış sistemlerin Canias verisini okuyup yazabileceği genel amaçlı bir REST API bulamadık. Belgelenmiş yol yukarıdaki TROIA web servisi. TROIA kitabı REST’ten yalnızca Canias Mobile Toolkit bölümünde söz ediyor: bu mobil uygulama sunucuya, web istemciyle birlikte kurulan bir REST servisi üzerinden bağlanıyor ve kitaba göre bu yolda yalnızca uygulamaya ayrılmış bir TROIA sınıfı çağrılıyor; bildirimler, KPI listesi ve onay süreçleri gibi işlevler buradan geliyor. Aynı REST bileşeninin genel kullanımını anlatan bir bölüm kitapta yok. Kurulumunuzda bulunup bulunmadığını ve neye izin verdiğini keşifte test ederek görüyoruz.

Dış sisteminiz yalnızca REST konuşuyorsa, örneğin bir e-ticaret altyapısı, araya ince bir katman koyuyoruz: dış dünyaya REST, Canias’a TROIA web servisi. Böylece Canias tarafı ürünün kendi yolunda kalıyor.

Açık kaynak bağlayıcılar hakkında

GitHub’da bu servise bağlanmak için yazılmış açık kaynak istemciler bulunuyor. Bunlardan biri kendini IAS ile ilişkisi olmayan, resmî olmayan bir topluluk istemcisi olarak tanımlıyor; bir diğerinin IAS’a ait olduğunu teyit edemedik. İkisini de resmî araç saymıyoruz. Üretimde çalışacak istemciyi, kurulumunuz üzerinde yapılmış testlerle doğrulanmış hâlde kendimiz yazıyoruz.

Canias’tan dışarıya: TROIA’nın çağrı komutları

Entegrasyon yalnızca dışarıdan içeriye gelmez. Kargo firmasına gönderi açmak, pazaryerine stok bildirmek ya da bir tedarikçinin sisteminden fiyat çekmek gibi işlerde çağrıyı Canias başlatır. TROIA kitabı bunun için iki komut anlatıyor: SENDHTTPPOST bir adrese HTTP isteği gönderiyor ve içerik tipi, başlıklar, istek yöntemi ayarlanabiliyor; CALLWEBSERVICE ise WSDL adresi verilen bir web servisini çağırıyor. Gelen XML yanıtı ayrıştırmak için ayrı bir komut var.

Daha yeni sürümler için kitap, “integration endpoint” adıyla RabbitMQ, Kafka, RedPanda, Mongo ve Qdrant gibi sistemlere bağlantı tanımlanabildiğini anlatıyor ve desteklenen listenin sürüme göre değiştiğini not ediyor. Bu bağlantının kurulumunuzda bulunup bulunmadığını sürüm adından tahmin etmiyor, kurulumun kendisinden kontrol ediyoruz.

TROIA ayrıca başka veritabanlarına bağlantı açıp işlem yürütebiliyor. Kitabın destek listesinde FTP ve SFTP, e-posta protokolleri, JSON, CSV ve Excel dosyaları ile OPC UA, MQTT, Modbus ve Siemens S7 gibi endüstriyel protokoller de geçiyor. Bunlar kitabın listesi; üreticinin IoT sayfası protokol adı vermiyor, bu yüzden makine tarafında kullanılacak protokolü kurulumda deneyerek seçiyoruz.

  • Dışarıya giden her çağrı zaman aşımı ve yeniden deneme kuralıyla yazılır
  • Karşı sistem cevap vermediğinde kayıt kaybolmaz; Canias içinde bekleyen işler listesinde görünür
  • Gönderilen ve alınan içerik, sorun çıktığında geriye dönüp bakılabilecek biçimde loglanır
  • Adresler ve erişim bilgileri koda gömülmez; yönetilebilir bir yapılandırmada durur

Yazma kuralımız: kayıt TROIA’nın iş mantığından geçer

Canias yaygın veritabanlarında çalıştığı için veritabanına doğrudan bağlanmak teknik olarak kolay. Raporlama için bunu yapıyoruz: salt okunur bir kullanıcıyla, gerekirse canlı sistem yerine bir kopya üzerinde. Hiçbir kayıt değişmediği için ürünün bütünlüğüne dokunmuyor.

Yazmada aynı kolaylığı kullanmıyoruz. IAS’ın doğrudan veritabanına yazmayı yasaklayan ya da destekleyen bir belgesini bulamadık; bu kural IAS’ın değil, bizim. Gerekçesi Canias’ın kendi yapısında: iş kuralları uygulama sunucusundaki TROIA kodunda çalışıyor. Tabloya doğrudan atılan bir kayıt bu kodu atlar; numaralama, bağlı kayıtlar, stok ve maliyet etkisi ekrandan girilen kayıttaki gibi oluşmayabilir. Hata hemen değil, dönem kapanışında ortaya çıkabilir.

Bu yüzden Canias’a yazılan her kayıt ya TROIA ile yazılmış bir ekrandan ya da bir TROIA servis metodundan geçer. Servis metodu, ekrandaki işin çağırdığı iş kurallarını çağırır.

e-Fatura ve e-Dönüşüm: mevcut akış yerinde kalır

Üreticinin modül listesinde ayrı bir E-Dönüşüm grubu var; e-Fatura, e-Arşiv ve e-Defter yönetimi bu grupta sayılıyor. IAS grubu içinde e-belge hizmetleri veren ayrı bir şirket de bulunuyor. Firmanızın e-belgelerini hangi yoldan gönderdiği kurulumdan kuruluma değişir ve bu yol sizin sözleşmelerinizle belirlenir.

Biz e-belge gönderimi yapmıyoruz ve bu akışı değiştirmiyoruz. Yazdığımız modül, faturaya ya da irsaliyeye kaynak olan kaydı, örneğin dış kanaldan gelen siparişi, Canias’ın kendi iş mantığıyla oluşturur. Belgenin elektronik ortama çıkışı, kurulumunuzda bugün nasıl yapılıyorsa öyle kalır.

Güvenlik: servis kullanıcısı yalnızca kendi işini yapar

Web servisi, Canias’ın iş kurallarına açılan bir kapı. Kapıyı kimin, hangi işlem için kullanabileceği baştan yazılır.

  • Dış uygulamalar için ayrı bir teknik kullanıcı tanımlanır; bir çalışanın kullanıcı adı servis için kullanılmaz
  • Bu kullanıcıya WSRT02’de yalnızca ihtiyaç duyduğu servisler açılır
  • Web servisi internete doğrudan açılmaz; bağlantı TLS ya da VPN üzerinden kurulur, mümkünse yalnızca belirli adreslerden kabul edilir
  • Oturumlar iş bitince logout ile kapatılır; açık kalan oturum biriktirilmez
  • Servis metodu gelen veriyi kendisi doğrular; dış uygulamanın doğru gönderdiği varsayılmaz
  • Kimlik bilgileri kodda değil, şifreli yapılandırmada tutulur

Keşifte istediğimiz bilgiler

Bir Canias geliştirmesinde teknik sorular kadar sahiplik soruları da belirleyicidir: kodu kim yazabilir, hangi ortamda, kimin onayıyla. Aşağıdaki liste ilk görüşmede netleşirse iş sağlam bir zeminde başlar.

  • Sürüm ve build numarası; sürüm notları ekranından ya da yönetim aracından okunur
  • Test ortamı var mı, canlı sisteme göre ne kadar güncel
  • Web servisi kurulu mu, WSDL adresine bizim bağlanacağımız ağdan erişilebiliyor mu; servis yolu kurulumdan kuruluma değişebilir
  • Teknik kullanıcı tanımlanabilir mi, WSRT02 yetkilerini kim verir
  • TROIA geliştirme yetkisi ve kaynak koda erişim: bakım sözleşmeniz ve lisans koşullarınız bunu kapsıyor mu (IAS ile sizin aranızda)
  • Kurulumda kullanılan veritabanı ve işletim sistemi
  • Daha önce yazılmış özel sınıflar ve tanımlı cross’lar
  • Değişiklik talebi ve onay süreci: talebi kim açar, kabulü kim verir
  • Kurulumunuza destek veren bir IAS iş ortağı varsa ona bağlı süreçler

IAS iş ortakları için: ek TROIA geliştirme kapasitesi

IAS’ın iş ortaklarından oluşan bir ağı ve bu ortakların danışmanları için bir sertifika sistemi var. Bir müşteri işi aynı anda birden fazla ekran ve servis gerektirdiğinde, ortağın kendi geliştirme ekibi o dönemde başka işlere bağlı olabilir.

İstenirse bu yükün bir kısmını üstleniyoruz. Kapsamı sizin belirlediğiniz modül, rapor ya da servis bizde geliştirilir ve test ortamında teslim edilir; ürün danışmanlığı, müşteri ilişkisi ve lisans konuşması tamamen sizde kalır. Müşterinin karşısında görünmememizi isterseniz görünmeyiz.

Kurulduğunda nasıl çalışır? (örnek akış)

Bayi sipariş portalı

Bayilerinin siparişi telefonla değil web üzerinden girmesini isteyen bir üretici için: portal ayrı bir web uygulaması olarak çalışır, sipariş Canias’a TROIA servis metodu üzerinden, satış ekranındaki iş kurallarından geçerek yazılır. Bayi Canias kullanıcısı olmaz.

Üretim sahası için tablet ekranı

Operatörün iş emrini başlatıp bitirdiği ve fireyi girdiği sade bir ekran isteyen bir fabrika için: ekran tablette çalışır, kayıt Canias’a servisle düşer. Önce Canias’ın kendi üretim modüllerinin bu ihtiyacı karşılayıp karşılamadığına bakılır; ayrı bir üretim takip programı yalnızca boşluk varsa yazılır.

Depoda barkodlu mal kabul ve sevkiyat

El terminaliyle okutulan barkodun Canias’taki stok hareketine bağlanmasını isteyen bir işletme için: terminal ekranı ayrı yazılır, hareket Canias’a TROIA servisiyle yazılır. Bağlantı koptuğunda okutmalar kaybolmaz, bağlantı dönünce sırayla gönderilir.

Pazaryeri ve kargo çağrıları

Stok değişikliğini pazaryerine, gönderi bilgisini kargo firmasına Canias’tan bildirmek isteyen bir firma için: çağrı TROIA’dan HTTP ya da web servisi komutlarıyla başlatılır, cevap vermeyen çağrı Canias içinde bekleyen işler listesinde görünür.

Canias içinde özel onay ekranı

Satın alma talebini tutara ve kategoriye göre farklı bir onay zincirinden geçirmek isteyen, standart akışı bu ayrıma yetmeyen bir şirket için: ekran TROIA ile Canias içinde yazılır ve mevcut yetki yapısını kullanır, kullanıcı başka bir programa geçmez.

Yönetim raporu

Satış, üretim ve stok verisini tek panelde görmek isteyen bir yönetim için: veri salt okunur bir kullanıcıyla ya da Canias’ın kendi rapor aracıyla alınır. Hiçbir kayıt değişmediği için veri bütünlüğü riski oluşmaz; ağır sorgular canlı sistemi yavaşlatmasın diye gerekirse bir kopya üzerinde çalışılır.

Referans iş birliği

Entegrasyon tarafında yeni bir hat kuruyoruz ve ilk projeleri referans iş birliğiyle yürütüyoruz: projenin sonunda ölçülebilir sonuçları vaka çalışması olarak yayımlamamıza ve sizi referans göstermemize izin veren firmalara özel koşul uyguluyoruz. Karşılığında alacağınız şey standart bir paket değil, süreçlerinize göre yazılmış bir sistem — ve geliştiren ekibe doğrudan erişim.

Sık sorulan sorular

Canias’ın REST API’si var mı?

Üreticinin yayımladığı, dış sistemlerin Canias verisini okuyup yazabileceği genel amaçlı bir REST API bulamadık. Belgelenmiş yol TROIA web servisi: Canias tarafında yazılan bir TROIA metodu web servisi olarak kaydedilir, dış uygulama onu WSDL ile tanımlı, XML taşıyan bir arayüzden çağırır. Canias Mobile Toolkit’in REST tarzı bir bağlantısı var, ama o arayüz mobil uygulamanın kendi işlevleri için. Dış sisteminiz yalnızca REST konuşuyorsa araya ince bir katman koyarız; Canias tarafı yine TROIA servisiyle çalışır.

Modülü Canias içinde mi yazmalı, ayrı uygulama mı?

Kullanıcıya bakarak karar veriyoruz. Ekranı Canias kullanıcıları ofiste kullanacaksa TROIA ile Canias içinde yazmak daha doğru: aynı menü, aynı yetki, ayrı program yok. Ekranı Canias kullanıcısı olmayan biri, örneğin bayi, tedarikçi ya da tablet başındaki operatör kullanacaksa ayrı bir uygulama yazıp Canias’a servisle bağlıyoruz. Servis de bir TROIA metodu olduğu için iki durumda da Canias tarafında TROIA kodu yazılıyor.

Sürüm yükseltmede özel kod korunur mu?

Üretici, müşteriye özel uyarlamaların standart kodu değil ondan türetilen işlevi etkilediğini ve güncellemeden sonra yerinde kaldığını belirtiyor. Bu üreticinin ifadesi; biz bunu kendi ağzımızdan bir vaat olarak tekrarlamıyoruz. Özel sınıfları standart koda dokunmadan, cross ile devreye alıyoruz ve her yükseltmeden sonra test ortamında kısa bir doğrulama listesi çalıştırıyoruz. Yükseltme sonrası kontrol, sözleşmede ayrı bir bakım maddesi olarak yazılır.

Lisans kimden alınır?

IAS’tan ya da IAS’ın yetkili iş ortağından. ERP lisansı, TROIA geliştirme ortamına ve kaynak koda erişim ile bakım sözleşmesi IAS ile sizin aranızdadır; biz lisans satmıyor, aracılık da yapmıyoruz. Üretici kaynak koda erişimi bakım sözleşmesine bağlıyor. İşe başlamadan önce mevcut sözleşmenizin TROIA ile geliştirme yapmayı kapsayıp kapsamadığını IAS ile netleştirmenizi istiyoruz.

Doğrudan veritabanına yazabilir misiniz?

Teknik olarak mümkün, ama yapmıyoruz. IAS’ın bu konuda yasaklayan ya da destekleyen bir belgesini bulamadık; kural bizim. Canias’ta iş kuralları uygulama sunucusundaki TROIA kodunda çalışıyor ve tabloya doğrudan atılan kayıt bu kodu atlıyor. Okumayı raporlama için salt okunur bir kullanıcıyla yapıyoruz; her yazma bir TROIA ekranından ya da servis metodundan geçiyor.

Canias’tan pazaryerine ya da kargo firmasına çağrı yapılabilir mi?

Evet. TROIA’da HTTP isteği göndermek ve WSDL adresi verilen bir web servisini çağırmak için komutlar var; yeni sürümlerde mesaj kuyruğu sistemlerine bağlantı tanımlanabildiği de anlatılıyor. Çağrıyı Canias içinde yazıyoruz; karşı taraf cevap vermezse kayıt kaybolmuyor, bekleyen işler listesinde görünüyor.

IAS iş ortağı mısınız?

Hayır. IAS’ın bayisi, çözüm ortağı ya da iş ortağı değiliz; Canias üzerinde yayımlanmış bir vaka çalışmamız da yok. Bağımsız bir yazılım ekibiyiz ve ürünün belgelenmiş yollarıyla, TROIA ve web servisi üzerinden modül ve entegrasyon yazıyoruz. Kurulumunuza destek veren bir IAS iş ortağı varsa onunla aynı değişiklik süreci içinde çalışırız.

Mersin dışındaki fabrikalarla çalışıyor musunuz?

Evet. İlk keşif görüşmesi online yapılır. Mersin, Tarsus, Adana, Hatay, İskenderun ve Osmaniye’de gerektiğinde yerinde ziyaret ve saha kurulumu planlanır. Türkiye’nin diğer illerinde TROIA geliştirmesi ve servis kurulumu uzaktan, güvenli bağlantı üzerinden yürür; tablet ya da el terminali gibi saha işi varsa ziyaret takvime baştan yazılır. Canias bulutta çalışıyorsa da yol aynı: erişim ve geliştirme yetkisi kurulumun sahibiyle netleştirilir.

Mevcut sisteminizi konuşalım

Hangi programı kullandığınızı, sahada hangi verinin elle girildiğini ve neyi otomatikleştirmek istediğinizi anlatın. İlk görüşmede teknik olarak mümkün olup olmadığını ve hangi yöntemle yapılacağını netleştiriyoruz.

Bu sayfada adı geçen ürün ve markalar ilgili firmaların tescilli ticari markalarıdır. D'Cloud Software bağımsız bir yazılım geliştiricisidir; anılan firmaların yetkili bayisi, çözüm ortağı veya iş ortağı değildir. Entegrasyon hizmeti, ürünlerin kendi belgelenmiş arayüzleri ve veri erişim yöntemleri üzerinden sunulur.