Common String Functions in Dynamics 365 X++ with Examples


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.
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