Blog Listem

2 Ekim 2014 Perşembe

AX 2012 - TC kimlik no sorgulama ile örnek web servisi kullanımı

Bu örneği geliştirirken bir blogdan faydalandım. Kullanıma hazır class halini buradan indirebilirsiniz.

1- Visual Studio'ya girip Class Library tipinde yeni bir C# projesi oluşturun.

2- Proje adındayken sağ klik Add service reference ile Address kısmına https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL, Namespace kısmına  Sorgula yazarak GO butonuna basarak servis referansını ekleyin.

3- Projenizi Add to AOT ile AOT'a ekleyin.

4- Projenin properylerine girip

Debug Target = No
Deploy to Client = Yes
Deploy to EP = No
Deploy to Server = Yes
Deploy to SSRS = No 

yapın.

5. Deploy yapıp tüm AX clientleri kapatın. Deploy esnasındaki mesajda tüm clientler kapatılmadıkça deploy işleminin tamamlanmayacağı yazıyor. Sanırım blog yazarı da bu yüzden clientları resetleyin diye uyarıyor.

Bu da benim örnek Jobum:

//Metin Emre, 2.10.2014
static void TCKimlikTest(Args _args)
{
    CLRObject                             clientType;
    TCKimlik.Sorgula.KPSPublicSoapClient  cl;
    System.Exception                      ex;
    boolean                               s,erOccured;
    System.Exception                      e;
    str                                   ret;

    new InteropPermission(InteropKind::ClrInterop).assert();

    try
    {
        clientType = CLRInterop::getType("TCKimlik.Sorgula.KPSPublicSoapClient");
        cl = AifUtil::createServiceClient(clientType);
        s = cl.TCKimlikNoDogrula(11111111111,"METİN","EMRE",1999);
    }
    catch(Exception::CLRError)
    {
        Ex=CLRInterop::getLastException();
        ret = Ex.ToString();
        if (!strScan(ret,"T.C. Kimlik No alanına girdiğiniz değer geçerli bir T.C. Kimlik Numarası değildir",1,strLen(Ret)))
        {
            info(Ex.ToString());
            erOccured = true;
        }
    }
    if (!erOccured)
        info(strFmt("%1",s));
}