¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como corrigir o erro SOAP ao criar uma instância de um Objeto de Negócio personalizado com PHP e HTML

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Cargando...

Olá,

Criei um serviço web no Cloud Application Studio para um Objeto de Negócio personalizado que fiz.

Agora quero criar uma nova instância desse O.N. utilizando um Formulário HTML e PHP.

Testei o serviço web usando o SOAPUI e criei com sucesso uma nova instância do objeto.

No entanto, ao tentar fazer isso através de um Formulário HTML usando PHP, recebo a seguinte mensagem de erro:


Erro fatal: Exceção SoapFault : [WSDL] ERRO SOAP: Analisando WSDL: Não foi possível carregar de 'https://my307371.crm.ondemand.com/sap/bc/srt/scs/sap/yygyhi4a8y_webtoleadservice?sap-vhost=my307371....' : erro ao carregar a entidade externa "https://my307371.crm.ondemand.com/sap/bc/srt/scs/sap/yygyhi4a8y_webtoleadservice?sap-vhost=my307371...." em C:\xampp\htdocs\WebToLead\sendToC4C.php:58 Rastreamento da pilha: #0 C:\xampp\htdocs\WebToLead\sendToC4C.php(58): SoapClient->SoapClient('https://my30737...', Array) #1 {principal} lançado em C:\xampp\htdocs\WebToLead\sendToC4C.php em linha 58

Atualmente estou tentando usar o seguinte código PHP:


//Configurar Cliente SOAP
   
   $url = "https://my307371.crm.ondemand.com/sap/bc/srt/scs/sap/yygyhi4a8y_webtoleadservice?sap-vhost=my307371....";
   $cliente = new SoapClient($url);
   
   //Criar Cabeçalho
   
   $auth = new Authentication($usuario, $senha);
   $cabeçalho = new SoapHeader("http://0003427388-one-off.sap.com/YGYHI4A8Y_", "Autenticação", $auth, false);
   
   //Chamar Função
   $resultado = $cliente->__soapCall("Criar", array(
         "WebToLead" => array(
              "IDLead" => $ID_in, 
              "NomeProduto" => $NOMEPRODUTO_in, 
              "NomeContato" => $NOMECONTATO_in, 
              "EmailContato" => $EMAILCONTATO_in, 
              "DataCriação" => $DATACRIACAO_in
         )
   ), NULL, $cabeçalho);
   
   //Resultado
   echo "<pre>".print_r($resultado, TRUE)."</pre>";
   if ($resultado->Criar->Estado == "Sucesso") {
   
       echo "Lead criado.";
       
   
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Ótima discussão, me ajudou com um problema semelhante.:)

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Não tinha ideia de que deveria ser usado assim!

Muito obrigado.

Mas agora surge um erro diferente:


Erro fatal: Exceção SoapFault não capturada: [Cliente] ERRO DE SOAP: Codificação: o objeto não possui a propriedade 'BasicMessageHeader' em C:\xampp\htdocs\WebToLead\sendToC4C.php:74 Rastreamento de pilha: #0 C:\xampp\htdocs\WebToLead\sendToC4C.php(74): SoapClient->__soapCall('Create', Array, NULL, Object(SoapHeader)) #1 {main} lançado em C:\xampp\htdocs\WebToLead\sendToC4C.php na linha 74

Alguma ideia de como resolver isso?

O que eles querem dizer com "objeto" aqui?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Parece que o construtor da instância do cliente SOAP está solicitando o link do arquivo WSDL.

Você está fornecendo a URI do serviço!

Faça o download do WSDL e tente apontar para a pasta:

$url = "/wsdl/tuwswsdl.wsdl"

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?