如何在Microsoft Dynamics Nav 2016 Web Services w/PHP中仅选择某些列?
我正在使用PHP连接到Microsoft Dynamics Nav(Navision)Web Services 2016。身份验证(NTLM)工作正常,我可以获取数据。到目前为止,我正在测试项目页面和项目列表页面 我可以很容易地过滤我想要检索的项目,但是现在我想过滤我检索的列。有办法做到这一点吗?基本上相当于一个如何在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 .
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 . " " . $rec->Description."<br>";
}
} else {
echo $resultSet->No . " " . $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开发人员“另一边”减少列数