diff --git a/include/netsock.cpp b/include/netsock.cpp index 85202503b..e4eda04ea 100755 --- a/include/netsock.cpp +++ b/include/netsock.cpp @@ -974,7 +974,7 @@ bool TSocketClient::HttpSoap(CONNID id, const char* cmd) if (content.find("\n\n"); - content << "\n\r\n"; + content << "\n\r\n\r\n"; } TString buf(4096); diff --git a/include/postman.cpp b/include/postman.cpp index 6c4d00bca..0a6787648 100755 --- a/include/postman.cpp +++ b/include/postman.cpp @@ -209,15 +209,27 @@ static int write_xml(TConfig& cfg, void* jolly) if (logicnum > 0) { child.SetAttr("LogicNumber", logicnum); - child.SetAttr("TableName", logic2table(logicnum)); - + if (logicnum > LF_TAB) + child.SetAttr("TableName", logic2table(logicnum)); + else + { + TString table; + + FOR_EACH_ASSOC_STRING(vars, hobj, key, val) + if (logicnum <= LF_TAB && strcmp(key, "COD") == 0) + { + table = val; + break; + } + child.SetAttr("TableName", table); + } if (rownum > 0) child.SetAttr("RowNumber", rownum); } TString s; - + FOR_EACH_ASSOC_STRING(vars, hobj, key, val) if (val && *val) { @@ -354,10 +366,10 @@ bool TPostman::dispatch_transaction(const TRectype& rec, bool ok = true; - item.SetTag("Campo"); + item.SetTag("m:CampoTransaction"); trans.for_each_paragraph(write_xml, &item); - item.Write(stream, 0); + item.Write(stream, 2); stream << '\0'; #ifdef DBG @@ -378,11 +390,11 @@ bool TPostman::dispatch_transaction(const TRectype& rec, << "Content-Type: text/xml; charset=utf-8\n" << "Content-length: " << len << "\n" << "SOAPAction: \"/\"\r\n\r\n" - << "\n\n"; + << "\n\r\n"; - item.Write(f, 0); + item.Write(f, 2); - f << "\n\n\r\n"; + f << "\n\n\r\n\r\n"; #endif FOR_EACH_TOKEN(soap_dest, r)