Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Navision Webservice

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Navision Webservice

    Hallo Zusammen,

    ich habe eine Page in Navision (2009 R2) erstellt und veröffentlicht.
    Auf meiner privaten Webseite kann ich mit PHP auch die Daten anzeigen lassen.

    Hier ein Codeausschnitt:

    PHP-Code:
    include ("NTLMSoapClient.php");

    stream_wrapper_unregister('http');
    stream_wrapper_register('http''NTLMStream') or die("Failed to register protocol");

    $baseURL 'http://XXXXXX/Page/WS?wsdl';
    $client = new NTLMSoapClient($baseURL.'SystemService');

    $page = new NTLMSoapClient($baseURL);

    $params = array('No' => '1010101111');
    $result $page->Read($params);
    $contact $result->WS
    Mein Problem ist jetzt aber: Ich möchte, wenn meine Daten auf der Webseite geändert werden, dass diese dann auch in Navision geändert werden.
    Leider schaffe ich es nicht den Webservice mit meinen neuen Daten zu füllen.

    Habt ihr hierfür Tipps?
    Wäre dankbar für jede Hilfe


    Grüße
    Anja



  • #2
    Zitat von Kirby Beitrag anzeigen
    Habt ihr hierfür Tipps?
    Klar. Schau in die Doku zum Webservice

    Kommentar


    • #3
      Jap, Navision hab ich schon mal in einem größeren Projekt genutzt, die Doku ist leider echt unterirdisch.

      Das sollte dir evtl. weiterhelfen:

      PHP-Code:
      try {
        
      $oNavUpdate = new stdClass();
        
      $oNavUpdate->Key $key;
        
      $oNavUpdate->Beschreibung 'Hier mein Text';
        
      $oNavUpdate->Preis19.99;
        
      $oNavUpdate->Irgendwas 'Noch mehr Text';
        
      $oNavUpdate->NochEinFeldInBoolean True;
        
      $oNavUpdate->UhrzeitOderSo '2017-05-27 15:00:00';
        
      $update->Item $oNavUpdate;

        
      $result $page->Update($update);
        
      $key $result->Item->Key;

        echo 
      "Record Updated: New Key = " $key "<br>Item No.=" $result->Item->No "<br>";
      }

      catch (
      Exception $e) {
        echo 
      "ERROR: SoapException: [".$e."]<br>";
        echo 
      "<pre>".htmlentities(print_r($service->__getLastRequest(),1))."</pre>";

      Du brauchst immer den Key von der Zeile die du Updaten willst, bedeutet du musst also immer vorher die Zeile bzw. zumindest den Key holen.
      Da führt leider kein Weg dran vorbei, da sich der Key nach jedem Update ändert.

      Kommentar


      • #4
        Vielen Dank.

        Habe den Code so angepasst.

        PHP-Code:
        try {
        $oNavUpdate = new stdClass();
        $oNavUpdate->Key $contact->Key;
        $oNavUpdate->No $contact->No;
        $oNavUpdate->Name $_POST['firmenname'];
        $oNavUpdate->Name_2$_POST['name'];
        $oNavUpdate->Salutation_Code $_POST['anrede'];
        $oNavUpdate->Address $_POST['strasse'];
        $oNavUpdate->Post_Code $_POST['plz'];
        $oNavUpdate->City $_POST['ort'];
        $oNavUpdate->Phone_No_Business $_POST['telefonnr'];
        $oNavUpdate->Phone_No_private $_POST['telefonnrprivat'];
        $oNavUpdate->Mobile_Phone_No_Business $_POST['mobil'];
        $oNavUpdate->VAT_Registration_No $_POST['ustidnr'];
        $oNavUpdate->E_Mail $_POST['mail'];

        $update->Item $oNavUpdate;

        $result $page->Update($update);
        $key $result->Item->Key;

        }

        catch (
        Exception $e) {
        echo 
        "ERROR: SoapException: [".$e."]<br>";
        echo 
        "<pre>".htmlentities(print_r($page->__getLastRequest(),1))."</pre>";

        Trotzdem bekomme ich immer diese Fehlermeldung hier:
        ERROR: SoapException: [SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'WSVP' property in C:\xampp\htdocs\vertragspartner.php:208 Stack trace: #0 C:\xampp\htdocs\vertragspartner.php(20: SoapClient->__call('Update', Array) #1 C:\xampp\htdocs\vertragspartner.php(20: NTLMSoapClient->Update(Object(stdClass)) #2 {main}]


        Was mache ich hier falsch? (WSVP ist der Name von meinem Webservice).

        Kommentar


        • #5
          Kirby Gewöhn Dir bitte an, hier im Forum Code-Tags zu verwenden!


          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar

          Lädt...
          X