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 inclusief SOAP-envelope

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 inclusief SOAP-envelope
<?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.

In de week van 20 Juni had ik contact met jullie omdat de tabel Twinfield.Twinfield.TimeAndExpensesDetails@tfd tabel niet meer wordt ververst sinds 18 juni 2022.

Hieronder de reactie van Twinfield Support die we ontvangen hebben nadat we de door jullie geconstateerde problemen aan hen hebben doorgegeven:

Op basis van onderstaande informatie wordt het voor ons nog onvoldoende duidelijk welke informatie er precies wordt opgevraagd uit Twinfield en welke foutmelding Twinfield hier op terug geeft.
Om hier meer duidelijkheid over te krijgen zouden we graag de SOAP envelope ontvangen die naar Twinfield wordt verstuurd en het antwoord dat Twinfield hier op terug geeft.
Mochten hier nog verdere vragen over zijn horen wij het graag.

Kunnen jullie de SOAP envelope genereren en naar ons toesturen?

De SOAP-envelope is reeds voorhanden in het vorige antwoord. Ter verduidelijking is

Falen details

vervangen door:

Falen details inclusief SOAP-envelope

Door op het pijltje aan de linkerzijde van deze tekst te klikken wordt ook de SOAP-envelope (herkenbaar aan SOAP:Envelope) zichtbaar.

Deze vraag is automatisch gesloten na tenminste 2 weken inactiviteit nadat een mogelijk passend antwoord is gegeven. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.