Posts Tagged ‘ Extension

X++ :26- Extension ile Standart Bir Formun Event Metotlarına kod eklemek.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart bir formun DataSource eventlerine kod nasıl eklenir anlatmaya çalışacağım.

Önceki yazımda smmActivities’e bir alan eklemiştik. Şimdi yine smmActivities dataSource’nun bazı olaylarına kod ekleyelim. Öncelikle validateDelete koduna eklem yapmak istiyorum. Standart kod böyleymiş.

Resim-1

Öncelikle yeni bir sınıf oluşturuyorum daha önce oluşturduğum Extension formunu açıyorum. DataSource’a gelip eventlerden ilgili eventi bulup Copy event handler method diyorum.

Resim-2

Sonra bunları oluşturduğum sınıfa yapıştırıyorum ve aşağıdaki gibi içlerini dolduruyorum.

class FDSmmActivitiesFormEventHandler

{

/// <summary>

///

/// </summary>

/// <param name=”sender”></param>

/// <param name=”e”></param>

[FormDataSourceEventHandler(formDataSourceStr(smmActivities, smmActivities), FormDataSourceEventType::ValidatingDelete)]

public static void smmActivities_OnValidatingDelete(FormDataSource sender, FormDataSourceEventArgs e)

{

smmActivities smmActivities = sender.cursor(); // Bu sayede aktif kaydı aldım.

if(smmActivities.FDActivityId !=”")

{

checkFailed(“FDActivityTable Record Exist.”);

}

}

/// <summary>

///

/// </summary>

/// <param name=”sender”></param>

/// <param name=”e”></param>

[FormDataSourceEventHandler(formDataSourceStr(smmActivities, smmActivities), FormDataSourceEventType::Activated)]

public static void smmActivities_OnActivated(FormDataSource sender, FormDataSourceEventArgs e)

{

smmActivities smmActivities = sender.cursor(); // Bu sayede aktif kaydı aldım

FormRun formRun = sender.formRun(); // Form run a ulaştım

FormControl formControl =  formRun.design(0).controlName(“smmActivities_FDActivityId”); // Herhangi bir form nesnesine bu şekilde ulaşabilirim.

if(smmActivities.Status == smmActivityStatus::Read) // Örnek olsun diye yaptım çok mantıklı bir kontrol değil.

{

formControl.enabled(false);

}

else

{

formControl.enabled(true);

}

}

}

Bu yazıda Extension mantığıyla standart bir formun eventlerine nasıl kod eklenir anlatmaya çalıştım. Eski mantığa göre biraz daha zor ve uzun süren bir iş ama getirileri çok büyük. Extension bundan sonra uzun bir süre hayatımızda olacak mantığını kavrayıp bütün işleri bu mantıkla çözmeye çalışmak gerekiyor.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Extension, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :25- Extension ile Standart Bir Tablo Metoduna Ekleme Yapmak.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart bir tablo metoduna kod nasıl eklenir anlatmaya çalışacağım.

Önceki yazımda smmActivities’e bir metot eklemiştim. Şimdi yine smmActivities’te bir kayıt oluşturulduğunda bu metodu tetiklemek için ne yapmalıyız anlatacağım. Öncelikle bir sınıf oluşturalım. Sonrasında resimde olduğu gibi smmActivities için daha önce oluşturduğumuz Extension üzerinden Copy event handler method deyip post olanı kopyalıyoruz.

Resim-1

class FDSmmActivitiesEventHandler

{

/// <summary>

///

/// </summary>

/// <param name=”args”></param>

[PostHandlerFor(tableStr(smmActivities), tableMethodStr(smmActivities, insert))] // Bu kısım bizim için gerekli tanımları yapıyor.

public static void smmActivities_Post_insert(XppPrePostArgs args)

{

smmActivities smmActivities;

;

smmActivities = args.getThis(); // GetThis() ile üzerinde bulunduğumuz kaydı alıyoruz.

smmActivities.createFDActivityTable(smmActivities); // Bir önceki yazıda oluşturduğumuz metot.

}

/// <summary>

///

/// </summary>

/// <param name=”args”></param>

[PreHandlerFor(tableStr(smmActivities), tableMethodStr(smmActivities, validateField))] // Aynı şekilde validateField metodunun bu sefer preHandler oluşturuyoruz.

public static void smmActivities_Pre_validateField(XppPrePostArgs args)

{

}

}

Bu yazıda standart bir tablo metoduna pre post eventHandler nasıl eklenir anlatmaya çalıştım. Burada da isimlendirmeye dikkat etmek lazım.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Extension, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :24- Extension ile Standart Bir Tabloya Metot eklemek.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart bir tabloya yeni bir metot nasıl eklenir anlatmaya çalışacağım.

Önceki yazımda smmActivities’e bir alan eklemiştik. Şimdi yine smmActivities’e bir FDActivityTable kaydı oluşturan bir metot ekleyelim. Öncelikle bir sınıf oluşturalım. Sonrasında aşağıdaki kodu yazalım.

[ExtensionOf(Tablestr(smmActivities))] // Burası önemli bu sınıfın smmActivities tablosunun bir Extension’ı olduğunu söylüyor.

final class FDSmmActivities_Extension // Final olması gerekiyor ve _Extension ile bitirmek lazım.

{

public void createFDActivityTable(smmActivities _smmActivities) // Kayıt oluşturan metodumuz.

{

FDActivityTable       activityTable;

smmActivities           smmActivitiesUp;

NumberSeq               numberSeq;

FDActivityId              activityId;

;

ttsbegin;

numberSeq   = numberSeq::newGetNum(NumberseqmoduleFDActivity::numRefActivityId());

activityId       = numberSeq.num();

activityTable.clear();

activityTable.ActivityId         = activityId;

activityTable.ActivityDate   = DateTimeUtil::date( _smmActivities.ActualEndDateTime);

activityTable.Employee        = _smmActivities.ResponsibleWorker;

activityTable.insert();

smmActivitiesUp                                    = smmActivities::findWithRecId(_smmActivities.RecId , true);

smmActivitiesUp.FDActivityId           = activityTable.ActivityId;

smmActivitiesUp.update();

ttscommit;

}

}

Artık bu metodu smmActivities’te kullanabiliriz. Bir job yazıp deneyebiliriz.

class FDJob3

{

public static void main(Args _args)

{

smmActivities smmActivities;

;

Select firstonly smmActivities;

smmActivities.createFDActivityTable(smmActivities);

}

}

Bu yazıda Extension mantığıyla standart bir tabloya nasıl metot ekleyebileceğinizi anlattım. Burada dikkat etmeniz gereken bir konu bu sınıfların isimlendirmesi ve tekilleştirme.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Extension, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :23- Extension ile Standart Bir Forma Alan eklemek.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart bir tabloya eklenen alanların nasıl forma eklenebileceğini anlatmaya çalışacağım.

Bir önceki yazımda smmActivities’e bir alan eklemiştik. Şimdi AOT üzerinden Formları açıyoruz. Sonrasında smmActivities formuna sağ tıklayıp Create extension’a tıklıyoruz.

Resim-1

Projemde Extension oluştu. Adını değiştirebilirim ama benim için şu anada adı uygun. Çift tıklayıp açıyorum.

Resim-2

Açılan Extension formu içinden veri kaynağına baktığımda bir önceki yazımda eklediğim alan otomatik geldi.  Sürükleyip tasarımda uygun bir yere bırakıyorum.

Resim-3

Artık hazırız. Projeyi Build edip çalıştırabiliriz.

Resim-4

Bu yazıda Extension ile standart bir tabloya eklenen yeni bir alanın formda nasıl gösterilebileceğini anlattım. Sonraki yazılarımda Extension ile kod yazmak ile ilgili örnekler yapacağım.

Selamlar.

www.fatihdemirci.net

TAGs: Extension, X++, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :22- Extension ile Standart Bir Tabloya Alan eklemek.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart tablolara alan nasıl eklenir anlatmaya çalışacağım.

Öncelikle bu yazılarda Youtube videolarımda oluşturduğum Activity Managment projesini kullanacağım. Bu projede kullanmak üzere aktivitelerimi smmActivities tablosuna bağlamak için bir alan açıp bunu kullanacağız. smmActivities CaseManagment paketinden eğer yoksa öncelikle kendi paketinize eklemiz gerekiyor. Sonrasında sağ tıkladığınızda Create extension’a tıklıyoruz.

Resim-1

Projemde Extension oluştu. Adını değiştirebilirim ama benim için şu anada adı uygun. Çift tıklayıp açıyorum.

Resim-2

Açılan Extension içinden Fields2a sağ tıklayıp yeni bir alan oluşturuyorum.

Resim-3

Alanın özelliklerini belirleyip kaydediyorum.

Resim-4

Projemi eşitliyorum. Eğer hata yoksa tabloya alanı eklemiş oldu.

Resim-5

Bu yazıda Extension ile standart bir tabloya yeni bir alan nasıl eklenir anlatmaya çalıştım. Burada Extension isimlendirmesine dikkat etmek lazım. Birden çok geliştirme yapan varsa özellikle isimlendirme çok önemli oluyor. Bu şekilde alanı ekledikten sonra kodda tablonun standart bir alanı gibi kullanabilirsiniz. Sonraki yazılarımda Extension ile forma alanı eklemek ve kod düzenlemek ile ilgili örnekler yapacağım.

Selamlar.

www.fatihdemirci.net

TAGs: Extension, X++, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365