Itgenclr217がExact Onlineの従業員に見過ごされる

以下のステートメントは、Exact Online データベースには何も変更を与えません:

use 90420@eol

set use-http-disk-cache@eol false

set use-http-memory-cache@eol false

create or replace table EmployeesSoll@InMemoryStorage
as
select jte.*
from   jsontable
       ( '[*]'
         passing '[{  "id":31870082, "first_name":"yyy"},{  "id":31870282, first_name":"xxx"}]'
         columns EmployeeHid number path 'id'
         ,       FirstName varchar2 path 'first_name'
       ) jte

synchronize EmployeesSoll@InMemoryStorage
to ExactonlineREST..Employees@eol
with insert or update
identified by EmployeeHID
triggers
instead of insert 
  begin
    dbms_output.put_line('Insert: ' || dbms_sync.diff(:old, :new));
    insert into ExactOnlineREST..Employees@eol
    ( EmployeeHID
    , FirstName
    )
    values
    ( :new.EmployeeHID
    , :new.FirstName
    );
  exception
    when others
    then
      dbms_output.put_line('Error on insert employee on ' || :new.EmployeeHId || ' due to ' || sqlerrm);
      raise;
  end
  instead of update
  begin
    dbms_output.put_line('Update: ' || dbms_sync.diff(:old, :new));
    update ExactOnlineREST..Employees@eol
    set    FirstName    = :new.FirstName
    where  EmployeeHID = :old.EmployeeHID
    ;
  exception
    when others
    then
      dbms_output.put_line('Error on update employee on ' || :new.EmployeeHId || ' due to ' || sqlerrm);
      raise;
  end

エラーは表示されません。カウントとロギングは、実際に 2 行が更新されたことを示しています。

実際の API コールに関する次のクエリでは、itgenclr217 メッセージコードを伴う 403 Forbidden が返されます:

select *
from   sessionios@DataDictionary
order 
by     id desc

しかし、同期にはエラーは発生しません。

次の SQL において:

update exactonlinerest..employees
set    firstname='FirstName'
where  employeehid=53

更新は効力を持ちません。SessionIOs は itgenclr217 を示していますが、エラーは発生しません。

テーブルには can_insert = true があり、カラムには influences_insert = true が、それぞれ SystemTables@DataDictionary と SystemTableColumns@DataDictionary にあります。

ネイティブコールログの分析では、HTTP PUT が次の URL で Exact Online に送信されることが明らかになっています:

https://start.exactonline.de/api/v1/90420/payroll/Employees(guid'4662acaf-d235-4e82-9c37-da1207814736')

ペイロード:

{"FirstName":"FirstName"}

結果:

{"error": {"code": "", "message": {"lang": "", "value": "Forbidden"}}}

期待されること:

  • エラーが表示されること(失敗したため)、
  • そして実際に失敗しなかった場合はデータを更新すべきです。

An analysis revealed that two problems:

  • the error should have been shown in a pop-up or alike
  • at least the insert / update / delete functionality on the REST API for Employees is gone, see:

https://start.exactonline.nl/docs/HlpRestAPIResourcesDetails.aspx?name=PayrollEmployees

Invantive will reach out to Exact Online to get more information on the background and motivations. In case this is an intended change, the following alternatives can be thought of:

  • Use the XML API tables instead (when still supported).
  • Use a signal list instead.

An answer will be added once more information has been made available by Exact Online.

The Exact Online support case is 05260663.

この問題を解決するはずの調整が行われます。必要な変更は、リリース27.0(次のリリース)およびすべてのBETAリリースで利用可能です。

この新しいリリースは、2ヶ月以内にInvantive Cloudで本稼働される予定です。

詳細については、次をご覧ください:

この質問は1週間の非アクティブ状態の後、自動的にクローズされました。最後に投稿された回答が解決策としてマークされています。

問題が再発した場合は、新しいトピックを作成して新たに質問を投稿してください。新しい質問には、このトピックのリンクを貼り付けてURLを含めてください。