After setting a watchpoint on MESSAGE, it stopped in the CHECK_EXISTENCE method of the CMD_EI_API_MAP_STRUCTURE class.
For each subordinate data structure related to the customer retrieved by the CMD_EI_API_EXTRACT=>GET_DATA method, if the CURRENT_STATE flag is blank and the associated table data is populated, the corresponding section of code is executed and an error message can occur if the TASK field is not set properly.
So unfortunately, rather than just setting CURRENT_STATE to blank to indicate nothing has changed, I also had to clear out the associated table data even though I did not need or want to change it, just so it would skip these sections of code. The beneficial side-effect was that it increased the efficiency tremendously!
I cleared the CURRENT_STATE and associated table data fields in the following structures before calling the MAINTAIN method...
CENTRAL_DATA:
ADDRESS:
COMMUNICATION
PHONE, FAX, TTX, ...,
VERSION
TEXT,
VAT_NUMBER,
TAX_GROUPING,
TAX_IND,
EXPORT,
LOADING,
CONTACT,
CREDITCARD,
BANKDETAIL,
COMPANY_DATA,
SALES_DATA
There are similar related data structures in the VMD_EI_API MAINTAIN call.
Thinking the INITIALIZE method might be related to the MAINTAIN method, I also created a local CMD_EI_API object variable and called the INITIALIZE method, and although it did not change the outcome, I left it in there as a good practice.
I also found I needed to clear the associated tax jurisdiction code in case the changed address needed to redetermine it.
Hope that helps anyone else needing to use these classes.