24 Aralık 2015 Perşembe

AXAPTA 2012 AIF

Axapta Entegrasyon
Axapta Entegrasyon
Merhaba,

Bu yazımda Axapta 2012 AIF hakkında aldığım notları paylaşacağım.

APLICATION INTEGRATION
  • AIF iki farklı taşıma destekler. Biri senkron diğeri ise asenkron. Senkron taşımada, talep geldiği anda işlem gerçekleştirilir. Asenkron da ise işlem bir kuyruğa atılır ve sonradan görev yerine getirilir. Bu işlem süresini uzatır ancak büyük hacimli mesajlar daha verimli bir şekilde işlenebilir.
  • AIF Axaptaya veri gönderebilir. Bu bir inbound değişimdir. Örneğin inbound değişimde, dışsal bir sistemden Axaptaya satış siparişi gönderilebilir ve bu sipariş Axaptaya kaydedilebilir.
  • AIF axaptadan veri almak için de kullanılabilir. Bu bir outbound değişimdir. Örneğin dışsal bir sistemden girilen kısıtlar doğrultusunda Axaptadan veri alınabilir.

SERVICES, SERVICE OPERATIONS AND SERVICE GROUPS
  • WCF AOS üzerinde çalışır. İnternet üzerinden işlem yapılabilmesi için service lerin IIS üzerinde olması gerekir. IIS üzerindeki service ler WCF mesajlarını kullanırlar. Service lerden gelen bütün talepler AOS üzerinde process edilir. Sonra AOS IIS yolu ile service kullanıcısına yanıt verir.
  • Axapta üç farklı service tipini destekler.

1-      Document Services query tabanlı bir servistir ve dışsal sistemlerden XML dokümanı alır ve ya XML dokümanı döndürür. Bu dokümanlar iş varlıklarını gösterir örneğin müşteriler, satıcılar ve ya satış siparişleri gibi. (Daha fazla bilgi için)
2-      Custom Services developer lar tarafından X++ kodlarını dışarı aktarmak için kullanılır. Örneğin bir classı ve onun metotlarını service arayüzü üzerinden dışarı aktarılabilir.
3-      System Services Query serviceMeta data service ve User Session service lerini içerir. Değiştirilemezler ve hiçbir query ve ya X++ kodu ile map edilemezler. (Daha fazla bilgi için)
  •  Service Operations servisin yapacağı işe göre isimlendirilir. Örneğin servisin yapacağı iş yeni bir satış siparişi oluşturmak ise service operation nın adı SalesSalesOrderService.create olmalıdır. Bir serviste birden fazla service operation olabilir. insert, delete, find, findKeys, read ve update gibi service operations vardır.
  • Service Group servislerden oluşan gruptur. Genellikle beraber kullanılan ve beraber yönetilen servislerden oluşur. 
INTEGRATION PORTS
  • Integration port servisleri ve AIF ’i daha basit bir şekilde yönetmeye yardımcı olur. Her bir integration port bir veya daha fazla servise hizmet verebilir.  
  • Integration port ya inbound ya da outbound olabilir.
  • Inbound Integration port Axapta dışından gelen mesajların varışıdır. Outbound Integration port ise Axaptadan gelen mesajların varacağı yerdir.
  • Inbound integration port ları iki tipte olmalıdır. Ya  basic ya da  enhanced dır. Outbound integration port lar ise her zaman enhanced dır.
 1-      Basic Integration Port
  • Developer tarafından oluşturulabilirler.  AOT da yeni bir service grup oluşturulduğunda basic inbound integration port da otomatik oluşturulur.( Daha fazla bilgi için)
2-      Enhanced Integration Port
  • Basic ten farklı olarak aşağıdaki gibi faydaları vardır.
  • Servisler ya AOS da ya da IIS üzerinde olabilir.
  • Protokol çeşitleri WCF adapter leri üzerinde desteklidir. Bu protokoller HTTP, NetTCP ve Message Queuing içerir. Ki MSMQ olarak d bilinir. Enhanced integration port, file system adapter kullanımını destekler. Bu da dosya yollarını adres olarak kullanmayı sağlar.
  • Servis talep ve yanıtlarından önceki işlemlerde veya sonraki işlemlerde perform edebiliriz.
  • Gelişmiş güvenlik ve sorun giderme ayarlarını tanımlayabiliriz.
ADAPTERS
  • Servisler, AIF ve integration portlar adapter leri kullanırlar. Bu adapter ler çeşitli transfer protokollerini kullanarak Ax ile iletişim kurmayı sağlar. Dört farklı adapter vardır.
  1. HTTP Adapter – HTTP ya da HTTPS transferi kullanarak senkron mesaj alış verişini sağlar.
  2. NetTCP Adapter –
  3. MSMQ Adapter – Mesaj kuyruğu MSMQ olarak bilinir. Mesaj kuyruğu asenkron iletişim tipidir.
  4. File System Adapter – Dosya sistem dizinleri üzerinden asenkron doküman alış verişini sağlar.

MESSAGE AND TRANSFORMS IN AIF
  • Schemas
1-      Document Service Schemas
2-      Message Schemas
3-      Message-set Schemas
4-      Entity Key Schemas
5-      Shared Types Schema
6-      Fault Schemas
  • Processing Message
Axapta AIF

DEVELOPING WITH SERVICES AND AIF (AXAPTA 2012)

Üç farklı servis tipi vardır:

1-      Custom Services servis arayüzleri üzerinden X++ kod mantığını dışarıdan kullanıma açmak için oluşturulur. Böylece inbound ve outbound transferlerde business logic i kullanabiliriz.
2-      Document Services Ax içerisindeki veriyi ve business logic i gösterir. Axapta da standartta gelen 70 adet Document Service vardır. Bu servisler direk ve ya özelleştirilerek kullanılabilir. Eğer ki bu servislerden hiç biri isteklerinizi karşılayamıyorsa AIF Document Service Wizard kullanılarak yeni bir servis oluşturulabilir. Her Document Service bir class tarafından temsil edilir. Axd önadıyla başlayan classlardır.
3-      System Services özelleştirilemezler. Query Service, Metadata Service ve User Session Service Axapta da bulunan WCF servislerdir.
  • Dışarıdan çağrılan Document Service güvenliği Axapta daki role-based security tabanlıdır. (Daha fazla bilgi için)   
  • Axapta hem internet hem de intranet de uygulama entegrasyonuna ve veri değişimini desteklemektedir.
  • WCF classlarına dayalı servisler uygulamaları şirket intraneti ile entegre edebilmeleri için AOS üzerinde barındırılırlar. Servisler internet üzerinde kullanmak ve ya dışarıya açmak için Internet Information Service (IIS) kurulu olmak zorundadır (Daha fazla bilgi için).

DISTINGUISHING BETWEEN SERVİCE TYPES

DISTINGUISHING BETWEEN SERVİCE TYPES

EXPOSING BUSINESS ENTITIES AS SERVICES

 EXPOSING BUSINESS ENTITIES AS SERVICES

COMMON USAGE SCENARIOUS

 COMMON USAGE SCENARIOUS




Devamını Oku »

17 Aralık 2015 Perşembe

AXAPTA 2012 LOOKUP MULTI SELECT

Merhaba,

Axapta 2012 ile birlikte gelen diğer bir yeni özellik olan multi selectten bahsedeceğim. Axapta 2009 versiyonu lookuplarda çoklu seçime izin vermiyordu. Ama 2012 versiyonunda bu sorun çözülmüş durumda. SysLookupMultiSelectCtrl isimli classı kullanarak çok basit bir şekilde bu özelliği kullanabiliyoruz. Daha kolay anlaşılabilmesi için bir uygulama yapalım.

Öncelikle yeni bir form oluşturuyoruz. Forma ItemId adında bir string ekliyoruz.

Axapta Form

Şimdi lookupta listelenmesini istediğimiz data için alttaki gibi bir range olan query oluşturuyoruz.

Axapta Query

Forma lookupta seçtiğimiz değerleri göstermek için bir buton ekliyoruz ve ardından alttaki methodları sırasıyla ekliyoruz:

  1. Formun classDeclaration metoduna
Axapta classDeclaration

    2.  Formun init metoduna

Axapta Form Init Method

    3.  Butonun clicked metoduna

Axapta Button Clicked Method

Formun son hali aşağıdaki gibidir.

Axapta Lookup Multi Select





Devamını Oku »

14 Aralık 2015 Pazartesi

AX7 RAINER DEVELOPMENT VISUAL STUDIO


AX7 RAINER DEVELOPMENT VISUAL STUDIO


Merhaba, 

Sabırsızlıkla beklenen Axaptanın yeni versiyonu Axapta 2015 diğer adıyla AX7 Rainer ın yakın zamanda çıkması bekleniyor. Her ax developer ın bildiği üzere bu yeni versiyonda geliştirme ortamı Visual Studio üzerinde olacak. Alttaki videonun yeni versiyonun geliştirme ortamı hakkında ön bilgi edinmeniz açısından faydalı olacağını düşünüyorum.



Devamını Oku »

10 Aralık 2015 Perşembe

AXAPTA 2012 CODE EDITOR


Merhaba, 

Axapta 2012 geliştirme ortamında da kod editöründe de bir sürü yenilikler var. Ancak bazı Ax yazılımcıları da yeni özellikler kazandırmaya çalışmışlar. Bu özelliklerden kod editörü ile ilgi dikkatinizi çekecek bir geliştirme bulunmaktadır. Bunlar;

1- Visual Studio ortamından da bildiğimiz parantez eşleme özelliği
de


2-  Parantez eşleme özelliği ile kapattığımızda yukarıdaki resimde de görüldüğü gibi parantezlerin içinde üç nokta oluşur. Bu üç nokta üzerine geldiğimizde kapattığımız parantez çiftinin içindeki kodları gösteren info özelliği  


AXAPTA 2012 CODE EDITOR

3-  Üzerine tıkladığımız herhangi bir kelimenin o metot içerisinde kullanıldığı yerleri gösterme özelliği

AXAPTA 2012 CODE EDITOR

Bu özellikleri kendi editörünüze kazandırmak istiyorsanız buradan zip dosyasını indirin. Ardından dosyadaki .dll leri C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin\EditorComponents dosyasına sürükleyip bırakın. Geliştirme ortamını tekrardan açın. Editörünüz bu özelliklere sahip olduğunu göreceksiniz.




Devamını Oku »

AXAPTA 2012 R3 CUMULATIVE UPDATE 10



Axapta 2012 R3 CU 10


Merhaba,

Axapta 2012 R3 CU 10 yayınlandı. Buradan yapılan değişiklikler hakkında daha detaylı bilgiye ulaşabilirsiniz.


Devamını Oku »

AXAPTA 2012 FORM TEMPLATE


AXAPTA 2012 FORM TEMPLATE

Merhaba,

Bu makalede Axapta 2012 nin yeni bir özelliği olan form şablonlarından bahsedeceğim. Şablonları kısa bilgi ve örneklerle açıklamaya çalışacağım.

ListPage: Bir modül için gerekli olan master dataların girileceği formlar. Örneğin;
Accounts receivable > Common > Customers > All Customers

 The Grid dataların birkaç önemli alanları ile birlikte listesini gösterir.

 The Filter bar gridde bulunan dataların son kullanıcılar tarafından filtrelenmesi için kullanılır.

 The Preview Pane seçilen kayda ait daha detaylı bilgileri gösterir

 FactBoxes seçilen kayda ait daha detaylı bilgileri gösterir. Üç çeşittir;

1.       Info part
2.       Form part
3.       Cues

 The Action Pane menu itemların, butonların bulunduğu kısımdır.

DetailsFormMaster: Master dataların görüntülenip güncellenebileceği formlar. Örneğin;
Accounts receivable > Common > Customers > All Customers > Edit

DetailsFormTransaction: Trans ve worksheet datalarının görüntülenip güncellenebileceği formlar. Örneğin; Sales and marketing > Common > Sales Orders > All sales orders > Edit

SimpleListDetails: Kurulum datalarının olduğu formlar. Örneğin;
General ledger > Setup > Currency > Currencies

SimpleList: Temel sorgulama datalarının olduğu formlar. Örneğin;
Master planning > Inquiries > Processes > Planned orders log

TableOfContents: Modüle ait parametre datalarının olduğu formlar. Örneğin;
Accounts payable > Setup > Accounts payable parameters

Dialog: Örneğin; Product information management > Products >Products > New product



Devamını Oku »

AXAPTA 2012 MODEL MANAGEMENT


Merhaba,

Model yapısı, Axapta müşterilerin ve çözüm ortaklarının aynı Ax katmanı üzerinde çözümlerini-projelerini daha kolay bir şekilde kurabilme ve koruyabilme kolaylığı sağlaması amacıyla Axapta 2012 de geliştirilen bir yapıdır. Model bir katman üzerinde kurulur ve bir katmanda birden fazla Model olabilir. Axaptanın her bir katmanında sistem tarafından oluşturulan default birer Model vardır ve bu modeller katmanı tanımlayıcı rolü üstlenmişlerdir. Axaptadaki elamanlar (tablolar, formlar, classlar, fieldlar, metodlar, EDT vs.) aynı katman üzerinde sadece ve sadece tek bir model içinde tutulurlar. Bu yapı ile Axapta 2012 aktarımları daha kolay hale getirmeye çalışmıştır.

Herhangi bir katmanda oluşturulan Model’i başka bir katmana aktarmak istediğimizde, AOT dan o modele ait bir proje oluşturmak zorundayız. Oluşturduğumuz bu projeyi de , .xpo dosyası şeklinde dışarı aktarmalıyız. Aktarımın yapılacağı katmanda ise yeni bir model oluşturmalıyız. Ve daha önce dışarı aldığımız xpo dosyasını yeni model de içeri almalıyız.

Yeni bir model oluşturmak için öncelikle geliştirme ortamını açmamız gerekir. Geliştirme ortamında Tools > Model management > Create model  i seçiyoruz.

AXAPTA 2012 MODEL MANAGEMENT

Ardından açılan ekrandaki alanları alttaki şekilde doldurup tamam diyoruz. Böylelikle modelimizi oluşturmuş oluyoruz.

AXAPTA 2012 MODEL

Current model olarak seçtiğimiz modeli geliştirme ortamının sağ alt köşesinde de görebiliyor olmamız gerekir.

AXAPTA 2012 MODEL MANAGEMENT

Eğer ki başka bir modele geçmek istersek istersek Tools > Model management > Change current model i tıklayarak istediğimiz modele geçebiliriz.

Yukarıda da belirttiğimiz gibi model yapısında elamanlar (tablolar, formlar, classlar, fieldlar, metodlar, EDT vs.) aynı katman üzerinde sadece ve sadece tek bir model içinde tutulurlar. Elemanlar hangi model üzerinde tutulduğunu görmek için ise Tools > Model management > Model elements e tıklayarak görebiliriz. 

Herhangi bir model üzerinde bulunan bir elemanı başka bir modele taşımak için ise elaman üzerinde sağ tıklayarak Move to model i seçerek istediğimiz modele taşıyabiliriz.

AXAPTA 2012 MODEL MANAGEMENT

Oluşturduğumuz bir model üzerinde Axapta ne gibi değişiklikler, geliştirmeler yaptık diye merak ediyorsak model yapısının da bunun içinde bir çözüm var.  Tools > Model management > Create project from modele tıklıyoruz. Bu butonun işlevi current model üzerinde yapılan tüm geliştirmeleri bir proje üzerinde toplamaktır.

AXAPTA 2012 MODEL MANAGEMENT

Devamını Oku »

AXAPTA 2012 TABLE INHERIT-EXTEND


Merhaba,

Bu makalemizde Axapta 2012 ile birlikte gelen ve Axapta 2009 da olmayan yeni bir tablo özelliğinden bahsedeceğiz. Yeni Axapta ile artık tablolar inherit veya extend edilebilme özelliğine sahip oldular. Temelde bulunan tabloda kendinden türetilecek olan tüm tablolar için ortak olan alanlar yer alır. Türetilen tablo ise bu temel alanların yanında amacına uygun başka alanlar içermelidir. Tablo özellikleri arasında bulunan Support Inheritance  ve Extends özelliklerini kullanarak tablolarımızı türetebiliriz. Burada önemli olan bu özellikleri doğru yerlerde kullanmaktır. Bu özellikleri kullanabilmek için bazı kurallar vardır. Bunlar;
  •   Sadece ve sadece regular table larda kullanabiliriz.
  •   Support Inheritance  ve Extends özellikleri set edebilmemiz için oluşturduğumuz tabloda hiçbir alan bulunmaması gerekir.
  •   Child tablolarla ilişkiyi kurabilmek amacıyla root tablosunda Int64 tipinde adı InstanceRelationType olan bir alan oluşturmamız gerekmektedir.
Şimdi ise bu özelliklerin nasıl kullanıldığını göstermek için bir örnek yapalım. Alttaki resimdeki yapıyı kurmaya çalışalım. Burada BasicInfo bizim root tablomuz, EmpTable ve CompanyTable ise child tablolarımızdır.

AXAPTA 2012 TABLE INHERIT-EXTEND

İlk önce root tablomuzdan başlamamız gerekir. AOT ta yeni bir tablo oluşturalım, Support Inheritance  özelliğini Yes olarak set edelim ve kaydedelim. Kaydettiğimizde alttaki gibi bir hata atmaktadır. Bu hata bize bir sonraki aşamada ne yapmamız gerektiğini bildiriyor. 

AXAPTA 2012 TABLE INHERIT-EXTEND

Hata ekranında da belirttiği gibi root tablomuzda InstanceRelationType adında Int64 tipinde bir alan açalım ve tablodaki InstanceRelationType özelliğinde bu alanı seçelim. Ardından da diğer alanlarımızı açarak root tablomuzu tamamlayalım.

AXAPTA 2012 TABLE INHERIT-EXTEND

Şimdi child tablolarımızı oluşturalım. AOT da iki tane tablo oluşturduktan sonra bu iki tablo için Support Inheritance  Yes ve ardından Extends özelliklerini  root tablomuz olan BasicInfo olarak set edelim. Ardından da diğer alanları oluşturarak child tablolarımızı tamamlayalım.

AXAPTA 2012 TABLE INHERIT-EXTEND

Şimdi ise child tablolarına birer kayıt girelim.

AXAPTA 2012 TABLE INHERIT-EXTEND


AXAPTA 2012 TABLE INHERIT-EXTEND


Child tablolarına kayıtları girdikten sonra BasicInfo tablosunun son hali.

AXAPTA 2012 TABLE INHERIT-EXTEND




Devamını Oku »

AXAPTA 2012 UNIT OF WORK

Merhaba,

Bu makalemizde Axapta 2012 ile beraberinde gelen yeni bir özelliği anlatacağım. Bir diğer yeni özellik olan Surrogate Keys özelliği ile birbirine bağlı olan iki tabloda bir job ile kayıt oluşturduğumuzda bu relation özelliğini unit of work özelliğini kullanarak kolayca yapabiliriz. Konunun daha kolay anlaşılabilir olması için bir örnek üzerinden ilerleyelim. Elimizde Header  ve Line olmak üzere iki tablomuz olsun. Ve bu tablolar birbirine bir surrogate key ile bağlı olsun.

AXAPTA 2012 UNIT OF WORK

Şimdi bir job yardımı ile Line tablosunda 10 adet kayıt oluşturalım. Ve bu oluşturduğumuz kayıtlardaki miktar alanlarının toplamını da Header tablosunda yeni bir kayıt açarak tutalım. Bu kayıtlar arasındaki ilişkiyi Surrogate Keys den gelen özellik olarak Header tablosundaki kaydın RecId si Line tablosuna yazalım. Böyle bir durumda Axapta 2009 da önce her iki tabloda da kayıtları oluşturup sonra verilere göre de her iki kaydı güncellemek gerekecekti. Ancak 2012 de unit of work özelliğini kullanarak iki kaydı da aynı anda oluşturmak mümkün. 

AXAPTA 2012 UNIT OF WORK

AXAPTA 2012 UNIT OF WORK



Devamını Oku »