通过SOAP为SAP Webservice传递数组

时间:2016-07-28 06:42:33

标签: php arrays web-services soap sap

我正在尝试通过SOAP为SAP Webservice传递2D数组。 但我无法通过。

我能够传递一个值,我也能接受SAP的表输出。 请指导。

我尝试将数组作为对象进行类型转换。

我的代码:

<?php       
    include("include/config.php");

    $sql = "SELECT tid,OrderNumber FROM transhistory ORDER by timestamp ASC limit 2";
    $result= mysqli_query($db,$sql);
    $i=0;
    while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
        //Array based on output table
        $pmt[$i][0] = "";                       //Mandt
        $pmt[$i][1] = $row["tid"];              //Refnum
        $pmt[$i][2] = $row["OrderNumber"];  //Orderno

        $i++;
    }

    /*Two methods I tried */   
    $object = (object) $pmt;
    $object = json_decode(json_encode($pmt), FALSE);

    #Define Authentication 
    $SOAP_AUTH = array( 'login'    => 'abc',
                        'password' => 'abc');

    #Specify WSDL
    $WSDL = "working URL here";

    #Create Client Object, download and parse WSDL
    $client = new SoapClient($WSDL,$SOAP_AUTH);

    #Setup input parameters (SAP Likes to Capitalise the parameter names)
    $params = array(
          'Zpmt' => $object 
    );

    #Call Operation (Function). Catch and display any errors
    try {
        $result = $client->ZphpOT($params);
    } catch (SoapFault $exception) {
        echo 'Error!Server Connectivity issue. Please try again later.';
        die();
    }      
?>

1 个答案:

答案 0 :(得分:0)

我不知道答案是否对某些人有用,但通常你会发送这样的参数

$result = $client->ZphpOT("VARIABLE_NAME"=>$params);