Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
535 Lượt xem

I'm integrating Malaysia's LHDN MyInvois (e-Invoicing) into Odoo 18 Community Edition. When triggering the action_l10n_my_edi_send_invoice() method on a posted invoice, I receive a vague error without any traceback or API response detail.

Core Question:

How can I debug or fix the Malaysia e-Invoicing integration in Odoo 18 Community, especially when action_l10n_my_edi_send_invoice() fails silently?

Problem:

When calling this method:

python

CopyEdit

account_move = self.env['account.move'].browse([1]) account_move.action_l10n_my_edi_send_invoice()

I encounter the following error description in the logs:

vbnet

CopyEdit

Invalid Operation Error when sending the invoices to the E-invoicing service. - Server error; If the problem persists, please contact the Odoo support.

There is no traceback or JSON error payload logged — even with log_level = debug.

The HTTP access log shows a 200 response:

swift

CopyEdit

192.168.80.1 - - [10/May/2025 18:38:47] "POST /web/dataset/call_button/account.move/action_l10n_my_edi_send_invoice HTTP/1.1" 200 -

Clues:

  • Using Odoo 18 Community, not Enterprise.
  • The invoice is already posted and valid.
  • I suspect:
    • The Community version lacks support for MyInvois or skips the actual request.
    • Response from LHDN is malformed or contains a rejection with no handling.
    • Missing authentication (access token not set correctly).

What I Need Help With:

  1. Where in Odoo 18 Community is the MyInvois POST request constructed?
    I’d like to manually inspect and possibly log the payload and response.
  2. How to extend or monkey-patch action_l10n_my_edi_send_invoice() to:
    • Log the raw request/response.
    • Handle and display errors from LHDN clearly.
  3. Is Malaysia EDI (l10n_my_edi) officially supported in Odoo Community 18?
    If not, are there any working open-source alternatives?

Would you like a ready-made debug patch to add logging to the EDI call and capture the HTTP response from MyInvois?

Error Description:

Invalid Operation

Error when sending the invoices to the E-invoicing service. - Server error; If the problem persists, please contact the Odoo support.

Ảnh đại diện
Huỷ bỏ
Tác giả

If I using Odoo 18 community then I have my own api server to connect to lhdn?

Does this api support the community version also?
https://l10n-my-edi.api.odoo.com/

Câu trả lời hay nhất

How to log:

Define the logger:

import logging
_logger = logging.getLogger(__name__)


Using the logger:

_logger.info(f'Value of whatever: {var_name}')


Now, with that out of the way, action_l10n_my_edi_send_invoice is defined in a module named l10n_my_edi_extended.


The error message "Error when sending the invoices to the E-invoicing service." is generated in two modules:

  • l10n_my_edi (account.move.send: _call_web_service_before_invoice_pdf_render())
  • l10n_my_edi_extended (account.move x3: _l10n_my_edi_send_to_myinvois(), _l10n_my_edi_get_status())


Now, explaining how to create a custom module would go beyond the scope of a answer here, see https://www.odoo.com/documentation/18.0/developer/tutorials/backend.html. You can also see how to extend an existing method quite often in the core, as a matter of fact, even in _call_web_service_before_invoice_pdf_render() itself - i.e. super()._call_web_service_before_invoice_pdf_render(invoices_data) - so "super()" it is what you're looking for to extend a method.

As a temporary approach you could however always try to add the logging (import logging, _logger = ... and _logger.info(...)) to the core files, get the insights from the log file, verify them and finally revert your changes in the core once you know what is going on.

Ảnh đại diện
Huỷ bỏ