Buenas tardes a todos,
Les hago una consulta con respecto al objeto correcto a utilizar para una conexion basica TCP/IP?. En este caso tengo realizo la consulta correctamente pero no puedo obtener el resultado en ? oHttp:ResponseText, el status parece quedarse en 1, y en la consola de emulador ya se puede ver que envio la rta.
Estoy trabajando con el protocolo WWKS2 y un emulador oficial, en la consola veo tanto el request como la respuesta correctas pero no logro leer la respuesta desde mi programa en una variable para poder analizarla.
Alguien a trabajado con este protocolo?, me interesa hacerlo funcionar ya que es el utilizado por la mayoria de los robots de ventas.
WWKS 2 is a communication protocol to control automated storage and retrieval systems
via the TCP/IP protocol. The exchanged messages are UTF-8 coded XML
error recicido Error description: (DOS Error -2147352567) WINOLE/1007 El dato necesario para completar esta operaci贸n no est谩 disponible todav铆a.
(0x8000000A): WinHttp.WinHttpRequest
//................
FUNCTION WWKS2()
//................
local cCad:= '',cRespuesta:=''
local cUrl:='',nTest,n:=1
oHttp:=createobject( "winhttp.winhttprequest.5.1")
cCad:='<?xml version="1.0" encoding="UTF-8"?>' + CRLF
cCad:='<WWKS Version="2.0" TimeStamp="2025-11-08T' + time() + 'Z">'+CRLF
cCad+='<HelloRequest Id="1">'+CRLF
cCad+=' <Subscriber Id="1" Type="IMS" Manufacturer="WINBOT" ProductInfo="WINBOT" VersionInfo="1.0" TenantId="1">'+CRLF
cCad+=' <Capability Name="KeepAlive"/>'+CRLF
cCad+=' <Capability Name="Status"/>'+CRLF
cCad+=' <Capability Name="Input"/>'+CRLF
cCad+=' <Capability Name="InitiateInput"/>'+CRLF
cCad+=' <Capability Name="ArticleMaster"/>'+CRLF
cCad+=' <Capability Name="StockDelivery"/>'+CRLF
cCad+=' <Capability Name="StockInfo"/>'+CRLF
cCad+=' <Capability Name="Output"/>'+CRLF
cCad+=' <Capability Name="TaskCancelOutput"/>'+CRLF
cCad+=' <Capability Name="Configuration"/>'+CRLF
cCad+=' <Capability Name="StockLocationInfo"/>'+CRLF
cCad+=' </Subscriber>'+CRLF
cCad+='</HelloRequest>'+CRLF
cCad+='</WWKS>'+CRLF
cUrl:='http://192.168.56.1:6050'
TRY
oHttp:Open( 'POST' , cUrl , .T. )
CATCH
oSay:SetText("ROBOT NO DISPONBLE")
syswait(1)
RETU .F.
END
TRY
oHttp:Send(cCad)
CATCH
oSay:SetText("ROBOT NO DISPONBLE")
syswait(1)
RETU .F.
END
syswait(4)
? oHttp:ResponseBody()RETU .T.
///////////////////////////////////////////////////
EN LA CONSOLA MUESTRA ESTA RESPUESTA : SENT:
<WWKS Version="2.0" TimeStamp="2025-11-09T00:05:12Z">
<HelloResponse Id="1">
<Subscriber Id="1" Type="Robot" Manufacturer="Becton Dickinson Rowa Germany GmbH" ProductInfo="Storage System library" VersionInfo="StorageSystem.MosaicDependency [24.1.0_e7838e4d]">
<Capability Name="KeepAlive" />
<Capability Name="Status" />
<Capability Name="Input" />
<Capability Name="ArticleMaster" />
<Capability Name="StockDelivery" />
<Capability Name="StockInfo" />
<Capability Name="Output" />
<Capability Name="TaskInfo" />
<Capability Name="TaskCancel" />
<Capability Name="Configuration" />
<Capability Name="StockLocationInfo" />
<Capability Name="ArticleInfo" />
<Capability Name="ArticlePrice" />
<Capability Name="ShoppingCart" />
<Capability Name="Infeed" />
<Capability Name="OutputDestination" />
</Subscriber>
</HelloResponse>
</WWKS>
Muchas gracias y Saludos Mariano.