1

.message_route(...) のデフォルトの動作の 1 つ (つまり、メッセージ ルートを取得する 3 回目の試行: 「機能する場合は、指定されたパラメーターにフォールバックする」) が正しく機能していないようです。

メッセージを投稿するための「thread_id」として使用される [ID] のような式の件名を解析することになっています。ここまでは順調ですね。

問題は、この時点に到達する前にメッセージが (もちろん) .message_parse(...) で解析されていることです。これにより、この方法で「thread_id」を取得すると、代わりに unicode-string になります。整数または long として必要な #ID。

私は正しいですか、それともここで何かが欠けていますか?

def message_route(self, cr, uid, message, model=None, thread_id=None,
                  custom_values=None, context=None):
[...]
    3. Fallback to the ``model``, ``thread_id`` and ``custom_values``
       provided.
[...]
# 3. Fallback to the provided parameters, if they work
    if not thread_id:
         # Legacy: fallback to matching [ID] in the Subject
         match = tools.res_re.search(decode_header(message, 'Subject'))
         thread_id = match and match.group(1)
     assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \
         "No possible route found for incoming message with Message-Id %s. " \
         "Create an appropriate mail.alias or force the destination model." % message_id
     if thread_id and not model_pool.exists(cr, uid, thread_id):
         _logger.warning('Received mail reply to missing document %s! Ignoring and     creating new document instead for Message-Id %s',
                         thread_id, message_id)
         thread_id = None
     _logger.debug('Routing mail with Message-Id %s: fallback to model:%s, thread_id:%s, custom_values:%s, uid:%s',
                   message_id, model, thread_id, custom_values, uid)
     return [(model, thread_id, custom_values, uid)]
4

0 に答える 0