Jump to content

Recommended Posts

Posted (edited)

Boa tarde,

Estou a ler os dados de um software (SAP) que provêm do mesmo em forma de array.

O código que estou a utilizar para ler todas as posições é este:

$result = $client->ZrrWsComunicaArquivo($params);
foreach ($result->OutGestArquivo->item as $row) {
  echo $row;
}

Esta é o array que retorna no browser.

stdClass Object
(
[OutGestArquivo] => stdClass Object
(
[item] => stdClass Object
(
[Mandt] => 200
[Artigo] => MP000001
[Descricao] => MATERIAL 1
[GrpMerc] => 7550
[GrpMercDes1] => PENTES
)
)
[PStatus] => 0
)

Porém, quando tenho mais do que um array de registos dá-me este erro:

Warning: Invalid argument supplied for foreach() in G:\xampp\htdocs\ws_app3\get-values\exemploTabela.php on line 114

A linha 114 é foreach, em que OutGestArquivo é a tabela onde vai buscar os registos em SAP.

$result = $client->ZrrWsComunicaArquivo($params);
foreach ($result->OutGestArquivo->item as $row) {
  echo $row;
}

O que poderei estar a fazer errado, visto que para um registo funciona, mas para mais do que um não?

Edited by apocsantos

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted

Para o caso que funciona bem, retorna isto:

stdClass Object ( [Mandt] => 200 [Artigo] => MP000001 [Descricao] => MATERIAL 1 [GrpMerc] => 7550 [GrpMercDes1] => PENTES [GrpMercDes2] => [Peso] => 000 [Peso1] => [HierCode] => [HierN1Code] => [HierN1Des] => [HierN2Code] => [HierN2Des] => [HierN3Code] => [HierN3Des] => [HierN4Code] => [HierN4Des] => [Composicao] => [CompCo] => [Tela] => [CompPl] => [CompPa] => [CompEa] => [CompVi] => [CompCu] => [CompRay] => [CompWo] => [CompLi] => [CompWa] => [CompSe] => [CompPc] => [CompMo] => [CompLy] => [CompCa] => [CompInox] => [CompPva] => [CompAc] => [CompWm] => [CompTe] => [CompRa] => [CompJu] => [CompBamboo] => [TipoTecido] => [PontoBase] => [DesenhoTecido] => [TipoElastic] => [Obs] => [urlImage] => [inactivo] => N [DataCri] => 2012-12-18 [HoraCri] => 14:00:13 [usrCri] => matos [DataAlt] => 0000-00-00 [HoraAlt] => 00:00:00 [usrAlt] => [CompCo1] => [CompPl1] => [CompPa1] => [CompEa1] => [CompVi1] => [CompCu1] => [CompRay1] => [CompWo1] => [CompLi1] => [CompWa1] => [CompSe1] => [CompPc1] => [CompMo1] => [CompLy1] => [CompCa1] => [CompInox1] => [CompPva1] => [CompAc1] => [CompWm1] => [CompTe1] => [CompRa1] => [CompJu1] => [CompBamboo1] => )

Mas para o caso que dá mal eu nem consigo testar, porque diz logo isto:

Warning: Invalid argument supplied for foreach() in G:\xampp\htdocs\ws_app3\get-values\exemploTabela.php on line 114
stdClass Object
(
[OutGestArquivo] => stdClass Object
 (
 )
[PStatus] => 1
)

Eu creio que a fazer uma boa interpretação do problema, caso contrário, nem com um funcionava. Certo é que alguma coisa falta...

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Posted (edited)

Olá Happy,

Assim já retorna todos os dados.

stdClass Object
(
[OutGestArquivo] => stdClass Object
 (
	 [item] => Array
		 (
			 [0] => stdClass Object
				 (
					 [Mandt] => 200
					 [Artigo] => TC0114
					 [Descricao] => E 215G72373
					 [GrpMerc] => 5015
					 [GrpMercDes1] => TECIDO - GRP COR TP
					 [GrpMercDes2] => TECIDO - GRP COR TINTO PEÇA
					 [Peso] => 225
					 [Peso1] =>
					 [HierCode] => 100120013005400561
					 [HierN1Code] => 1001
					 [HierN1Des] => 100% ALGODÃO
					 [HierN2Code] => 2001
					 [HierN2Des] => LISO
					 [HierN3Code] => 3005
					 [HierN3Des] => ALGODOES PESADOS
					 [HierN4Code] => 400561
					 [HierN4Des] => LIMA
					 [Composicao] => 100% CO
					 [CompCo] => 100,00 %
					 [Tela] => TL0053
					 [CompPl] =>
					 [CompPa] =>
					 [CompEa] =>
					 [CompVi] =>
					 [CompCu] =>
					 [CompRay] =>
					 [CompWo] =>
					 [CompLi] =>
					 [CompWa] =>
					 [CompSe] =>
					 [CompPc] =>
					 [CompMo] =>
					 [CompLy] =>
					 [CompCa] =>
					 [CompInox] =>
					 [CompPva] =>
					 [CompAc] =>
					 [CompWm] =>
					 [CompTe] =>
					 [CompRa] =>
					 [CompJu] =>
					 [CompBamboo] =>
					 [TipoTecido] => CETINS
					 [PontoBase] => CETIM 5
					 [DesenhoTecido] => LISOS
					 [TipoElastic] => SEM ELASTICIDADE
					 [Obs] =>
					 [urlImage] => http://srvsapportal.riopele.pt:50000/irj/go/km/docs/documents/Arquivo/TC0114.jpg
					 [inactivo] => N
					 [DataCri] => 2010-03-24
					 [HoraCri] => 15:10:40
					 [usrCri] => MATOS
					 [DataAlt] => 2010-11-19
					 [HoraAlt] => 17:02:54
					 [usrAlt] => MATOS
					 [CompCo1] =>
					 [CompPl1] =>
					 [CompPa1] =>
					 [CompEa1] =>
					 [CompVi1] =>
					 [CompCu1] =>
					 [CompRay1] =>
					 [CompWo1] =>
					 [CompLi1] =>
					 [CompWa1] =>
					 [CompSe1] =>
					 [CompPc1] =>
					 [CompMo1] =>
					 [CompLy1] =>
					 [CompCa1] =>
					 [CompInox1] =>
					 [CompPva1] =>
					 [CompAc1] =>
					 [CompWm1] =>
					 [CompTe1] =>
					 [CompRa1] =>
					 [CompJu1] =>
					 [CompBamboo1] =>
				 )
			 [1] => stdClass Object
				 (
					 [Mandt] => 200
					 [Artigo] => TC0450
					 [Descricao] => W 0395
					 [GrpMerc] => 5015
					 [GrpMercDes1] => TECIDO - GRP COR TP
					 [GrpMercDes2] => TECIDO - GRP COR TINTO PEÇA
					 [Peso] => 110
					 [Peso1] =>
					 [HierCode] => 100120013004400556
					 [HierN1Code] => 1001
					 [HierN1Des] => 100% ALGODÃO
					 [HierN2Code] => 2001
					 [HierN2Des] => LISO
					 [HierN3Code] => 3004
					 [HierN3Des] => ALGODOES LIGEIROS
					 [HierN4Code] => 400556
					 [HierN4Des] => LIGERO
					 [Composicao] => 100% CO
					 [CompCo] => 100,00 %
					 [Tela] => TL0017
					 [CompPl] =>
					 [CompPa] =>
					 [CompEa] =>
					 [CompVi] =>
					 [CompCu] =>
					 [CompRay] =>
					 [CompWo] =>
					 [CompLi] =>
					 [CompWa] =>
					 [CompSe] =>
					 [CompPc] =>
					 [CompMo] =>
					 [CompLy] =>
					 [CompCa] =>
					 [CompInox] =>
					 [CompPva] =>
					 [CompAc] =>
					 [CompWm] =>
					 [CompTe] =>
					 [CompRa] =>
					 [CompJu] =>
					 [CompBamboo] =>
					 [TipoTecido] => TAFETAS
					 [PontoBase] => TAFETÃ? SIMPLES
					 [DesenhoTecido] => LISOS
					 [TipoElastic] => SEM ELASTICIDADE
					 [Obs] =>
					 [urlImage] => http://srvsapportal.riopele.pt:50000/irj/go/km/docs/documents/Arquivo/TC0450.jpg
					 [inactivo] => N
					 [DataCri] => 2010-03-24
					 [HoraCri] => 15:13:59
					 [usrCri] => MATOS
					 [DataAlt] => 2010-03-24
					 [HoraAlt] => 15:14:02
					 [usrAlt] => MATOS
					 [CompCo1] =>
					 [CompPl1] =>
					 [CompPa1] =>
					 [CompEa1] =>
					 [CompVi1] =>
					 [CompCu1] =>
					 [CompRay1] =>
					 [CompWo1] =>
					 [CompLi1] =>
					 [CompWa1] =>
					 [CompSe1] =>
					 [CompPc1] =>
					 [CompMo1] =>
					 [CompLy1] =>
					 [CompCa1] =>
					 [CompInox1] =>
					 [CompPva1] =>
					 [CompAc1] =>
					 [CompWm1] =>
					 [CompTe1] =>
					 [CompRa1] =>
					 [CompJu1] =>
					 [CompBamboo1] =>
				 )

Pus só dois para veres a forma, são bastantes.

Já dá outro erro. Quando vou a por um valor numa tabela dá este erro:

Catchable fatal error

: Object of class stdClass could not be converted to string in

G:\xampp\htdocs\ws_app3\Teste.php on line

224

Linha 224 - > <td width="10%" class="style1"><?php echo $Artigo; ?></td>

(( $Artigo=$arr[1]; ))

Refiro que a tabela é passada como parametro noutro array.

Posto o código para que possas entender melhor:

$x[] = array('Mandt' => "200",
	 'Artigo' => $_POST['artigo'],
	 'Descricao' => "",
	 'GrpMerc' => "",
	 'GrpMercDes1' => "",
	 'GrpMercDes2' => "",
	 'Peso' => "",
	 'Peso1' => "",
	 'HierCode' => "",
	 'HierN1Code' => "",
	 'HierN1Des' => "",
	 'HierN2Code' => "",
	 'HierN2Des' => "",
	 'HierN3Code' => "",
	 'HierN3Des' => "",
	 'HierN4Code' => "",
	 'HierN4Des' => "",
	 'Composicao' => "",
	 'CompCo' => "",
	 'Tela' => "",
	 'CompPl' => "",
	 'CompPa' => "",
	 'CompEa' => "",
	 'CompVi' => "",
	 'CompCu' => "",
	 'CompRay' => "",
	 'CompWo' => "",
	 'CompLi' => "",
	 'CompWa' => "",
	 'CompSe' => "",
	 'CompPc' => "",
	 'CompMo' => "",
	 'CompLy' => "",
	 'CompCa' => "",
	 'CompInox' => "",
	 'CompPva' => "",
	 'CompAc' => "",
	 'CompWm' => "",
	 'CompTe' => "",
	 'CompRa' => "",
	 'CompJu' => "",
	 'CompBamboo' => "",
	 'TipoTecido' => "",
	 'PontoBase' => "",
	 'DesenhoTecido' => "",
	 'TipoElastic' => "",
	 'Obs' => "",
	 'UrlImage' => "",			
	 'Inactivo' => "",
	 'DataCri' => "",
	 'HoraCri' => "",
	 'UsrCri' => "",
	 'DataAlt' => "",
	 'HoraAlt' => "",
	 'UsrAlt' => "",
	 'CompCo1' => "",
	 'CompPl1' => "",
	 'CompPa1' => "",
	 'CompEa1' => "",
	 'CompVi1' => "",
	 'CompCu1' => "",
	 'CompRay1' => "",
	 'CompWo1' => "",
	 'CompLi1' => "",
	 'CompWa1' => "",
	 'CompSe1' => "",
	 'CompPc1' => "",
	 'CompMo1' => "",
	 'CompLy1' => "",
	 'CompCa1' => "",
	 'CompInox1' => "",
	 'CompPva1' => "",
	 'CompAc1' => "",
	 'CompWm1' => "",
	 'CompTe1' => "",
	 'CompRa1' => "",
	 'CompJu1' => "",
	 'CompBamboo1' => "");
 #Setup input parameters (SAP Likes to Capitalise the parameter names)
 $params = array('OutGestArquivo' => $x,
	 'PAccao' => "C",
	 'PMatnr' => "M",
	 'PObs' => "obs",
	 'PUrlImg' => "nnn",
	 'PUser' => "matos",
	 'PStatus' => ""
	 );
Edited by apocsantos

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.