UNA segmenti: ayırıcılar her zaman aynı değildir
EDIFACT ayrıştırıcı yazanların ilk varsayımı şudur: segment sonu ', eleman ayracı +, alt eleman ayracı :. Çoğu dosyada doğrudur — ama garanti değildir.
UNA ne yapar?
Bir dosya UNA ile başlıyorsa, o satır ayırıcıların ne olduğunu tanımlar:
UNA:+.? '
Altı karakterin her biri bir görevi belirler:
| Sıra | Karakter | Görev |
|---|---|---|
| 1 | : | Alt eleman ayracı |
| 2 | + | Eleman ayracı |
| 3 | . | Ondalık işareti |
| 4 | ? | Kaçış (release) karakteri |
| 5 | (boşluk) | Ayrılmış, kullanılmıyor |
| 6 | ' | Segment sonu |
|---|
Yukarıdaki örnek varsayılan değerleri tekrar ettiği için görsel olarak bir şey değiştirmez. Ama şöyle bir UNA da geçerlidir:
UNA|*.? ~
Burada eleman ayracı *, segment sonu ~ olur. Varsayılanlara göre yazılmış bir ayrıştırıcı bu dosyayı tek bir dev segment olarak okur.
Ondalık işareti
Üçüncü karakter sık atlanır. Bazı ülkelerde ondalık ayracı virgüldür:
UNA:+,? '
Bu dosyada PRI+AAA:1,85' satırındaki değer bir buçuk değil, bir nokta seksen beştir. Virgülü binlik ayracı sanıp 185 okumak, faturayı yüz kat şişirir.
Pratikte ne yapmalı
- Dosya
UNAile başlıyorsa ayırıcıları oradan okuyun, varsaymayın UNAyoksa varsayılanlar geçerlidirUNAsatırı hiçbir zaman segment sonu karakteriyle bitmez; sabit altı
karakter uzunluğundadır
Karşınıza gelen dosyada ilk üç harf UNA ise, ayrıştırma mantığınızı çalıştırmadan önce bakılacak yer orasıdır.