Необходимо позвонить в веб-службу SAP, чтобы отправить файл XML с веб-страницы, используя JavaScript - PullRequest
0 голосов
/ 01 августа 2020

Нам нужно вызвать веб-службу SAP с нашего веб-сайта и отправить файл XML на URL-адрес SAP. У SAP API есть учетные данные. Цель состоит в том, чтобы выполнить функциональный модуль в SAP, который создает идентификатор пользователя SAP, а затем возвращает имя идентификатора пользователя SAP обратно на наш веб-сайт посредством возврата xml.

Ниже приведен код PHP, который i пробовали.

 <?php

         $credentials = "Username:Password";
        
         // Read the XML to send to the Web Service
         $request_file = "m2bsubscr.XML";
        $fh = fopen($request_file, 'r');
        $xml_data = fread($fh, filesize($request_file));
        fclose($fh);
        
        $url = "SAP API HERE";
         $headers = array(
            "Content-type: text/xml;charset=\"utf-8\"",
            "Accept: text/xml",
            "Cache-Control: no-cache",
            "Pragma: no-cache",
            "SOAPAction: \"run\"",
            "Content-length: ".strlen($xml_data),
            "Authorization: Basic " . base64_encode($credentials)
        );
      
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
       
        // Apply the XML to our curl call
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);

        $data = curl_exec($ch);
        

        if (curl_errno($ch)) {
            print "Error: " . curl_error($ch);
        } else { 
            // Show me the result
            echo "Success!<br />\n";
  }
  curl_close($ch);

  // Handle the response from a successful request
  $xmlobj = simplexml_load_string($data);
  var_dump($xmlobj);

?>

My XML File:

<n0:_-majul_-m2bSubscriptionCreate xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
 <IsSubscription>
  <Bupar></Bupar>
  <Sstat></Sstat>
  <Categ></Categ>
  <Fname>Wolfgang</Fname>
  <Lname>Haerle</Lname>
  <Email>whaerle@hotmail.com</Email>
  <Srmrk></Srmrk>
  <Cczip></Cczip>
  <Cccty></Cccty>
  <Ccadr></Ccadr>
  <Cntry>US</Cntry>
  <Product>1</Product>
  <Begda>2020-07-08</Begda>
  <Endda>2020-08-08</Endda>
  <Price>765</Price>
  <Curr>USD</Curr>
  <Quantity>1</Quantity>
  <Unit>MON</Unit>
  <Userid></Userid>
 </IsSubscription>
</n0:_-majul_-m2bSubscriptionCreate>

, но в результате возвращает Success with bool (false). Я попытался отобразить ошибку, но ошибки нет.

Пожалуйста, помогите мне найти, в чем проблема.

Я хотел сделать это в JavaScript. Пожалуйста, подскажите способ, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...