UNA segmenti: ayırıcılar her zaman aynı değildir

· Dosya UNA ile başlıyorsa varsayılan ayırıcıları unutun — hangi karakterin ne olduğu orada yazar.

EDIFACT dosyalarının çoğu + ile eleman, : ile alt eleman ve ' ile satır ayırır. Ama bu bir zorunluluk değil, yalnızca varsayılan. Dosyanın başındaki UNA segmenti bu karakterleri değiştirebilir.

UNA neye benzer?

Varsayılan hâli şudur:


UNA:+.? '

UNA'dan sonraki altı karakter sırasıyla şunları tanımlar:

KonumVarsayılanGörevi
1:Alt eleman (bileşen) ayırıcı
2+Veri elemanı ayırıcı
3.Ondalık işareti
4?Kaçış (release) karakteri
5boşlukAyrılmış / tekrar ayırıcı
6'Segment sonlandırıcı

Altıncı karakterin boşluk olmadığına dikkat edin — ' işaretidir ve hemen ardından ilk gerçek segment gelir.

Neden değiştirilir?

Çünkü veri içinde o karakter geçiyordur. Bir ürün açıklamasında + varsa, ayırıcı olarak + kullanan bir dosyada bu karakter satırı yanlış yerden böler. İki çözüm vardır: kaçış karakteri kullanmak ya da ayırıcıyı değiştirmek.

Farklı ayırıcılı bir dosya şuna benzer:


UNA|^.! ~UNB^UNOC|3^A|14^B|14^260117|1030^R1~

Burada ^ eleman, | alt eleman, ~ segment sonu. Gözle okunması alışılmadık görünür ama yapı birebir aynıdır.

Kaçış karakteri nasıl çalışır?

Ayırıcıyı değiştirmek yerine tek tek kaçırmak da mümkündür. Varsayılan kaçış karakteri ? şunu yapar: kendisinden sonraki karakteri veri hâline getirir.


FTX+AAI+++ACME?+SONS ?: 50?? indirim'

Bu satırın çözülmüş hâli şudur:

Yani metin aslında ACME+SONS : 50? indirim demektir. Kaçış karakterini görmezden gelen bir ayrıştırıcı bu satırı yanlış böler ve genellikle hatayı çok sonra, alan sayısı tutmadığında fark eder.

UNA yoksa ne olur?

Varsayılanlar geçerlidir. UNA isteğe bağlıdır; dosya doğrudan UNB ile de başlayabilir. Bu tamamen geçerli bir dosyadır.

Dolayısıyla bir ayrıştırıcının yapması gereken şudur: dosyanın başında UNA varsa oradan oku, yoksa varsayılanları kullan.

Sık yapılan hata

Ayırıcıları koda gömmek. split('+') yazan bir kod, UNA kullanan bir dosyada sessizce yanlış sonuç üretir — çökmez, sadece yanlış okur. Bu tür hatalar üretimde uzun süre fark edilmeden yaşayabilir.

Aynı şey ANSI X12 tarafında da geçerlidir, ama orada mekanizma farklıdır: ayırıcılar UNA gibi bir segmentte değil, ISA satırının sabit konumlarında durur. Eleman ayırıcı 4. karakter, alt eleman ayırıcı 105., segment sonlandırıcı 106. karakterdir. Bu yüzden ISA satırındaki boşluk dolgusu süs değildir; kısaltılırsa dosya ayrıştırılamaz.

Kontrol listesi

Bir dosyanın hangi ayırıcıları kullandığını anlamanın en hızlı yolu, ilk satıra bakmaktır.

İlgili referans

UNB

← Tüm yazılar