Itgensop057 GeneralLedgerDetailsV2: Invalid name character in 'http://www.twinfield.com/_Unexpected'

Een query op Twinfield General Ledger Details (V2) (achterliggende browse code 030_2) geeft een foutmelding op één specifieke administratie:

itgensop057: Server was unable to process request. —> Invalid name character in ‘http://www.twinfield.com/_Unexpected’.

De query is:

set log-native-calls-to-disk true

set use-http-disk-cache false

set use-http-memory-cache false

set use-result-memory-cache false

use 12345678

select *
from GeneralLedgerDetailsV2

Queries op de V1 en V3 geven tot dusver geen enkele keer een foutmelding. Het aantal boekstukregels is 163.386.

De queries op GeneralLedgerDetails, GeneralLedgerDetailsV2 en GeneralLedgerDetailsV3 duren tussen de 49 seconden en 58 seconden als het goed eindigt op rustige momenten en tot 179 seconden tijdens kantooruren. Queries die een foutmelding geven op de V2 API call duren korter: 17 tot 29 seconden.

Volledige Twinfield API Foutmelding

De volledige payload die terugkomt bij een foutmelding is:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><soap:Code><soap:Value>soap:Receiver</soap:Value></soap:Code><soap:Reason><soap:Text xml:lang="en">Server was unable to process request. ---&gt; Invalid name character in 'http://www.twinfield.com/_Unexpected'.</soap:Text></soap:Reason><soap:Detail /></soap:Fault></soap:Body></soap:Envelope>

Kleinere Datasets

Als het ophalen van de gegevens per periode gaat, dan treedt het probleem niet op:

declare 
  l_cnt pls_integer;
begin
  for yr in 2006..2021
  loop
    for mnd in 1..12
    loop
      begin
        dbms_output.put_line('Process ' || to_date(to_char(yr) || lpad(to_char(mnd), 2, '0') || '01', 'YYYYMMDD') || '.');
        select count(*)
        into   l_cnt
        from   GeneralLedgerDetailsV2
        where  fin_trs_head_yearperiod = to_char(yr) || '/' || lpad(to_char(mnd), 2, '0')
        ;
      exception
        when others 
        then
          raise_application_error(-20163, 'Fail on yr ' || yr || ', mnd ' || mnd || ': ' || sqlerrm);
      end;
    end loop;
  end loop;
end;

Echter, als het per jaar gaat, dan treedt de “http://www.twinfield.com/_Unexpected” incidenteel op in het jaar 2020:

declare 
  l_cnt pls_integer;
begin
  for yr in 2006..2021
  loop
    begin
      dbms_output.put_line('Process ' || to_char(yr) || '.');
      select count(*)
      into   l_cnt
      from   GeneralLedgerDetailsV2
      where  fin_trs_head_yearperiod between to_char(yr) || '/01' and to_char(yr) || '/12'
      ;
    exception
      when others 
      then
        raise_application_error(-20163, 'Fail on yr ' || yr || ': '  || sqlerrm);
    end;
  end loop;
end;