+1-757-461-3022 x124


Primary tabs

What are the batch manager settings for Office365 Cloud hosted emails?

There are many different options to choose from when setting up Office 365 cloud-hosted emails. The most commonly used option is Stunnel. The process of setting up the Batch Manager using Stunnel is similar to setting up Gmail, the main difference being that this process will require port 587. (More information on setting up Gmail can be found here.)

The outgoing settings for Office365 are as follows:

[SMTP Outgoing]
protocol = smtp
accept = 25
connect = smtp.office365.com:587
cert = /etc/stunnel/stunnel.pem

The other two options are direct send and SMTP relay.

  • Direct send: Will let any email send as any other email but ONLY to recipients in your domain, so no external email allowed.
  • SMTP relay: A more flexible option, but requires a static IP address on the source. You create a connector in Ofice365 that says "I trust email coming from this IP to send as whoever", which will act like a traditional SMTP server but without the authentication. More information on SMTP can be found here

Was this Helpful?
204 users have voted.

What is an SSL certificate and why do I need one?

An SSL certificate allows for you to take secure payment on the Web. The credit card information becomes encrypted and unreadable to hackers. The SSL certificate protects your customer’s address, password, and other sensitive information during the transmission of data between their computer and your web server.

Was this Helpful?
204 users have voted.

Can I add, expand, or collapse buttons to Display class screens?


Was this Helpful?
99 users have voted.

What happened to MD5 support in Authorize.net?

As of March 2019, Authorize.net phased out the MD5 based hash previously used for transaction response verification in favor of the SHA-512 based hash utilizing a signature key. If you are running an xTuple ERP version prior to 4.12, you must disable the Authorize.net MD5 hash features on the xTuple credit card configuration screen. More specifically, you should clear the MD5 Hash field turn OFF the Set on Gateway option.

Support for the new signature key feature is added beginning with xTuple ERP version 4.12, and later.

NOTE: The MD5 and signature key hash features are both optional data validation tools. They are not required and do not relate to data encryption. Data flowing from xTuple will continue to be encrypted whether a validation hash is used or not.

For more information, please see the article "MD5 Hash End of Life & Signature Key Replacement."

Was this Helpful?
18 users have voted.

How do I fix the upgrade error on invcitem_misc_check?

Some folks have seen the following error when upgrading to xTuple ERP 4.12.0 and later releases:

The following error was encountered while trying to import postbooks-upgrade.sql into the database:
ERROR: check constraint "invcitem_misc_check" is violated by some row
CONTEXT: SQL statement "alter table public.invcitem add constraint invcitem_misc_check CHECK ((COALESCE(invcitem_item_id, -1) > 0 AND COALESCE(invcitem_number, '') = '' AND COALESCE(invcitem_descrip, '') = '' AND COALESCE(invcitem_salescat_id, -1) 0));"
PL/pgSQL function xt.add_constraint(text,text,text,text) line 22 at EXECUTE
QPSQL: Unable to create query
The upgrade has been aborted due to an error and your database was rolled back to the state it was in when the upgrade was initiated.

This is caused by a tightening of data quality rules in newer releases. If you see this error in the Updater then there is at least one invoice line that is both a specific item (e.g. YTRUCK1) and a miscellaneous item. To fix it and allow the upgrade, you need to clarify in the database which it is.

Run the following query in your SQL tool of choice (psql, pgAdmin, MetaSQL editor, etc.):

SELECT invchead_invcnumber, invchead_posted, invcitem_id, invcitem_linenumber, item_number, salescat_name, invcitem_number, invcitem_descrip
FROM invcitem
JOIN invchead ON invcitem_invchead_id = invchead_id
JOIN item ON invcitem_item_id = item_id
LEFT OUTER JOIN salescat ON invcitem_salescat_id = salescat_id
WHERE COALESCE(invcitem_item_id, -1) >= 0
AND (COALESCE(invcitem_number, '') != ''
OR COALESCE(invcitem_descrip, '') != ''
OR COALESCE(invcitem_salescat_id, -1) >= 0

That query should point you to the specific invoice lines causing the trouble. There are different ways to fix them depending on circumstances.

  • Start by backing up your database
  • If the invoice has not been posted (the second column of the query output is f or false):
    1. Accounting > Accounts Receivable > Invoice > List Unposted
    2. Edit the invoice (first column)
    3. Edit the specific line number (fourth column)
    4. If the data look correct on screen, click SAVE on the Invoice Item window. This is the most common case.
    5. If the data look incorrect on screen, fix things and click SAVE on the Invoice Item window. This most likely will be necessary when the invoice was supposed to be for a miscellaneous item but the user accidentally entered a specific item after the information about the miscellaneous item. Use the last three result columns from the query above to fix the record.
  • If the invoice has been posted then you'll need to fix the data more directly (psql, pgAdmin, MetaSQL editor, etc.):
    • Make note of the invcitem_id (third column) for each invoice line that should be a specific item (e.g. YTRUCK1) and update the database directly

      UPDATE invcitem SET invcitem_salescat_id = NULL, invcitem_number = NULL, invcitem_descrip = NULL
        WHERE invcitem_id = Your_invcitem_id_HERE;
    • Make note of the invcitem_id (third column) for each invoice line that should be a miscellaneous item and update the database directly
      UPDATE invcitem SET invcitem_item_id = NULL where invcitem_id = Your_invcitem_id_HERE;

If you rerun the SELECT above you should get no rows returned. When this is true, you've fixed this particular upgrade problem and should be able to try the upgrade again.

If the UPDATEs fail with complaints that you cannot edit posted invoices, you may have to temporarily disable triggers on the invcitem table:

ALTER TABLE public.invcitem DISABLE TRIGGER invcitembeforetrigger;

Don't forget to reenable the triggers when you're done:

ALTER TABLE public.invcitem ENABLE TRIGGER invcitembeforetrigger;
Was this Helpful?
7 users have voted.