Seri Numarası Entegrasyonu

Üretimi planlanmış veya yapılmış ürünlere servis hizmeti verilebilmesi için, seri numaralarının Licrus’ta tanımlı olması gerekemektedir. Cihaz seri numaralarının toplu olarak veya tek tek aktarılması için ImportProductSerialNumbers metodu kullanılır. Seri Numarası (ProductSerialNumber) nesnesinin detayları için bu dokümandaki Veri Nesneleri başlığına bakınız.

Fonksiyon

ProductSerialNumberResponse ImportProductSerialNumbers(ProductSerialNumberRequest)

ProductSerialNumberRequest Nesnesi

AlanAçıklamaDeğer
ListAktarılmak istenen seri numarası listesi. Bu listeye eklenecek kayıtlar. 

Seri Numarası (ProductSerialNumber) nesnesinin detayları için Veri Nesneleri başlığına bakınız.
ProductSerialNumber
OnFailure
(Beta)
İşlem sırasında seri numaralarından biri aktarılamadığında işlemin tamamı için izlenecek davranışını belirler. Varsayılan değeri TryNext.

enum OnFailureRule {
    TryNext = 0,
    RollBackAll = 1,
}

TryNext seçildiğinde bir seri numarasında hata alındığında bir sonrakini aktarmaya devam eder ve aktarılmayanlar için geriye uyarı mesajı döner.

RollBackAll  seçildiğinde bir seri numarası aktarılmadığında işlemi iptal eder ve aktarılanlar geri alır.
OnFailureRule
OnWarning 
(Beta)
Aktarım sırasında OnFailure kuralı TryNext seçildiğinde alınan uyarı mesajlarının seviyesini belirler.
Varsayılan değeri ShowAsWarning.

enum OnWarningBehavior {
    ShowAsWarning = 0,
    ShowAsError = 1,
}

OnWarningBehavior

Aktarım sırasında gönderilen seri numaralarından bir kısmı aktarılamadığında, Web Servisden gelen cevap nesnesinde iki farklı durum olabilir.

Aktarım Senaryosu 1

var request=new ProductSerialNumberRequest();
request.OnFailure = OnFailureRule.TryNext;
request.OnWarning = OnWarningBehavior.ShowAsWarning;
AlanGeri Dönüş Değeri
HasError false
HasIgnoredSerials true 
MessageList[?].TypeResponseMessageType.Warrning

Aktarım Senaryosu 2

var request=new ProductSerialNumberRequest();
request.OnFailure = OnFailureRule.TryNext;
request.OnWarning = OnWarningBehavior.ShowAsError;
AlanGeri Dönüş Değeri
HasError true
HasIgnoredSerials true 
MessageList[?].TypeResponseMessageType.Error

Örnek

var licrusService = new LicrusWebServices.Integration();
var request = new ProductSerialNumberRequest();
request.AuthTicket = ticket; //Login metoduyla alınmış ticket
var list = new List<ProductSerialNumber>();// aktarılmak istenen seri numarası dizisi/listesi 
var ps = new ProductSerialNumber();
ps.SerialNumber = "SERINO001";
ps.SalesDate = new DateTime(2018, 01, 01);
ps.WaybillNumber = "IRS-001";
ps.Product = new Product() { Code = "URUN001" };
ps.Dealer = new Dealer() { Code = "BAYI001" };
list.Add(ps);
request.List = list.ToArray();
var response = licrusService.ImportProductSerialNumbers(request);

Response Mesajları

Servis işlemi sonucunda alınan; Hata, uyarı ve bilgi mesajlarına response üzerinden erişilebilir.

/* servis sunucu hatası, yetki hatası. beklenmeyen hatalar ve benzeri durumlar */
if (response.HasError) {
    var errorList = response.MessageList.Select(x => x.Message).ToArray();
    var errorString = String.Join(Environment.NewLine, errorList);
    Console.WriteLine(errorString);
}
else {
    /*aktarım durumu kontrol ediliyor*/

    //kısmen aktarıldı
    if (response.HasIgnoredSerials) {
        /*kısmen aktarıldı*/
        //response.IgnoredSerials üzerinden aktrılamayanlar alınabilir.
    }
    else {
        /*tamamı aktarıldı*/
        //tüm seri numaraları aktarıldığında ServiceResponseMessageType.Info tipinde sadece bir adet mesaj gelir.
        var successMessage = response.MessageList
                                    .Where(x => x.Type == ServiceResponseMessageType.Info)
                                    .FirstOrDefault();
        if (successMessage != null) {
                /* log tutabilirsiniz veya kullanıcıya bilgilendirme yapabilirsiniz.*/
        }
    }
}

ProductSerialNumberResponse Nesnesi

AlanAçıklamaDeğer
RequestCountİşlemi sırasında Request nesnesiyle gönderilen toplam seri numaraıs saysı.
int
AffectedCountİşlem sonunda kaydedilen toplam seri numarası sayısı.
int
IgnoredSerialsİşlem sırasında çeşitli nedenlerle kaydedilmeyen seri numaralarının listesidir. Bu listede yer alan kayıtlar doğrudan Request nesnesiyle gönderilen seri numarası nesnesidir.

Seri Numarası (ProductSerialNumber) nesnesinin detayları için Veri Nesneleri başlığına bakınız.
ProductSerialNumber
HasIgnoredSerialsGönderilen seri numaralarından tamamı aktarılmadığın true değer verir. AKtarılmayan seri numaralarının neden aktarılmadığıyla ilgili bilgi response.MessageList dizisine yer alan ve Type değer Warning olan mesajlardan öğrenilebilir.
boolean