none
C# Soap ile iletişim. RRS feed

  • Soru

  • Merhaba,

    Bir makinamız iletişim için Soap kullanıyormuş.

    Makinamızın Sabit bir Ip Adresi ve bu Ip ye bağlandığımızda bir index.html sayfası aracılığı ile JOB gönderebiliyoruz. C# ile MAkinamızı iletişime geçirip yeni JOB  ları kendi yazılımımız ile göndermek istiyoruz. Tabi C# tarafında başka işlemlerde olacak bunları halledebiliyorum ama Soap ile hiç çalışmadım.

    Makinanın üreticisi tarafından bu işlemler için "ip/kjl/service/com?dsfg" gibi adresi var ve bu adrese girince bir xml dosyası alabiliyorum. Ama ne yapmam neyi araştırmam gerekli bir kaç anahtar kelime verirseniz sevinirim.

    Bu tarz bir proje hiç yapmamıştım. 

    Yardımcı olursanız sevinirim.

    10 Aralık 2020 Perşembe 17:50

Yanıtlar

  • Kodun son hali dogru gorunmuyor bana. 6 adet JobTypeV01'in farkli propertylerini kurmussun.


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen icemeno 20 Aralık 2020 Pazar 09:55
    19 Aralık 2020 Cumartesi 22:03
  • Merhaba Abi,

    şu şekilde yapınca oldu abi.(En azından bence oldu. Sen yinede b,r kontrol eder misin?

     Lift.JobTypeV01[] job = new Lift.JobTypeV01[1];
    
                job[0] = new Lift.JobTypeV01() { jobNumber = "20122020", jobPriority = 1, jobStatus = 125, jobDate = "201220", jobTime = "0955" };
    
                Lift.JobPositionTypeV01[] jobPos = new Lift.JobPositionTypeV01[1];
    
                jobPos[0] = new Lift.JobPositionTypeV01() {articleNumber="1053970032",operation="-",nominalQuantity="1",actualQuantity="1",containerSize=101,positionStatus=1 };
    
                job[0].JobPosition = jobPos;
    
    
                Lift.RetSendJobsV01 jobSendResult = new Lift.RetSendJobsV01();
               jobSendResult = mknm.sendJobsV01(job);
                MessageBox.Show(jobSendResult.ToString());

    )

    • Yanıt Olarak İşaretleyen icemeno 20 Aralık 2020 Pazar 09:55
    20 Aralık 2020 Pazar 07:51
  • JobPosition array ise olmus gorunuyor. Ben soyle yazardim ama sonucta senin yazdiginla ayni (benimki sadece tembel isi syntax):

    Lift.JobPositionTypeV01[] jobPos = {
    	new Lift.JobPositionTypeV01 { articleNumber = "1053970032", operation = "-", nominalQuantity = "1", actualQuantity = "1", containerSize = 101, positionStatus = 1 },
    	};
    Lift.JobTypeV01[] jobs = { 
    	new Lift.JobTypeV01 { jobNumber = "20122020", jobPriority = 1, jobStatus = 125, jobDate = "201220", jobTime = "0955", JobPosition = jobPos }, 
    	};
    
    Lift.RetSendJobsV01 jobSendResult = mknm.sendJobsV01(jobs);
    MessageBox.Show(jobSendResult.ToString());



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.


    • Düzenleyen CetinBasoz 20 Aralık 2020 Pazar 12:59
    • Yanıt Olarak İşaretleyen icemeno 20 Aralık 2020 Pazar 13:11
    20 Aralık 2020 Pazar 12:59

Tüm Yanıtlar

  • wsdl, webservis, soap, proxy



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    10 Aralık 2020 Perşembe 19:59
  • wsdl, webservis, soap, proxy


    @Çetin Abi Merhaba;

    Biraz araştırdım işleri şuaraya kadar getirdim.

    İnternet Explorer dan wsdl nin adresini yazdığımda send job ile ilgili aşağıdaki bilgiler geliyor.

    <xs:element name="sendJobsReqV01">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="1" name="param" nillable="false" type="ax21:ParSendJobsV01"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>


    Birde üreticinin gönderdiği bilgide aşağıdaki şekilde bilgiler var.

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:q0="http://main.jws.com.han.com" xmlns:q1="http://main.jws.com.ha.com/xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    - <soapenv:Body>
    - <q0:sendJobsReqV01>
    - <q0:param>
    - <q1:jobs>
    <q1:jobNumber>job172334</q1:jobNumber>
    <q1:jobPriority>100</q1:jobPriority>
    <q1:c01SpecialField>12003</q1:c01SpecialField>
    - <q1:JobPosition>
    <q1:articleNumber>1000035</q1:articleNumber>
    <q1:operation>-</q1:operation>
    <q1:nominalQuantity>12</q1:nominalQuantity>
    <q1:u08SpecialField>14003</q1:u08SpecialField>
    </q1:JobPosition>
    - <q1:JobPosition>
    <q1:articleNumber>1000070</q1:articleNumber>
    <q1:operation>-</q1:operation>
    <q1:nominalQuantity>5</q1:nominalQuantity>
    <q1:u08SpecialField>14004</q1:u08SpecialField>
    </q1:JobPosition>
    </q1:jobs>
    </q0:param>
    </q0:sendJobsReqV01>
    </soapenv:Body>
    </soapenv:Envelope>


    client.sendJobsV01()   yazdığımda parametre istiyor parametreleri nasıl göndermem gerektiğini anlayamadım.Bundan sonrası için ne yapmalıyım Abi ,neyi araştırmalıyım.

    Şimdiden teşekkürler.


    • Düzenleyen icemeno 12 Aralık 2020 Cumartesi 10:01 kodları kod bloğu içine almamışım.
    12 Aralık 2020 Cumartesi 09:59
  • Merhaba Abi,

     var _url = "http://cihazın ip adresi/jom/ser/Com?wsdl";
     var _url1 = "http://cihazın ip adresi/jom/ser/Com.ComHttpSoapEndpoint";
    
    
    
                XmlDocument soapEnvelopeXml = new XmlDocument();
                soapEnvelopeXml.LoadXml($@"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:q0=""http://main.jws.com.han.tr""  xmlns:q1 = ""http://main.jws.com.han.tr/xsd"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">
    <soapenv:Header/>
    <soapenv:Body>
        <q0:sendJobsReqV01>
            <q0:param>
                <q1:jobs>
                        <q1:jobNumber>is1</q1:jobNumber>
                        <q1:jobPriority>100</q1:jobPriority>
                        <q1:c01SpecialField>12003</q1:c01SpecialField>
                     <q1:JobPosition>
                        <q1:articleNumber>1000035</q1:articleNumber>
                        <q1:operation>-</q1:operation>
                        <q1:nominalQuantity>12</q1:nominalQuantity>
                        <q1:u08SpecialField>14003</q1:u08SpecialField>
                     </q1:JobPosition>
                     <q1:JobPosition>
                        <q1:articleNumber>1000070</q1:articleNumber>
                        <q1:operation>-</q1:operation>
                        <q1:nominalQuantity>5</q1:nominalQuantity>
                        <q1:u08SpecialField>14004</q1:u08SpecialField>
                     </q1:JobPosition>
                </q1:jobs>
            </q0:param>
      </q0:sendJobsReqV01>
    </soapenv:Body>
    </soapenv:Envelope>");
                WebRequest request = WebRequest.Create(_url);
              
                request.Method = "POST";

     Kod hiç bir hata vermiyor fakat istediğimiz işlemi de yapmıyor.

    Birde kodu _url ye mi _url1 mi göndermem gerek.Her ikisine de gönderdiğimde bir hata almıyorum.

    Ne yapmam gerek.

    Bu kodda referans ekleme yapmadım.


    • Düzenleyen icemeno 13 Aralık 2020 Pazar 08:08
    13 Aralık 2020 Pazar 08:04
  • Dedim ya wsdl, soap, proxy, webservis.

    Webservise bak.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    13 Aralık 2020 Pazar 18:21
  • Abi Merhaba;

    Nüfus müdürlüğü üzerinden kimlik doğrulama yapmayı deniyorum .

    Verdikleri wsdl de kullanmam gereken alan şu şekilde...

    <s:element name="TCKimlikNoDogrula">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="TCKimlikNo" type="s:long"/>
    <s:element minOccurs="0" maxOccurs="1" name="Ad" type="s:string"/>
    <s:element minOccurs="0" maxOccurs="1" name="Soyad" type="s:string"/>
    <s:element minOccurs="1" maxOccurs="1" name="DogumYili" type="s:int"/>
    </s:sequence>
    </s:complexType>
    </s:element>

    tüm tipleri vermiş. long, string,vb..  buna göre aşağıdaki kodu yazıyorum false değeri alıyorum. 

    Gerçek kimlik bilgilerimi girdiğimde  True değerini alabiliyorum.

     long tckimlik = 12365478911;
                int dogumYili = 1980;
                string ad = "Deneme";
                string soyad = "Deneme1";
                bool? gelen;
    
                try
                {   // KPSPublicSoapClient ==> ComPortTypeClient
    
                    using (Kimlik.KPSPublicSoapClient servis = new Kimlik.KPSPublicSoapClient())
                    {
                        //TCKimlikNoDogrula ==> sendJobsV01
                        gelen = servis.TCKimlikNoDogrula(tckimlik, ad, soyad, dogumYili);
                    }
                }
                catch (Exception)
                {
                    gelen = null;
                }
    
                MessageBox.Show(gelen.ToString());

    Bu service üzerinden işlem yapabiliyorum. Hiç sıkıntı yok.

    chorome üzerinde wizdler eklentisi ile SendJobReqV01  seçip aşağıdaki kodları request ediyorum.

    Makinama gönderiyorum ama c# üzerinden bunu yapamadım.

    <q0:sendJobsReqV01> <q0:param> <q1:jobs> <q1:jobNumber>is1</q1:jobNumber> <q1:jobPriority>100</q1:jobPriority> <q1:c01SpecialField>12003</q1:c01SpecialField> <q1:JobPosition> <q1:articleNumber>1000035</q1:articleNumber> <q1:operation>-</q1:operation> <q1:nominalQuantity>12</q1:nominalQuantity> <q1:u08SpecialField>14003</q1:u08SpecialField> </q1:JobPosition> <q1:JobPosition> <q1:articleNumber>1000070</q1:articleNumber> <q1:operation>-</q1:operation> <q1:nominalQuantity>5</q1:nominalQuantity> <q1:u08SpecialField>14004</q1:u08SpecialField> </q1:JobPosition> </q1:jobs> </q0:param> </q0:sendJobsReqV01>


    <xs:element name="sendJobsReqV01">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="1" name="param" nillable="false" type="ax21:ParSendJobsV01"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    Buradaki ax21 :ParSendJobsV01  nedir. Bir Türlü anlayamadım.  Mesela kimlik sorgulamada srting long vb yazıyordu. 

    16 Aralık 2020 Çarşamba 15:17
  • Webservis referansini ekle, onunla calis.


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    16 Aralık 2020 Çarşamba 17:53
  • Boyle dolambacli soru soracaginiza bastan nufus mudurlugunden kimlik dogrulamak istiyorum deseniz ya da kullanacaginiz wsdl adresini verseniz ne vardi :) Web servis kullanmayi bilmiyorsunuz anladigim kadariyla. Dili ogrenmeden bu web servis islerine dalmanizi dogru bulmuyorum ya hadi neyse. 

    Visual Studio'da:

    • References'a sag tiklayin. Add Service reference secin.
    • Acilan pencerede altta Advanced'e tiklayip yine alttaki Add Web Reference'a tiklayin.
    • Acilan penceredeki URL'e https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?wsdl yazip yanindaki ok isaretine tiklayin.
    • Servisi bulunca altindaki pencerey bilgilerini getirir. Web Reference Name'i tckimlik olarak duzenleyip Add Reference'e tiklayin.
    • Web referans artik kullanilmaya hazir. Kimlik dogrulama yapmak istediginiz yerde ornek olarak sunu yazin:
    tckimlik.KPSPublic ws = new tckimlik.KPSPublic();
    var result = ws.TCKimlikNoDogrula(12345678901, "Ali", "Veli", 2000);
    MessageBox.Show(result.ToString());
    

    Yazarken parametrelerin :

          <TCKimlikNo>long</TCKimlikNo>
          <Ad>string</Ad>
          <Soyad>string</Soyad>
          <DogumYili>int</DogumYili>

    oldugunun intellisense ile gorursunuz zaten. cihazin ipsi gibi uydurma isimler yerine gecerli TCKimlikNo, Ad, Soyad, DogumYili kullanmaniz gerekiyor.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    16 Aralık 2020 Çarşamba 18:57
  • Merhab Abi

    Ben nufus mudurlugunden kimlik doğrulamak falan istemiyorum. Sen web servise bak işine yarar dediğin için ve  Web servis bilgim olmadığı için orada çalışım neyin ne olduğunu anlamak istediğim için kimlik dogrulama işlemi yaptım.  Gerçekte yapmak istediğim bir makineye iş emri göndermek.

    wsdl adresini özellikle gizledim çünkü local ağda bir makine üzerinden çalışıyor.

    Yukarı söylediğin gibi web referansı ekledim ve İsmini Makinam olarak girdim.

    kod tarafında şu şekilde devam ettim.

     Makinam.Com mknm = new Makinam.Com();
    
                var sonuc =mknm.sendJobsV01();


    Kullanmak istediğim metod sendJobsV01 üzerine geldiğimde  resimdeki gibi bilgiler geliyor.

    Wsdl adresine girdiğimde.  wizdler yardımı ile sendjobv01 seçtiğimde aşağıdaki kod geliyor.

    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <Body>
            <sendJobsReqV01 xmlns="http://main.jws.com.han.de">
                <param>
                    <job xmlns="http://main.jws.com.han.de/xsd">
                        <jobNumber>[string]</jobNumber>
                        <jobPriority>[int?]</jobPriority>
                        <jobStatus>[int?]</jobStatus>
                        <jobDate>[string?]</jobDate>
                        <jobTime>[string?]</jobTime>
               
                        <JobPosition>
                            <articleNumber>[string]</articleNumber>
                            <operation>[string]</operation>
                            <nominalQuantity>[string]</nominalQuantity>
                            <actualQuantity>[string?]</actualQuantity>
                            <containerSize>[int?]</containerSize>
                            <positionStatus>[int?]</positionStatus>
                                          
                        </JobPosition>
                    </job>
                </param>
            </sendJobsReqV01>
        </Body>
    </Envelope>

    İçine gerekli değerleri yazıp  aşağıdaki gibi explorer üzerinden yolluyorum.(Request kısmı)

    <Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
        <Body>
            <sendJobsReqV01 xmlns="http://main.jws.com.han.de">
                <param>
                    <job xmlns="http://main.jws.com.han.de/xsd">
                        <jobNumber>1258</jobNumber>
                        <jobPriority>100</jobPriority>
                        <jobStatus>0</jobStatus>
                        <jobDate>171220</jobDate>
                        <jobTime>1114</jobTime>
                        <JobPosition>
                            <articleNumber>1053970032</articleNumber>
                            <operation>-</operation>
                            <nominalQuantity>1</nominalQuantity>
                            <actualQuantity>0</actualQuantity>
                            <containerSize>101</containerSize>
                            <positionStatus>0</positionStatus>
                            
                        </JobPosition>
                    </job>
                </param>
            </sendJobsReqV01>
        </Body>
    </Envelope>

    Çıktı olarak aşağıdaki sonucu veriyor.  (response)

    Sonuç sıfırsa iş emrim gönderildi demek.

    <?xml version='1.0' encoding='utf-8'?>
    <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
        <soapenv:Body>
            <ns2:sendJobsResV01 xmlns:ns2="http://main.jws.com.han.de">
                <ns2:return>
                    <ns1:returnValue xmlns:ns1="http://main.jws.com.han.de/xsd">0</ns1:returnValue>
                </ns2:return>
            </ns2:sendJobsResV01>
        </soapenv:Body>
    </soapenv:Envelope>


    kod tarafında  gerekli değişkenleri tanımlıyorum.

      string jobNumber = "112";
                int jobPriority = 1;
                int jobStatus = 125;
                string jobDate = "171220";
                string jobTime = "0840";
    
    
                string articleNumber = "1053970033";
                string operation = "-";
                string nominalQuantity = "1";
                string actualQuantity = "1";
                int containerSize = 101;
                int positionStatus = 1;
    
                Makinam.Com mknm = new Makinam.Com();
    
                var sonuc = mknm.sendJobsV01(jobNumber, jobPriority, jobStatus, jobDate, jobTime, articleNumber, operation, nominalQuantity, actualQuantity, containerSize, positionStatus);

    aşağıdaki hatayı veriyor

    Burada takıldım abi.


    • Düzenleyen icemeno 17 Aralık 2020 Perşembe 09:15
    17 Aralık 2020 Perşembe 08:27
  • Mesaji okumadin herhalde :) Orada soyluyor nedenini. Daha once uzerine geldiginde parametrre olarak ne bekledigini de soyluyor, basitce bir tane ondan gonder.

    Sen lokalde calisiyor diye her turlu detayini gizleyip, hadi bil bakalim cinsinden soruyorsun.

    var sonuc = mknm.sendJobsV01( new JobTypeV01(...) );



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    17 Aralık 2020 Perşembe 09:11
  • Merhaba Abi,

    WSDL adresine girdiğimde linkteki XML dosyası çıkıyor. Epey büyük ve benim için çok fazla karışık :(

    XML Dosyam

    kod tarafında şunları yazdım.

      Makinam.Com mknm = new Makinam.Com();
                Makinam.JobTypeV01 job = new Makinam.JobTypeV01();
                Makinam.JobPositionTypeV01 pos = new Makinam.JobPositionTypeV01();
                Makinam.RetSendJobsV01 yanit = new Makinam.RetSendJobsV01();
                
    
                job.jobNumber = "18122020Deneme";
                job.jobPriority = 1;
                job.jobStatus = 125;
                job.jobDate = "171220";
                job.jobTime = "0840";
    
                pos.articleNumber = "1053970033";
                pos.operation = "-";
                pos.nominalQuantity = "1";
                pos.actualQuantity = "1";
                pos.containerSize = 101;
                pos.positionStatus = 1;
                yanit= mknm.sendJobsV01(job.jobNumber, job.jobPriority, job.jobStatus, job.jobDate, job.jobTime, pos.articleNumber, pos.operation, pos.nominalQuantity, pos.actualQuantity, pos.containerSize, pos.positionStatus);
    Yine aynı hatayı alıyorum.




    • Düzenleyen icemeno 18 Aralık 2020 Cuma 08:29
    18 Aralık 2020 Cuma 08:27
  • Ya sabir :) Dili ogrenmeden webservis programlamasina dalmasaydiniz daha iyiydi.

    yanit= mknm.sendJobsV01(job);

    Olmazsa wsdl adresini ve dokumentasyonunu verin bakalim.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    18 Aralık 2020 Cuma 13:09
  • Abi Merhaba Tekrardan,

    İlgin için teşekkürler.

    wsdl adresim local de bulunuyor.  Adrese girince xml dosyasını aldım linkte veriyorum

    wsdl XML

    Dokumantasyonu ise linkedin üzerinden mesaj olarak gönderdim abi.

    Orada da belirttiğim üzere bir rahatsızlık verdimse tekrar  özür dilerim.


    • Düzenleyen icemeno 19 Aralık 2020 Cumartesi 10:10
    19 Aralık 2020 Cumartesi 10:10
  • Abi Merhaba Tekrardan,

    İlgin için teşekkürler.

    wsdl adresim local de bulunuyor.  Adrese girince xml dosyasını aldım linkte veriyorum

    wsdl XML

    Dokumantasyonu ise linkedin üzerinden mesaj olarak gönderdim abi.

    Orada da belirttiğim üzere bir rahatsızlık verdimse tekrar  özür dilerim.


    Kusura bakma, vermek isteseydiniz o adrese erisim verirdiniz, vermiyorsaniz benim iskence cekmeye hic niyetim yok. Remote desktop var, Teamviewer, Anydesk ... bir suru alternatif var.

    yaklasik 1700 satirlik, hatali bir XML'i, hem de bu XML text iken PDF olarak goderilince, incelemek hic icimden gelmiyor.

    Hanel MP12N-S / MP100D kontrolcusune aitmis. Onun mutlaka dokumentasyonu vardir, okuyunuz.




    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen icemeno 19 Aralık 2020 Cumartesi 11:55
    • Yanıt İşaretini Geri Alan icemeno 20 Aralık 2020 Pazar 07:51
    19 Aralık 2020 Cumartesi 11:28
  • Merhaba Abi.

    Yöneticim ve IT partner ile görüşleyim ama bir sonuç alabileceğimi düşünmüyorum.

    Yinede desteğin ve yönlendirmelerin için teşekkürler.

    Bir şekilde izin alabilirsem yeniden açarım konuyu abi.

    Şuan Kullanabileceğim Sadece Skype Kurumsal var.


    • Düzenleyen icemeno 19 Aralık 2020 Cumartesi 12:03
    19 Aralık 2020 Cumartesi 11:57
  • Nedir bu yoneticilerden cektigi milletin :) (ben de ayrilana kadar admin idim:)

    Bu arada galiba anlatamadim, N tane parametre yerine O JobType'dan N tane iceren bir array gonderebilirsin diye gosteriyor intellisense'de. Yani JobTypeV01 array hazirlayip onu gondereceksiniz.

      (Ben onceki mesajda yazarken array yerine tek yazmisim, benim hatam)



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.


    • Düzenleyen CetinBasoz 19 Aralık 2020 Cumartesi 12:27
    19 Aralık 2020 Cumartesi 12:21
  •  Senin de dediğin gibi büyük firmaların büyük dertleri oluyor ne yazık ki abi.

    Abi Aklıma şöyle bir şey  geldi.

    Soap UI ile bizim bu xml i kendi şahsi bilgisayarımda kendi localim de çalıştırmayı başardım.

    Bu şekilde olur bir deneyelim dersen senin için uygun bir zamanda uygun gördüğün platformdan bağlanıp deneyebiliriz. Olmaz dersen yine de teşekkürler tüm desteğin için..

    Şayet Uygunsa görürsen   iletişim bilgilerime LinkedIn üzerinden mesaj olarak gönderiyorum abi.

    Teşekkürler.

    19 Aralık 2020 Cumartesi 15:30
  • Merhaba Abi; 

    Kodun son hali bu şekilde.

    Yarın iş yerine gidip deneyeceğim. 

          lift.RetSendJobsV01 yanit = new lift.RetSendJobsV01();
                lift.JobTypeV01[] job = new lift.JobTypeV01[6];
                job[0].jobNumber = "1218";
                job[1].jobPriority = 1;
                job[2].jobStatus = 125;
                job[3].jobDate="191220";
                job[4].jobTime = "0840";
                
    
                lift.JobPositionTypeV01[] jobPos = new lift.JobPositionTypeV01[6];
                jobPos[0].articleNumber = "1053970033";
                jobPos[1].operation = "-";
                jobPos[2].nominalQuantity = "1";
                jobPos[3].actualQuantity = "1";
                jobPos[4].containerSize = 101;
                jobPos[5].positionStatus = 1;
    
    
                job[5].JobPosition = jobPos;
                yanit = mknm.sendJobsV01(job);

    Şu kod kafama takıldı ama bir türlü kafamda canlandıramadım. 

          job[5].JobPosition = jobPos;

    19 Aralık 2020 Cumartesi 19:21
  • Kodun son hali dogru gorunmuyor bana. 6 adet JobTypeV01'in farkli propertylerini kurmussun.


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen icemeno 20 Aralık 2020 Pazar 09:55
    19 Aralık 2020 Cumartesi 22:03
  • Günaydın abi.

    Tamda dediğin gibi hata verdi.

    ve Aşağıdaki gibi propertyleri bu şekilde gönderdim.

    ama bu seferde JobPositionType bilgilerini nasıl göndereceğimi anlamadım.

    C# üzerinden bir türlü iş emri yollamayı başaramadım :(

    Lift.JobTypeV01[] job = new Lift.JobTypeV01[2];
    
                job[0] = new Lift.JobTypeV01() { jobNumber = "20122020", jobPriority = 1, jobStatus = 125, jobDate = "201220", jobTime = "0955" };
    
                Lift.JobPositionTypeV01[] jobPos = new Lift.JobPositionTypeV01[1];
    
                jobPos[0] = new Lift.JobPositionTypeV01() {articleNumber="1053970032",operation="-",nominalQuantity="1",actualQuantity="1",containerSize=101,positionStatus=1 };
    
    
                Lift.RetSendJobsV01 jobSendResult = new Lift.RetSendJobsV01();
               jobSendResult = mknm.sendJobsV01(job);
                MessageBox.Show(jobSendResult.ToString());

    Makinanın kendisinden bir iş emri gönderdim ve  C# üzerinden okumayı denedim orada bir sıkıntı yaşamadım.

    İş emri Okumanın kodlarını aşağıdaki gibi yaptım ve istediğim veriyi alabiliyorum. :)

     private void btnIsEmriOku_Click(object sender, EventArgs e)
            {
                Lift.ParReadJobV01 JobRead = new Lift.ParReadJobV01();
                JobRead.jobNumber= "123";
                Lift.RetReadJobV01 jobResult = new Lift.RetReadJobV01();
             jobResult=   mknm.readJobV01(JobRead);
                MessageBox.Show(jobResult.returnErrorNumber.ToString());
                if (jobResult.returnErrorNumber==0)
                {
                    MessageBox.Show("İş emri numarası : "+jobResult.job.jobNumber.ToString());
                }
                else
                    MessageBox.Show("İş emri bulunamadı");
    
    
            }



    • Düzenleyen icemeno 20 Aralık 2020 Pazar 07:08
    20 Aralık 2020 Pazar 06:23
  • Merhaba Abi,

    şu şekilde yapınca oldu abi.(En azından bence oldu. Sen yinede b,r kontrol eder misin?

     Lift.JobTypeV01[] job = new Lift.JobTypeV01[1];
    
                job[0] = new Lift.JobTypeV01() { jobNumber = "20122020", jobPriority = 1, jobStatus = 125, jobDate = "201220", jobTime = "0955" };
    
                Lift.JobPositionTypeV01[] jobPos = new Lift.JobPositionTypeV01[1];
    
                jobPos[0] = new Lift.JobPositionTypeV01() {articleNumber="1053970032",operation="-",nominalQuantity="1",actualQuantity="1",containerSize=101,positionStatus=1 };
    
                job[0].JobPosition = jobPos;
    
    
                Lift.RetSendJobsV01 jobSendResult = new Lift.RetSendJobsV01();
               jobSendResult = mknm.sendJobsV01(job);
                MessageBox.Show(jobSendResult.ToString());

    )

    • Yanıt Olarak İşaretleyen icemeno 20 Aralık 2020 Pazar 09:55
    20 Aralık 2020 Pazar 07:51
  • JobPosition array ise olmus gorunuyor. Ben soyle yazardim ama sonucta senin yazdiginla ayni (benimki sadece tembel isi syntax):

    Lift.JobPositionTypeV01[] jobPos = {
    	new Lift.JobPositionTypeV01 { articleNumber = "1053970032", operation = "-", nominalQuantity = "1", actualQuantity = "1", containerSize = 101, positionStatus = 1 },
    	};
    Lift.JobTypeV01[] jobs = { 
    	new Lift.JobTypeV01 { jobNumber = "20122020", jobPriority = 1, jobStatus = 125, jobDate = "201220", jobTime = "0955", JobPosition = jobPos }, 
    	};
    
    Lift.RetSendJobsV01 jobSendResult = mknm.sendJobsV01(jobs);
    MessageBox.Show(jobSendResult.ToString());



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.


    • Düzenleyen CetinBasoz 20 Aralık 2020 Pazar 12:59
    • Yanıt Olarak İşaretleyen icemeno 20 Aralık 2020 Pazar 13:11
    20 Aralık 2020 Pazar 12:59