Common String Functions in Dynamics 365 X++ with Examples

Bayram ÇETİNBayram ÇETİN
2 min read

Dynamics 365 Finance and Operations (D365 FO) geliştiricileri için metin (string) işlemleri, günlük geliştirme süreçlerinin vazgeçilmez parçalarındandır. Kullanıcı girdilerini kontrol etmek, verileri parçalara ayırmak veya formatlamak gibi birçok senaryoda bu işlemler karşımıza çıkar.

Bu yazıda, X++ dilinde sıkça kullanılan bazı temel metin komutlarını ve bunların pratik örneklerini inceleyeceğiz:


🔹 strFmt

Belirli bir format içerisinde birden fazla değeri birleştirmek için kullanılır.

str name = "Ahmet";
int age = 30;
str result = strFmt("Ad: %1 - Yaş: %2", name, age);
// Sonuç: "Ad: Ahmet - Yaş: 30"

Özellikle bilgi mesajları, log kayıtları ya da çıktılar oluştururken hayat kurtarır.


🔹 strlen

Bir metnin uzunluğunu döner.

str text = "Dynamics365";
int length = strlen(text);
// Sonuç: 11

Boş mu değil mi kontrolü yaparken veya maksimum karakter sınırlamalarını aşmamak için kullanılır.


🔹 strFind

Bir metin içinde, başka bir metnin yerini (başlangıç indeksini) bulur.

str fullText = "Dynamics365";
int index = strFind(fullText, "365", 1, strlen(fullText));
// Sonuç: 9

Bulunamazsa 0 döner. Özellikle doğrulama veya ayrıştırma işlemlerinde faydalıdır.


🔹 subStr

Bir metnin belirli bir bölümünü almak için kullanılır.

str text = "Dynamics365";
str part = subStr(text, 1, 8);
// Sonuç: "Dynamics"

Genellikle sabit formatlı metinleri ayrıştırmak için kullanılır (örneğin fatura numaralarından tarih çekmek).


🔹 strDel

Bir metinden, belirli bir aralıktaki karakterleri siler.

str text = "Dynamics365";
str result = strDel(text, 9, 3);
// Sonuç: "Dynamics"

Bu örnekte 9. karakterden başlayarak 3 karakter silindi. Genellikle istenmeyen karakterleri temizlemek için idealdir.


🔹 strSplit

Bir metni, belirli bir ayırıcıya göre parçalara ayırır. X++ içinde strSplit metodu Global sınıfında yer alır.

List parts = strSplit("Ahmet,Mehmet,Ayşe", ",");
ListEnumerator enumerator = parts.getEnumerator();
while (enumerator.moveNext())
{
    info(strFmt("İsim: %1", enumerator.current()));
}

Sonuç:

İsim: Ahmet  
İsim: Mehmet  
İsim: Ayşe

CSV ayrıştırma, isim-soyisim ayırma gibi işlemlerde oldukça kullanışlıdır.


🎯 Gerçek Hayattan Senaryo Örneği

str fullName = "Çetin, Bayram";
List nameParts = strSplit(fullName, ",");
str surname = strLTrim(nameParts.get(1));
str name = strLTrim(nameParts.get(2));

info(strFmt("Ad: %1 - Soyad: %2", name, surname));

Bu örnekte kullanıcıdan gelen "Soyad, Ad" formatındaki veri doğru şekilde parçalanıyor ve ekrana düzgün bir şekilde yazdırılıyor.


📝 Sonuç

Metin işlemleri Dynamics 365 projelerinde küçük ama kritik roller üstlenir. strFmt, strFind, strDel, strSplit gibi komutlar sayesinde karmaşık veri işleme ihtiyaçları bile basit çözümlerle karşılanabilir. Bu fonksiyonları iyi bilmek, hem kod kalitesini artırır hem de daha okunabilir ve yönetilebilir çözümler üretmemizi sağlar.

0
Subscribe to my newsletter

Read articles from Bayram ÇETİN directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Bayram ÇETİN
Bayram ÇETİN

Senior Dynamics 365 Developer