Twinfield database ververst niet: itgentfr091 op TimeAndExpensesDetails

URL: https://bridge-online.cloud/acme-twinfield/odata4

Onderstaand de fout die wordt geretourneerd:

Twinfield Twinfield TimeAndExpensesDetails@tfd (2)
OLE DB- of ODBC-fout: [DataSource.Error] OData:
Aanvraag mislukt:
De externe server heeft een fout geretourneerd:
(500) Interne serverfout.
(itgentfr091: Server was unable to process request. —> Invalid name character in ‘http://www.twinfield.com/_Unexpected’. (84173)
(itgentfr091, 16f75fbd-69fd-48ed-837b-7022ce6be0f7)).

De foutcode itgentfr091 is een generieke Twinfield-fout, die helaas niet duidelijk is. Tot dusver betreft dit altijd een interne fout van Twinfield, waar wel soms omheen te werken is.

Treedt dit bij elke tabel op of bij een specifieke tabel?

Is het mogelijk om tenminste een SQL-statement uit Invantive Bridge Online Monitoring toe te voegen die deze fout opwekt? Zie Meer inzicht met nieuwe Bridge Online Monitoring voor gebruik.

Sinds wanneer treedt de foutmelding op?

Is er rond die tijd een wijziging doorgevoerd binnen Twinfield zelf, een abonnementswijziging of een verandering van de gebruiker?

Vergelijkbare meldingen:

let
    Bron = OData.Feed("https://bridge-online.cloud/acme-twinfield/odata4", null, [Implementation="2.0"]),
    #"Twinfield.Twinfield.TimeAndExpensesDetails@tfd_table" = Bron{[Name="Twinfield.Twinfield.TimeAndExpensesDetails@tfd",Signature="table"]}[Data],
    #"Kolommen verwijderd" = Table.RemoveColumns(#"Twinfield.Twinfield.TimeAndExpensesDetails@tfd_table",{"COMPANY_CODE", ..., "TEQ_TRS_LINE_BILLABLE"}),
    #"Kolommen verwijderd1" = Table.RemoveColumns(#"Kolommen verwijderd",{"TEQ_TRS_LINE_EXPENSE", ..., "HIE_XSS_ROLE"}),
    #"Namen van kolommen gewijzigd" = Table.RenameColumns(#"Kolommen verwijderd1",{{"TEQ_TRS_HEAD_AUTHORISER", ..., "LINE_TIMEVALUEINT_NB"}}),
    #"Deling ingevoegd" = Table.AddColumn(#"Namen van kolommen gewijzigd", "LINE_TIME_HR", each [LINE_TIME] / 60, type number),
    #"Aangepaste kolom toegevoegd" = Table.AddColumn(#"Deling ingevoegd", "LINE_TIME_TOT", each([LINE_TIME]+[LINE_TIME_NB])/60),
    #"Maand ingevoegd" = Table.AddColumn(#"Aangepaste kolom toegevoegd", "MONTH", each Date.Month([HEAD_DATE]), Int64.Type),
    #"Namen van kolommen gewijzigd1" = Table.RenameColumns(#"Maand ingevoegd",{{"USERCOSTCENTRENAME", "DIVISION EMPLOYEE"}, {"USERNAME", "EMPLOYEE"}, {"PROJECT2", "ACTIVTY"}, {"PROJECT2NAME", "ACTIVITYNAME"}, {"PROJECT1NAME", "PROJECTNAME"}})
in
    #"Namen van kolommen gewijzigd1"

Dank voor aanvulling qua tabel waar het tenminste bij optreedt.

Treedt dit bij elke tabel op of alleen bij TimeAndExpensesDetails?

Sinds wanneer treedt de foutmelding op?

Is er rond die tijd een wijziging doorgevoerd binnen Twinfield zelf, een abonnementswijziging of een verandering van de gebruiker?

Bedankt voor de update.

Nee, zo te zien alleen bij deze tabel. Dit is ook de enige tabel die tot nu toe actief wordt gebruikt voor Power BI. Maar ik heb een andere tabel geprobeerd in een testbestand vanPower BI en daar zag ik geen bijzonderheden. Ik kon de tabel gewoon openen

De laatste update dateert van 18-6. Dus vanaf die dag de foutmelding

Voor zover ik weet is er binnen Twinfield niets veranderd en ook geen abonnementswijziging of gebruikerswijziging

Het probleem is niet reproduceerbaar op een testomgeving voor Twinfield-tabellen en treedt ook niet bij andere Twinfield-gebruikers op op dit moment.

De melding:

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

is tot dusver een teken dat Twinfield zelf intern een foutmelding heeft gegeven.

We kunnen de API call voor u verzamelen die Twinfield Support zal vragen, maar waarschijnlijk moet u hiervoor zelf bij Twinfield Support een melding indienen.

Als u delegatie wilt geven aan het e-mailadres dat u separaat ontvangt, dan zullen we u de API call terugsturen en geanonimiseerd hier opnemen.

Is het juist dat ik nog geen gegevens over de API call heb ontvangen?

Wat moet mijn volgende stap zijn?

Dat is correct. Gelieve de delegatie te verlenen aan het e-mail van de Invantive-medewerker die aan u gemaild is. Zekerheidshalve wordt die nogmaals gemaild.

De volgende query geeft geen foutmelding of rijen voor de statussen rejected, proposed en inuse, en een itgentfr091 bij zoeken op een van de statussen entered, authorised, journalised:

select *
from   TimeAndExpensesDetails
where  TEQ_TRS_HEAD_STATUS  = 'rejected'

De volgende query geeft geen foutmelding of rijen voor 2024/01 en 2023/01, maar een itgentfr091 foutmelding voor 2023/01 en 2022/01 als periode:

select *
from TimeAndExpensesDetails
where  TEQ_TRS_HEAD_YEARPERIOD = WAARDE

Het ophalen van boekingen werkt wel:

select *
from   customersv2
where  fin_trs_head_yearperiod='2022/04'

select *
from   GeneralLedgerDetailsV3
where  fin_trs_head_yearperiod='2022/04'

Uit de interne logging van deze tabel blijkt dat tot/met 18 juni 06:23 UTC het probleem niet opgetreden is. Sinds 19 juni 06:16 UTC treed consistent de volgende error op bij het uitlezen van de Twinfield-tabel TimeAndExpensesDetails:

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

Succes details

Een succesvol verzoek van 23-6-2022 08:08:09 met filter op rejected is via een POST op ProcessXml Web Service verstuurd.

Details
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> 
<soap:Header>
  <Header xmlns="http://www.twinfield.com/">
    <CompanyCode>84173</CompanyCode>
    <AccessToken>secret</AccessToken>
  </Header>
</soap:Header>
  <soap:Body>
<ProcessXmlCompressed xmlns="http://www.twinfield.com/">
  <xmlRequest>eJzFlkFugzAQRfecwuIApInUrghXiRwYlGmNTexxCrcvbuOgqptWUX7ZDbb8+J/5A0opVbfOxMEGNQ3Ghn1ZqtZ1tC9fnp8O27Ip1Od13ZXL5UbPZLqmZ1uJD9WJdFe5vueW6s3X0rr1woGPhhrxcVnNVT558/3oP5CsHh5FEzqvtJm0R3BG8uw6BOmd6A3lHE5VoqGUdVogvRcDQXovcVB5SqzWBVkSLP4fiCidaZAiODrKyXkGdcpKg/kYg7gBoy6zUNpG716plS2ShdaGzfpPKljvDslCaQuiJYZfk2q3fPa1ON/QOWpTb251UffeDY2n9PiU/gtSeV9kPWDSGrZUCT/c7Rvnok0ktgLl0QTjHewRbSUaubgJQtI0kg2Q3ryiQMKW6WGFZYawZEaGLuNAmctOol7caiaYiEtdR6H1PAo7excuV6EpPgCchj+F</xmlRequest>
</ProcessXmlCompressed>

  </soap:Body>
</soap:Envelope>

Het uitpakken van de gecomprimeerde XML gaat met:

select to_char  
       ( zlib_decompress
         ( base64_decode
           ( 'eJzFl...+F'
           )
         )
       )

Het antwoord is:
<columns xmlns="" code="650_1">
  <column>
    <field>fin.trs.head.office</field>
    <visible>true</visible>
  </column>
  <column>
    <field>fin.trs.head.officename</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.year</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.period</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.week</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.yearperiod</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.yearweek</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.date</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.user</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.username</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.usercostcentre</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.usercostcentrename</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.code</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.authoriser</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.authorisername</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.customer</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.customername</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.project1</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.project1name</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.project1costcentre</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.project1costcentrename</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.project2</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.project2name</field>
    <visible>true</visible>
  </column>
  <column>
    <field>teq.trs.head.status</field>
    <visible>true</visible>

equal
rejected


teq.trs.head.curcode
true


teq.trs.line.time
true


teq.trs.line.timevalueint
true


teq.trs.line.timevalueext
true


teq.trs.line.time_nb
true


teq.trs.line.timevalueint_nb
true


teq.trs.line.timevalueext_nb
true


teq.trs.line.expense
true


teq.trs.line.expense_nb
true


teq.trs.line.quantity
true


teq.trs.line.qtyvalueint
true


teq.trs.line.qtyvalueext
true


teq.trs.line.quantity_nb
true


teq.trs.line.qtyvalueint_nb
true


teq.trs.line.qtyvalueext_nb
true


teq.trs.line.description
true


En het antwoord vanuit Twinfield API server is:
```xml
<?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><ProcessXmlCompressedResponse xmlns="http://www.twinfield.com/"><ProcessXmlCompressedResult>eJytlr9OwzAQxl8l8k5KmRiSdOnMgsSKnPhCDY6dns9t82wMPBKvgENbFfXPYHJDJOty+uX77M/RfX9+FYtdZ7INoNfOlmKe34sMbOOUtm+lCNTePYpFVdToth4yBB8MxTaRtRp9XMV2Iw8LciTNuKoKWsVHxVc1xIrIVlpB6zB4wFK00niI7UMPpXgmjJ8SVattTujzFUiVu7bVDRQzUgwYK7sk1FPoakBREaxPqAEkTob0gNqpyZgtwMd/9ubCULqem6hUTUtJcIZRsTRZy9jHAklNzU1Q4zzFEBJy41gUxps+HSIDrRxqjq0/oXjsBU+uY9B1BLGo6tG9Q0NzNhCrKsbAXiI5lT6wgVhUeZIUPEPSMPVSLqHRnTQnkNEWctJppl6kCXCFsRnr2hIbC3ZJrNvuXm3NaZATFz0y4GDXg/WTT/GASRR0fd/XQVrSNEzVtKaBK1hHFEuujv4YTu+PRUZaerLOfzO/OAW+Qd1THPv3rNk4s8/2g371A2LNRPY=</ProcessXmlCompressedResult></ProcessXmlCompressedResponse></soap:Body></soap:Envelope>

en uitgepakt:

<?xml version="1.0" encoding="utf-8"?><browse result="1" first="0" last="0" total="0"><th><td label="" hideforuser="false" type="String">fin.trs.head.office</td><td label="" hideforuser="false" type="String">fin.trs.head.officename</td><td label="" hideforuser="false" type="Number">teq.trs.head.year</td><td label="" hideforuser="false" type="Number">teq.trs.head.period</td><td label="" hideforuser="false" type="Number">teq.trs.head.week</td><td label="" hideforuser="false" type="String">teq.trs.head.yearperiod</td><td label="" hideforuser="false" type="String">teq.trs.head.yearweek</td><td label="" hideforuser="false" type="Date">teq.trs.head.date</td><td label="" hideforuser="false" type="String">teq.trs.head.user</td><td label="" hideforuser="false" type="String">teq.trs.head.username</td><td label="" hideforuser="false" type="String">teq.trs.head.usercostcentre</td><td label="" hideforuser="false" type="String">teq.trs.head.usercostcentrename</td><td label="" hideforuser="false" type="String">teq.trs.head.code</td><td label="" hideforuser="false" type="String">teq.trs.head.authoriser</td><td label="" hideforuser="false" type="String">teq.trs.head.authorisername</td><td label="" hideforuser="false" type="String">teq.trs.head.customer</td><td label="" hideforuser="false" type="String">teq.trs.head.customername</td><td label="" hideforuser="false" type="String">teq.trs.head.project1</td><td label="" hideforuser="false" type="String">teq.trs.head.project1name</td><td label="" hideforuser="false" type="String">teq.trs.head.project1costcentre</td><td label="" hideforuser="false" type="String">teq.trs.head.project1costcentrename</td><td label="" hideforuser="false" type="String">teq.trs.head.project2</td><td label="" hideforuser="false" type="String">teq.trs.head.project2name</td><td label="" hideforuser="false" type="String">teq.trs.head.status</td><td label="" hideforuser="false" type="String">teq.trs.head.curcode</td><td label="" hideforuser="false" type="Decimal">teq.trs.line.time</td><td label="" hideforuser="false" type="Value">teq.trs.line.timevalueint</td><td label="" hideforuser="false" type="Value">teq.trs.line.timevalueext</td><td label="" hideforuser="false" type="Decimal">teq.trs.line.time_nb</td><td label="" hideforuser="false" type="Value">teq.trs.line.timevalueint_nb</td><td label="" hideforuser="false" type="Value">teq.trs.line.timevalueext_nb</td><td label="" hideforuser="false" type="Value">teq.trs.line.expense</td><td label="" hideforuser="false" type="Value">teq.trs.line.expense_nb</td><td label="" hideforuser="false" type="Decimal">teq.trs.line.quantity</td><td label="" hideforuser="false" type="Value">teq.trs.line.qtyvalueint</td><td label="" hideforuser="false" type="Value">teq.trs.line.qtyvalueext</td><td label="" hideforuser="false" type="Decimal">teq.trs.line.quantity_nb</td><td label="" hideforuser="false" type="Value">teq.trs.line.qtyvalueint_nb</td><td label="" hideforuser="false" type="Value">teq.trs.line.qtyvalueext_nb</td><td label="" hideforuser="false" type="String">teq.trs.line.description</td></th></browse>

Falen details

Een gefaald verzoek van 23-6-2022 08:08:14 met een filter op status journalised is via een POST op ProcessXml Web Service verstuurd.

Details
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> 
<soap:Header>
  <Header xmlns="http://www.twinfield.com/">
    <CompanyCode>84173</CompanyCode>
    <AccessToken>secret</AccessToken>
  </Header>
</soap:Header>
  <soap:Body>
<ProcessXmlCompressed xmlns="http://www.twinfield.com/">
  <xmlRequest>eJzFlkFugzAQRfecwuIApKnUrghXiRwYFKfGQ+xxCrevaeOgqptWUX7ZjW356X/mDyilVN2yjYMLahqsC7uyVC13tCtfX57227Ip1OdzPZXLtNAbsl3TG1eJD9WRdFdx35uW6s3X1nr0YoI5WGrEx7Sbq3zz5vvVfyA5PTyKJnReaTNpj+CM5A13CNI70RvKOZyqhYZS1mmB9F4MBOm9hYPK08JqOUhKsPh/IKJ0LoMUwdFRjuwNqFNWGszHGIQHjLrMQmkbPZ+olS2ShdaGzfpPKljvM5KF0hZESwy/JtWcPvta2Dd0jtrWm1td1L3noTlxTBmzaYwsvwbLyn2p9YBha42jSszDDb9xLtpGMk6gPJpgvL07oK1EI5ObICRNI7kA6c0rCiQsDRAnRmYIS2Zk6DIOlLnsJOrFrWaCibjUdRRab0Yx7O7C5So0xQeUsUDf</xmlRequest>
</ProcessXmlCompressed>

  </soap:Body>
</soap:Envelope>

met als request details:

    <columns xmlns="" code="650_1">
      <column>
        <field>fin.trs.head.office</field>
        <visible>true</visible>
      </column>
      <column>
        <field>fin.trs.head.officename</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.year</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.period</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.week</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.yearperiod</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.yearweek</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.date</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.user</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.username</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.usercostcentre</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.usercostcentrename</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.code</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.authoriser</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.authorisername</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.customer</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.customername</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.project1</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.project1name</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.project1costcentre</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.project1costcentrename</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.project2</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.project2name</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.head.status</field>
        <visible>true</visible>
<operator>equal</operator>
<from>journalised</from>
      </column>
      <column>
        <field>teq.trs.head.curcode</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.time</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.timevalueint</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.timevalueext</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.time_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.timevalueint_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.timevalueext_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.expense</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.expense_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.quantity</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.qtyvalueint</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.qtyvalueext</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.quantity_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.qtyvalueint_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.qtyvalueext_nb</field>
        <visible>true</visible>
      </column>
      <column>
        <field>teq.trs.line.description</field>
        <visible>true</visible>
      </column>
    </columns>

Gelieve bij Twinfield Support een ticket in te dienen dat ergens tussen 18 juni 06:23 en 19 juni 06:16 een voorheen consistent werkende aanroep op topic 650_1 sindsdien consistent niet meer werkt. Advies is om hierbij een link naar dit topic toe te voegen waar men de details kan raadplegen.