Foros del Web » Programando para Internet » PHP »

Crear Datatable para webService

Estas en el tema de Crear Datatable para webService en el foro de PHP en Foros del Web. Buenos días, estoy atrancado al intentar comunicarme con un Web Service programado en .net desde php. El caso es que uno de los datos que ...
  #1 (permalink)  
Antiguo 30/09/2011, 03:05
 
Fecha de Ingreso: octubre-2005
Mensajes: 52
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta Crear Datatable para webService

Buenos días,
estoy atrancado al intentar comunicarme con un Web Service programado en .net desde php.

El caso es que uno de los datos que espera es un dataset que contiene un datatable y como mínimo una fila.

El tipo de dato dataset y datatable no existen en php por lo que no se que tipo de dato enviar que sea equivalente en php ya que siempre recibo la misma respuesta:

"El dataset de artículos no es válido. Asegúrese de que está instanciado, de que contiene un datatable y de que este datatable contiene al menos una fila".

Sabéis como puedo hacer esto.

Un saludo.
  #2 (permalink)  
Antiguo 30/09/2011, 05:07
 
Fecha de Ingreso: octubre-2005
Mensajes: 52
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Crear Datatable para webService

El web service en su descripción lleva esta estructura para los parámetros:

<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="codigoProveedor" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="numAlbaran" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="codigoProyecto" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="fechaDocumento" type="s:dateTime"/>
<s:element minOccurs="1" maxOccurs="1" name="fechaEntrega" type="s:dateTime"/>
<s:element minOccurs="0" maxOccurs="1" name="comentarios" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="articulos">
<s:complexType>
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
<s:element minOccurs="0" maxOccurs="1" name="mensajeSalida" type="s:string"/>
</s:sequence>
</s:complexType>


Y yo creo el dataset asi:

$xml = '<?xml version="1.1" standalone="yes" charset="utf-8" encoding="utf-8"?>';
$xml .= '<NewDataSet>';
$xml .= '<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">';
$xml .= '<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">';
$xml .= '<xs:complexType>';
$xml .= '<xs:choice minOccurs="0" maxOccurs="unbounded">';
$xml .= '<xs:element name="Table">';
$xml .= '<xs:complexType>';
$xml .= '<xs:sequence>';
$xml .= '<xs:element name="codigoArticulo" type="xs:string" minOccurs="0" />';
$xml .= '<xs:element name="cantidad" type="xs:double" minOccurs="0" />';
$xml .= '<xs:element name="precio" type="xs:double" minOccurs="0" />';
$xml .= '</xs:sequence>';
$xml .= '</xs:complexType>';
$xml .= '</xs:element>';
$xml .= '</xs:choice>';
$xml .= '</xs:complexType>';
$xml .= '</xs:element>';
$xml .= '</xs:schema>';

$i=0;
foreach($p3 as $k=>$v){
$xml .= '<Table>';
$xml .= '<codigoArticulo>'.$p3[$k]['id'].'</codigoArticulo>';
$xml .= '<cantidad>'.$p3[$k]['cantidadrecibida'].'</cantidad>';
$xml .= '<precio>'.$p3[$k]['preciosiniva'].'</precio>';
$xml .= '</Table>';

$i++;
}

$xml .= '</NewDataSet>';

Pero siempre obtengo el mismo error...

Etiquetas: datatable, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:40.