public function decode_soap_reply($SOAPREPLY)
    {
        if (!is_object($SOAPREPLY)) {
            throw new \Exception('SOAP reply is not an object');
        }
        if (!property_exists($SOAPREPLY, 'return')) {
            throw new \Exception('SOAP reply does not have the property return');
        }
        $SOAPRETURN = $SOAPREPLY->return;
        $SOAPOBJVARS = get_object_vars($SOAPRETURN);
        $RETURN = reset($SOAPOBJVARS);
        if (is_object($RETURN)) {
            // Single objects mean we recieved exactly one element in the reply
            $RETURN = [$this->object_to_assoc($RETURN)];
        } else {
            // Otherwise we recieved multiple elements in the reply.
            $RETURN = $this->object_to_assoc($RETURN);
        }

        return $RETURN;
    }