Avalados por :

Cómo solucionar el error SOAP al crear una instancia de un Objeto de Negocio personalizado con PHP y HTML

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

Hola,

He creado un servicio web en Cloud Application Studio para un Objeto de Negocio personalizado que hice.

Ahora quiero crear una nueva instancia de este O.N. utilizando un Formulario HTML y PHP.

Probé el servicio web usando SOAPUI y creé exitosamente una nueva instancia del objeto.

Sin embargo, al intentar hacer esto a través de un Formulario HTML usando PHP, recibo el siguiente mensaje de error:


Error fatal: Excepción SoapFault : [WSDL] ERROR SOAP: Analizando WSDL: No se pudo cargar desde 'https://my307371.crm.ondemand.com/sap/bc/srt/scs/sap/yygyhi4a8y_webtoleadservice?sap-vhost=my307371....' : error al cargar la entidad externa "https://my307371.crm.ondemand.com/sap/bc/srt/scs/sap/yygyhi4a8y_webtoleadservice?sap-vhost=my307371...." en C:\xampp\htdocs\WebToLead\sendToC4C.php:58 Rastreo de la pila: #0 C:\xampp\htdocs\WebToLead\sendToC4C.php(58): SoapClient->SoapClient('https://my30737...', Array) #1 {principal} lanzado en C:\xampp\htdocs\WebToLead\sendToC4C.php en línea 58

Actualmente estoy intentando usar el siguiente 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);
   
   //Crear Encabezado
   
   $auth = new Authentication($usuario, $contraseña);
   $encabezado = new SoapHeader("http://0003427388-one-off.sap.com/YGYHI4A8Y_", "Autenticación", $auth, false);
   
   //Llamar Función
   $resultado = $cliente->__soapCall("Crear", array(
         "WebToLead" => array(
              "IDLead" => $ID_in, 
              "NombreProducto" => $NOMBREPRODUCTO_in, 
              "NombreContacto" => $NOMBRECONTACTO_in, 
              "EmailContacto" => $EMAILCONTACTO_in, 
              "FechaCreación" => $FECHACREACION_in
         )
   ), NULL, $encabezado);
   
   //Resultado
   echo "<pre>".print_r($resultado, TRUE)."</pre>";
   if ($resultado->Crear->Estado == "Éxito") {
   
       echo "Lead creado.";
       
   <    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Gran discusión, me ayudó con un problema similar.:)

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

¡No tenía idea de que se suponía que debías usarlo así!

Muchas gracias.

Pero ahora surge un error diferente:


Error fatal: Excepción SoapFault no capturada: [Cliente] ERROR DE SOAP: Codificación: el objeto no tiene la propiedad 'BasicMessageHeader' en C:\xampp\htdocs\WebToLead\sendToC4C.php:74 Trace de pila: #0 C:\xampp\htdocs\WebToLead\sendToC4C.php(74): SoapClient->__soapCall('Create', Array, NULL, Object(SoapHeader)) #1 {main} lanzado en C:\xampp\htdocs\WebToLead\sendToC4C.php en la línea 74

¿Alguna idea de cómo resolver este?

¿A qué se refieren con "objeto" aquí?

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

Parece que el constructor de la instancia del cliente de SOAP quiere el enlace del archivo WSDL.

¡Le estás dando la URI del servicio!

Descarga el WSDL e intenta apuntar a la carpeta:

$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?