transact (p_string -w response, request, pipe_name)
{
  do (ERR_* alarm)  
  {
    interact (response, -_, request, pipe_name);

    translate (response, -_), 
    { 
      check_text (response) 
    };
  }  
  else       
  {
    log ("transact.error: %s", id_string),
    {
      id_string = resolve_const_name (alarm)                   
    };

    response->length = 0;                                             
  }
}