Buenos días,
Supongamos que tengo una tabla con 2 campos (nombre y apellido).
Quiero hacer un web service de forma que desde otro punto de Business central, llame a ese web service pasandole como parametros un nombre y un apellido, y me devuelva true o false en función de si existe o no.
Estaba pensando en crear una codeunit con una función que reciba esos parámetros, y busque en la tabla y devuelva true o false en funcion de lo que encuentre. Publicaría esa CodeUnit como web service.
Pero ¿cómo haría la llamada a esa codeunit?.
He estado mirando y hay un tipo de Objeto HttpClient, pero no he sido capaz.
¿¿Me podéis dar alguna pista??
Gracias
Hola Luis,
No acabo de entender la necesidad de utilizar un WebService en este caso.
Hablas de tener una función en algún sitio que diga si existe un registro o no. Y que quieres llamarlo desde otro punto de Business Central. ¿Porque no lo llamas a esa función directamente en lugar de hacerlo a través de WebService?
Si estamos hablando del mismo Business Central, no tiene sentido tener que salir para encontrar una información que tienes internamente.
Si estamos hablando de dos bases de datos distintas de Business Central que quieres que se comuniquen via WebService ya es otro tema. Entonces me parece correcto.
Como comentas, está la HttpClient que es la que deberíamos usar para hacer la llamada, pero igual que tu, yo estuve haciendo algunas pruebas hace unos meses y no conseguí que funcionara.
Un saludo,
Cristina Nicolàs
BUenos dias,
Yo para llamar a un webService externo, he hecho algo asi:
procedure SendContacts(var pContactTxt: text)
var
lMensaje: Text;
Client: HttpClient;
ResponseMessage: HttpResponseMessage;
httpRequest: HttpRequestMessage;
Headers: HttpHeaders;
url: Text;
ResponseText: Text;
Content: HttpContent;
ContentTxt: Text;
begin
Content.Clear();
Content.GetHeaders(Headers);
lMensaje := pContactTxt;
Content.WriteFrom(lMensaje);
Headers.Remove(‘Content-Type’);
Headers.Remove(‘Charset’);
Headers.Add(‘Content-Type’, ‘application/json’);
Headers.Add(‘Charset’, ‘utf-8’);
httpRequest.Content(Content);
httpRequest.Method(‘POST’);url := ‘http://xxxxxx.com/webservice/create-contact’;
client.Clear();
Client.SetBaseAddress(url);
if not Client.Send(httpRequest, ResponseMessage) then
error(‘Llamada incorrecta’);
if not ResponseMessage.IsSuccessStatusCode then
Error(‘El WS ha devuelto el siguiente error:\’ +
‘Status Code : %1\’ +
‘Descripcion: %2’,
ResponseMessage.HttpStatusCode,
ResponseMessage.ReasonPhrase);ResponseMessage.Content.ReadAs(ResponseText);
Message(‘Contacto(s) enviados’);
end;
Me imagino que llamar a un serviceo web publicado en BC sera lo mismo
Debe iniciar sesión para responder a este tema.