如何在Microsoft Dynamics Nav 2016 Web Services w/PHP中仅选择某些列?

如何在Microsoft Dynamics Nav 2016 Web Services w/PHP中仅选择某些列?,php,navision,microsoft-dynamics-nav,Php,Navision,Microsoft Dynamics Nav,我正在使用PHP连接到Microsoft Dynamics Nav(Navision)Web Services 2016。身份验证(NTLM)工作正常,我可以获取数据。到目前为止,我正在测试项目页面和项目列表页面 我可以很容易地过滤我想要检索的项目,但是现在我想过滤我检索的列。有办法做到这一点吗?基本上相当于一个MySQL选择this,this,the,other…语句,而不是SELECT*。 这里是一些相关的代码,我用它作为起点 try { $pageURL = $baseURL .

我正在使用PHP连接到Microsoft Dynamics Nav(Navision)Web Services 2016。身份验证(NTLM)工作正常,我可以获取数据。到目前为止,我正在测试项目页面和项目列表页面

我可以很容易地过滤我想要检索的项目,但是现在我想过滤我检索的列。有办法做到这一点吗?基本上相当于一个
MySQL选择this,this,the,other…
语句,而不是
SELECT*。

这里是一些相关的代码,我用它作为起点

try {
    $pageURL = $baseURL . "ItemList";
    $service = new NTLMSoapClient($pageURL);

    // this filter says to get all items. I could change Criteria to an item number to get just that item.
    $params = array('filter'=>array( array('Field'=>'No', 'Criteria'=>'*') ), 'setSize'=>20);

    $result = $service->ReadMultiple($params);
    $resultSet = $result->ReadMultiple_Result->ItemList;

    if (is_array($resultSet)) {
        foreach($resultSet as $rec) {
            echo $rec->No . "&nbsp;" . $rec->Description."<br>";
        }
    } else {
        echo $resultSet->No . "&nbsp;" . $resultSet->Description."<br>";
    }
} catch (Exception $error) {
    echo "<hr><b>ERROR: SoapException:</b> [" . $error . "]<hr>";
    echo "<pre>" . htmlentities(print_r($service->__getLastRequest(),1)) . "</pre>";
}
试试看{
$pageURL=$baseURL.“项目列表”;
$service=newntlmsoapclient($pageURL);
//此筛选器表示获取所有项目。我可以将条件更改为项目编号以仅获取该项目。
$params=array('filter'=>array(array('Field'=>'No','Criteria'=>'*')),'setSize'=>20);
$result=$service->ReadMultiple($params);
$resultSet=$result->ReadMultiple\u result->ItemList;
if(is_数组($resultSet)){
foreach($resultSet作为$rec){
echo$rec->No.“$rec->Description.”
”; } }否则{ echo$resultSet->No.“$resultSet->Description。”
”; } }捕获(异常$error){ echo“
错误:SoapException:[”$ERROR.]
”; echo“.htmlentities(print_r($service->\u getLastRequest(),1))”; }
这是一个soap,别以为你能做到。@MakSim看起来你是对的-提交这个问题后,我找到了Microsoft关于
ReadMultiple
的文档,它没有关于选择特定列的任何详细信息。下一步是创建自定义页面和/或查询,并将其公开为Web服务。如果对性能有严重影响,您总是要求NAV开发人员“在另一端”减少列数—这是一个soap,我认为你做不到。@MakSim看起来你是对的-提交这个问题后,我找到了Microsoft关于
ReadMultiple
的文档,其中没有关于选择特定列的任何详细信息。下一步是创建自定义页面和/或查询,并将它们公开为Web服务。如果列数对性能有严重影响,您总是要求NAV开发人员“另一边”减少列数