Posts Tagged ‘ Dynamics 365 CRM

Ax2012 Clinet Crash Sorunu?

Bu yazıda bir müşterimde karşılaştığım Client kapanma sorununu nasıl çözdüğümü anlatacağım. Ax2012 R3 te olan bu ortamda birdenbire bazı clientlar kapanmaya başladı. Bazen AOS ta kapanıyordu. Dump alıp baktığımızda Heap corruption hatası vardı ama kodsal olarak bir yere işaret etmiyordu. Uzun incelemeler sonunda belli bir tablo tespit ettim. ProjProposalJour bu tabloya bazı yerlerden dokununca patlıyor bazı yerlerden dokununca patlamıyordu. Bu da sorunun tespitini çok zorlaştırdı çünkü ne hata veriyor ne de bir bilgi gösteriyordu.  Temel yapılması gerekenleri yaptım. Full derleme senkronizasyon CIL gibi ama buralarda da hatalar vardı. Özellikle SQL üzerinden oluşturulan indexler sebebiyle senkronizasyon baya sorunlu hala gelmişti.  Tek tek çözmeye çalıştım.  Bu problemleri çözünce müşterinin çalışmadığı bir saate ProjProposalJour patlatmayan yerden çoğaltım. Patlayan AOS’u restart edip çoğalttığım nesnede de patladığını gördüm. Bu durumda kesin nesnede bir sorun var diye düşündüm ve tek tek alt nesneleri silmeye başladım uzun uğraşlar sonunda patlatan şeyin relation’lar olduğunu tespit ettim ama bu çok mantıklı değildi relation neden patlatsın. Sonra tekrar full senkronizasyon başlattım. Sonunda aşağıdaki uyarıyı gördüm.

The SQL database has issued an error.
Info Synchronize database SQL error description: [Microsoft][SQL Server Native Client 11.0][SQL Server]The index ‘I_592INDEX1FGD’ on table ‘DBO.PROJINVOICEJOUR’ has 95 columns in the key list. The maximum limit for index key column list is 16.
Info Synchronize database SQL statement: CREATE   INDEX I_592INDEX1FGD’ ON “DBO”.PROJINVOICEJOUR (PARTITION,DATAAREAID,DELIVERYNAME,PROJGROUPID,ORDERACCOUNT,INVOICEACCOUNT,INVOICEDATE,DUEDATE,CASHDISC,CASHDISCDATE,COSTVALUE,SUMLINEDISC,SALESORDERBALANCE,ENDDISC,INVOICEAMOUNT,CURRENCYID,EXCHRATE,PROJINVOICEID,LEDGERVOUCHER,ONACCOUNTAMOUNT,TAXPRINTONINVOICE,ENTERPRISENUMBER,DLVTERM,DLVMODE,PAYMENT,CASHDISCCODE,INVOICEROUNDOFF,CASHDISCPERCENT,TAXGROUPID,TAXSPECIFYTOTAL,TAXSPECIFYBYLINE,PAYMENTSCHED,SUMTAX,PROPOSALID,POSTINGPROFILE,PROJINVOICEPROJID,PARMID,INTRASTATDISPATCHID,LISTCODEID,PROJINVOICETYPE,TRIANGULATION,EXCHRATESECONDARY,PORT,WEIGHT,VOLUME,QTY,VATNUM,LANGUAGEID,PAYMDAYID,EUSALESLIST,SUMMARKUP,NUMBERSEQUENCEGROUPID,POSTINGJOURNALID,EINVOICELINESPECIFIC,SMASPECINDEXCALC,GIROTYPE,EINVOICEACCOUNTCODE,INTERCOMPANYPOSTED,PAYMID,PRINTEDORIGINALS,DELIVERYPOSTALADDRESS,DEFAULTDIMENSION,VOUCHERNUMBERSEQUENCETABLE,SOURCEDOCUMENTHEADER,INVOICENUMBERINGCODE_LT,INVOICEREGISTER_LT,WHOISAUTHOR_LT,SALESDATE_CZ,DESCRIPTION,DOCUMENTDATE_W,INTRASTATADDVALUE_LV,PSAENDDATEMAXINVOICEID,DIRECTDEBITMANDATE,NARRATION_BR,PSAINVOICEFORMATS,REASONTABLEREF,TAXINFORMATION_IN,TRANSPORTATIONDOCUMENT,INVOICETYPE_MY,RECVERSION,MODIFIEDDATETIME,MODIFIEDBY,CREATEDDATETIME,CREATEDBY,
Error Synchronize database Cannot execute a data definition language command on  ().

ProjInvoiceJour ile ProjProposalJour ilişkili iki tablo asıl sorun ProjInvoiceJour’da. Sorunu tespit ettim. Bir şekilde tablonun bütün alanları key olan bir indexe eklenmeye çalışılmış. Biri mi yaptı yoksa metadata bozulmasından kaynaklı bir durum mu bilemiyorum. Ancak bu index ne axta ne de SQL tarafında yok. Dolayısıyla bunu metadata tanımlarından silmek gerekiyordu.

Bu indexi bulmak için Model db sinden birkaç sorgu yapmam gerekti. Öncelikle model tipini tespit ettim.

Resim-1

Sonrasında ismini bildiğim o tabloda bir index bulup ParentHandle kullanarak o tablodaki tüm indexleri listeledim ve silmem gereken indexi buldum.

Resim-2

Bu index tanımını sildikten sonra sistem düzeldi. Tabi bunu yapmadan yedeğimi almıştım. Tespiti beni en çok zorlayan durumlardan biri oldu. Bu arada Microsoft ta işin içine dahil oldu ama onlarda direk tespitte bulunamadılar.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Ax2012, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Segmented Entry, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations Boyut işlemleri?

Bu yazıda Dynamics 365 Finance and Operations için boyut işlemlerini nasıl yapabiliriz bir job ile anlatmaya çalışacağım. Ax2012 DimensionStore sınıfı birçok metodu barındırıyordu ancak MsDyn365FO ile helper sınıfları kullanılır oldu bu yüzden birçok metot bu sınıflara taşındı. Ax2012 için hazırladığım yazıya buradan ulaşabilirsiniz. Birkaç metot eksik olmakla birlikte genel manada 3 tane sınıf işimizi görüyor.

class FDDimJob1

{

public static void main(Args _args)

{

DimensionAttributeValueCombination  dimAttrValueCombDefaultAccount;

DimensionAttributeValueCombination  dimAttrValueComb;

DimensionAttributeValueCombination  dimAttrValueCombCompare;

DimensionAttributeValueCombination  dimAttrValueCombCust;

DimensionAttributeValueSet          dimAttrValueSet;

MainAccount                         mainAccount;

CustTable                           custTable;

LedgerJournalACType                 ledgerJournalACType;

DimensionHierarchy                  dimHierarchy;

;

// Örneklerde kullanmak için bazı kayıtları buluyorum

dimAttrValueCombDefaultAccount  = DimensionAttributeValueCombination::find(22565427296);

dimAttrValueComb                = DimensionAttributeValueCombination::find(22565428050);

dimAttrValueCombCompare         = DimensionAttributeValueCombination::find(22565428053);

mainAccount                     = MainAccount::find(22565425069);

custTable                       = CustTable::find(“US-006″);

// Bir hesap ve tip alarak size LedgerDimension’da kayıt varsa getirir yoksa oluşturur.

dimAttrValueCombCust = DimensionAttributeValueCombination::find(

LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(custTable.AccountNum , LedgerJournalACType::Cust));

info(strfmt(“LedgerDimension RecId = %1″ , dimAttrValueCombCust.RecId));

// Bir MainAccount ait defaultAccount varsa getirir yoksa oluşturur.

info(strfmt(“DafaultAccount RecId = %1″ ,

LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountRecId(mainAccount.RecId)));

// Bir MainAccount ait defaultAccount varsa getirir yoksa oluşturur.

info(strfmt(“DafaultAccount RecId = %1″ ,

LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountId(mainAccount.MainAccountId)));

// Bir LedgerDimension’daki boyutları yanzı DimensionAttributeValueSet recId sini veriri.

info(strfmt(“DafaultDimension RecId = %1″ ,

LedgerDimensionFacade::getDefaultDimensionFromLedgerDimension(dimAttrValueComb.RecId)));

// LedgerDimension’a ait DefaultAccount’u verir.

info(strfmt(“DefaultAccount  RecId = %1″ ,

LedgerDefaultAccountHelper::getDefaultAccountFromLedgerDimension(dimAttrValueComb.RecId)));

// LedgerDimension’a ait MainAccount’u verir.

info(strfmt(“MainAccount  Name = %1″ ,

LedgerDimensionFacade::getMainAccountFromLedgerDimension(dimAttrValueComb.RecId).Name));

// LedgerDimension’a ait MainAccount’u verir.

info(strfmt(“MainAccount  RecId = %1″ ,

LedgerDimensionFacade::getMainAccountRecIdFromLedgerDimension(dimAttrValueComb.RecId)));

// LedgerDimension’a ait AccountNum’u verir.

info(strfmt(“CustTable AccountNum = %1″ ,

LedgerDynamicAccountHelper::getAccountNumberFromDynamicAccount( dimAttrValueCombDefaultAccount.RecId)));

}

}

Resim-1

İlerleyen yazılarda Ax2012 ile aradaki farkları açıklayan yazılar yazmaya devam edeceğim.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, DefaultAccount, LedgerDimension, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations SQL Insights?

Bu yazıda Dynamics 365 Finance and Operations SQL Insights hakkında kısa bir tanıtım yapmaya çalışacağım. MSDyn365FO bir bulut servisi olduğu için sunucularına direk ulaşımımız yok. Dolayısıyla SQL e direk bağlanamıyoruz. Ancak SQL üzerinden yapılması ve kontrol edilmesi gereken birçok işlem var. Bunları LCS üzerinden SQL Insights ile yapabilirsiniz. Nerden ulaşırız neler yapabiliriz hızlıca bakalım.

LCS’e giriş yaptıktan sonra Production ortamının detaylarını Full details ile açıyoruz.

Resim-1

Açılan detay sayfasının sonunda Environment Monitoring’e tıklıyoruz.

Resim-2

SQL Insights sekmesini açıyoruz. 5 faklı alt sekme var ben Queries ve Actions’tan bahsedeceğim.

Resim-3

Özellikle performans kontrolleri için çalıştırabileceğiniz birçok sorgu var. Bir tanesi çalıştırıp nasıl bir veri oluşturduğunu anlatacağım.

Resim-4

Action kısmında SQL den yapabileceğiniz birçok işlemi yapma imkân var.

Resim-5

İndex oluşturup silebilirsiniz. İstatistikleri güncelleyebilirsiniz. Listede bir çok işlem mevcut.

Resim-6

Örnek olsun diye en maliyetli sorguları veren işlemi çalıştırdım. Parametrelerden istediğiniz seçimleri yapabilirsiniz. Vergi ve fatura ile ilgili iki sorgunun en maliyetli sorgular olduğunu gördüm. Büyük ihtimalle bunlar için uygun index yok veya execution planlarında sorun var. Ayrıntılı inceleyip düzenleme yapmak lazım.

Resim-7

Direk SQL ulaşımımız olmadığı için SQL Insights’ın bu kadar gelişmiş imkânları sunması çok iyi olmuş bir çok işlemi kontrollü bir şekilde buradan yapabilirsiniz. Tabi ki direk SQL’e ulaşmak kadar esnek değil ama buda bir şey.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, DefaultAccount, SQL Insights, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Segmented Entry, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations LedgerDimension ve Segmented Entry nasıl eklenir?

Bu yazıda Dynamics 365 Finance and Operations içinde bir tabloya LedgerDimension nasıl eklenir ve bu alanı formda Segmented entry control ile nasıl kullanıcıya kullandırabiliriz anlatmaya çalışacağım.

LedgerDimension aslında DimensionAttributeValueCombination kaydıdır. LedgerDimension MainAccount ve DefaultDimension’ın bileşimidir.

Öncelikle Tabloya LedgerDimensionAccount EDT sini kullanarak bir alan ekleyelim. Eğer sürükle bırak ile eklerseniz otomatik ilişkiyi oluşturacak. Yoksa elle eklemeniz gerekir.

Resim-1

Sonrasında forma gelip eklediğimiz alanı tasarımda istediğimiz bir yere sürükleyip bırakıyoruz. Segmented Entry oluşuyor. Özelliklerinde resimde görünen tanımları yapmalıyız. Özellikle Controller Class çok önemli.

Resim-2

Derleyip çalıştırdığımızda formda alanımızı göreceğiz. DefaultAccount ile aradaki farkı görebilirsiniz. Sadece Main Account değil boyutlarda geliyor ve bir kombinasyon oluşturuluyor.

Resim-3

Oluşan verileri Sql üzerinden incelediğimizde aradaki fark çok net bir şekilde ortaya çıkıyor.

Resim-4

Bu yazıda LedgerDimension nedir ve nasıl eklenir anlatmaya çalıştım. Sonraki yazılarımda bunları kodda nasıl kullanıp birbirlerine çeviriyoruz anlatmaya devam edeceğim.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, DefaultAccount, LedgerDimension, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Segmented Entry, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations DefaultAccount ve Segmented Entry nasıl eklenir?

Bu yazıda Dynamics 365 Finance and Operations içinde bir tabloya DefaultAccount nasıl eklenir ve bu alanı formda Segmented entry control ile nasıl kullanıcıya kullandırabiliriz anlatmaya çalışacağım.

DefaultAccount aslında DimensionAttributeValueCombination kaydıdır. MainAccount tablosunu referans alır ama asıl yeri orası değildir. Birçok boyut ve hesap ilişkisinde kullanılır.

Öncelikle Tabloya LedgerDimensionDefaultAccount EDT sini kullanarak bir alan ekleyelim. Eğer sürükle bırak ile eklerseniz otomatik ilişkiyi oluşturacak. Yoksa elle eklemeniz gerekir.

Resim-1

Sonrasında forma gelip eklediğimiz alanı tasarımda istediğimiz bir yere sürükleyip bırakıyoruz. Segmented Entry oluşuyor. Özelliklerinde resimde görünen tanımları yapmalıyız. Özellikle Controller Class çok önemli.

Resim-2

Derleyip çalıştırdığımızda formda alanımızı göreceğiz.

Resim-3

Bu yazıda DefaultAccount ve Segmented Entry den bahsettim. Bu alanın kodda nasıl kullanıldığıyla ilgili Ax2012’ de çok yazım olmuştu. D365 içinde örekler yapacağım.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, DefaultAccount, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Segmented Entry, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations Date Effectiveness Nasıl Kullanılır?

Bu yazıda Date Effectiveness nedir ne işe yarar anlatmaya çalışacağım.  İş uygulamaları tamamen veriye dayalı uygulamalardır. Bu verinin doğru ve tutarlı olması aynı zamanda kolay ve hızlı bir şekilde işlenebilmesi gerekir. Bu sebeple X++ veriyi yönetmek için birçok farklı özellik sunar bunlardan biri de Date Effectiveness dır. Eğer başlangıç ve bitiş tarihi veya zamanına ihtiyacı olan bir yapı varsa bu özellik sizin için bu tablonun verilerinin yönetilmesini kolaylaştırır. Hem veri girişinde hem de sorgulamasında birçok otomatik edilmiş özellik mevcuttur.

Örnek bir tabloya ekleyip nasıl kullanıldığını anlamaya çalışalım. Öncelikle eklemek istediğimiz tablonun Valid Time State Field Type özelliğini seçiyoruz. Burada ben Date seçtim UTCDateTime diğer seçenek eğer onu seçerseniz zamanı da eklemiş olursunuz. Seçimi yapınca otomatik olarak ValidTo ve ValidFrom alanları eklenecek.

Resim-1

Read more

Dynamics 365 Finance and Operations Yeni Bir Finansal Boyut DefaultDimensin Alanı Nasıl Eklenir?

Bu yazıda Dynamics 365 Finance and Operations içinde yeni bir finansal boyut alanı tablo ve forma nasıl eklenir anlatmaya çalışacağım. Uygulama içinde iki tip boyut var birincisi stoksal boyutlar, ikincisi finansal boyutlar. Bu yazıda konumuz finansal boyutlar olacak. Öncelikle birkaç kavramı netleştirelim. DefaultDimension içinde sadece boyut bilgileri olan bir kombinasyondur. FinancialDimension ise içinde muhasebe hesabıyla birlikte boyutların olduğu bir kombinasyondur. Bu iki tipin birbirine çevrimi çok sık kullandığımız bir yapıdır. Bir de DefaultAccount var oda sadece muhasebe hesabı için kullanılan hesap kaydıdır. Bu yazıda bir tabloya DefaultDimens alnı açıp formada bütün boyutları gösterecek yapının nasıl kurulacağını anlatacağım.

Öncelikle int64 tipinde yeni bir alan oluşturalım.

Resim-1

Read more

X++ Nesne İsimlendirme Kuralları Nelerdir?

Bu yazıda Dynamics 365 Finance and Operations geliştirmelerinde kullanılan yazılım dili olan X++’ın nesne isimlendirme standartlarından bahsedeceğim. İsimlendirme bir uygulamanın kod kalitesini gösteren en temel konulardan biridir. Doğru bir isimlendirme standardı olmayan bir uygulamanın sorunlu bir yapıya dönüşmesi çok daha muhtemeldir.

Genel kurallar şöyle sıralayabilirim.

  • Tüm isimler ABD İngilizcesi olmalıdır. Bunun sebebi genel bir standart oluşması ve projeye destek verecek mühendislerin daha kolay anlayabilmesidir.
  • Mantıksal ve açıklayıcı adlar kullanılmalıdır. Nesnenin adıyla yaptığı iş uyumlu olmalıdır. Mesela günlük aktiviteleri tutan bir tablo için: DmrActivityListTable
  • İsimlerde 40 karakterlik bir sınırı vardır.
  • Uygulama Nesne Ağacındaki (AOT) ve X++ kodundaki adlar, ABD İngilizcesi kullanılarak adlandırılır ve kullanıcı ara yüzündün de gösterilen etiketlerle uyumlu olmalıdır.
  • İsimlendirmede yazım hatası olmamalıdır. Ayrıca yapılan işe uygun jargonlar kullanılmalıdır.
  • İlişkili değişken ve nesne isimleri tüm uygulama boyunca aynı olmalıdır.
  • AOT içindeki nesneler tekil isime sahip olmalıdır.
  • Kullanıcı ara yüzünde görünen tüm metinler bir etiket kullanılarak tanımlanmalıdır.
  • Yeni nesneler için bir ön ek tanımlanmalı ve tüm nesnelerde kullanılmalıdır. Genelde 2 veya 3 karakterlik bir ön ek tespit edilir. Ben firmamda Dmr kullanıyorum.
  • Tablo, EDT, Enum veya Sınıf ile aynı ada sahip olamaz.
  • CamelCase kullanılır. Örnek vermek gerekirse: Tablo: LedgerJournalTrans. Değişken: amountCurTotal. EDT: CustAcount
  • Alt çizgi (_) sadece türetilmiş nesnelerde, metoda parametre olarak gelen değişkenlerde kullanılır ve lokalizasyon eklerinde kullanılır.
  • Bir etiketin ilk harfi büyük olmalı ve diğer tüm harfler küçük olmalıdır.

Mümkün olduğunca nesne adları üç temel bileşenden hiyerarşik olarak oluşturulmalıdır:

{İş alanı adı} + {İş alanı açıklaması} + {sınıf için gerçekleştirilen eylem, tablo için içerik}

Örnekler:

  • CustInvoicePrintout
  • PriceDiscAdmCopy
  • PriceDiscAdmDelete
  • PriceDiscAdmSearch
  • PriceDiscAdmName
  • LedgerJournalTable
  • LedgerJournalTrans

Kısaltmalardan mümkün olduğunca kaçınmak gerekiyor. Eğer kısaltma kullanacaksanız tüm sistemde aynı kısaltmayı kullanmalısınız. Sistemde bulunan bazı kısaltmalar şunlardır:

  • Customer -> Cust
  • Payment -> Paym
  • Bill of material -> BOM
  • Number -> Num
  • Warehouse Management System -> WMS

Değişken isimlendirmede kısaltma veya ön ek kullanılmamalıdır. Değişkenin kullanım amacına uygun isimlendirme yapılmalıdır.

Doğru örnekler:

  • CustTable                           custTableUpdate;
  • CustInvoiceJour               custInvoiceJour;
  • CustAcount                       custAcountInvoice;
  • Amount                              totalTaxAmount;

Hata örnekler:

  • CustTable                           ct;
  • CustInvoiceJour               ciJour;
  • CustAcount                       customer;
  • Amount                              amount1;

Extension için ayrı bir makale bile yazılabilir. Hala netleşmeyen konular olmakla birlikte temel olarak şu makaleyi takip edebilirsiniz. Burada önemli olan tüm geliştiricilerin aynı standardı kullanması. Aksi durumda kod tekrarı ve gereksiz zaman kaybı oluşabilir.

Bu yazıda isimlendirme standartlarından bahsettim. Birçok kural aslında genel yazılım kuralı farklılaşanlar ürünün getirdiği standartlar, bunlar doğrudur diğer kullanımlar hatalıdır diye bir durum yok aslında. Herkesin farklı bir yoğurt yiyişi olabilir ama Dynamics 365 bir ürün ve standartları var, kendi standartlarınızı buraya uygulamamalısınız. Sonuçta burası bir uygulama ve biz ona eklemeler yapıyoruz. Dolayısıyla standartlarına uymak zorundayız. Bu konu gerçekten çok önemli doğru isimlendirme olmayan bir kodda eklem yapmak hata ayıklamak gerçekten çok can sıkıcı oluyor.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Nameing, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations Bussines Events Nedir?

Bu yazıda Bussines Event nedir ne işe yarar anlatmaya çalışacağım. Bussines Event diğer sistemlerin Finance and Operations’dan bilgilendirme almasını sağlayan bir yapıdır. Dış sistemlere bu bilgilendirme, içerde bir olay olduğunda tetiklenir. Bu olay ya bir iş akışı işlemleridir ya da iş akışı dışındaki olaylardır. Bütün bu tipler için tetikleme mekanizmaları var ayrıca yeni durumlar için eklemeler yapabiliyoruz. Bu yapıyı bir entegrasyon gibi düşünmemek lazım. Büyük veri için uygun bir altyapı değil. Bussines Event iş olayları olarak çevriliyor.

Business events catalog’a System administration > Set up > Business events yoluyla ulaşabilirsiniz. Bu formda ulaşılabilen Bussines Event’leri görebilirsiniz.

Resim-1

Read more

Dynamics 365 Finance and Operations Etiket(Label) Dosyası Nasıl Oluşturulur?

Bu yazıda Dynamics 365 Finance and Operations için yeni bir etiket dosyası nasıl oluşturulur anlatmaya çalışacağım. Etiketler sistemin çoklu dile destek verebilmesini sağlayan yapıdır. Bizde yaptığımız geliştirmelerde yeni etiketlere ihtiyaç duyarız. Bunun için genelde proje başlangıcında bir etiket dosyası oluşturulur ve tüm yazılımcılar bu dosyayı kullanırlar.

Örnek bir Etiket dosyası oluşturalım. Yeni bir nesne ekleme formunu açıyoruz. Label File seçip Add diyoruz. Bu bize bir sihirbaz ara yüzü açacak. Bunun açılması biraz uzun sürebiliyor.

Resim-1

Read more

Page 2 of 111234510...Last »