$oPending->SetGroupId($nCommandGroup); $oPending->SetInTimestamp(date("Y-m-d H:i:s")); $oPending->SetInXML($sXML); $oPending->SetSource(0); $oPending->SetCompleted(2); $bError = !$oPending->Insert($oSession); if ($bError) { $sMessage = "<error><message>" . $oPending->GetErrorInfo() . "</message></error>"; } else { $nKey = $oPending->GetPendingId(); $nSleep = 0; do { if ($nSleep > 0) { sleep(1); } $oPending->Clear(); $oPending->SetPendingId($nKey); $oPending->Select($oSession); $nSleep++; } while ($nSleep < $nTimeout && $oPending->GetCompleted() != 1 && $oPending->GetCompleted() != 4); $bError = $nSleep == $nTimeout && $oPending->GetCompleted() != 1 && $oPending->GetCompleted() != 4; if ($bError) { $sMessage = "<error><message>Timeout</message></error>"; } else { $sMessage = ""; $oCompleted = new CRowtblcompleted(); $oCompleted->SetPendingId($nKey); $oCompleted->SetOrder("CompletedId"); $oCompleted->Select($oSession); $sXML = ""; while (!$oCompleted->GetEof()) {