Test Data Manager

 View Only

 API Not working to obtain relationship between objects (data generation)

JeanFrancois Berube's profile image
JeanFrancois Berube posted May 10, 2024 01:07 PM

Hello everyone

By API, I'm trying to get PK-FK relationships between data generation objects.

I found the API TDMModelService/api/ca/v1/objects which, according to the web doc, is supposed to return these informations.

I've tried it and the Foreign Key Information is always empty. In my example, table TCAIS is the parent table and TPTSC is the child table. I would have expected TableForeignCount, foreignKeys and, perhaps, relationships not to be empty.

Am I missing something? 

See below for an example run and the definition of the 2 test tables.

Thanks for your help

JF

Translated with DeepL.com (free version)

# API result

$url= "https://$portailSource/TDMModelService/api/ca/v1/objects?projectId=52177&versionId=52178"

$result = Invoke-RestMethod -Method Get -uri $url -ContentType 'application/json;charset=UTF-8' -Headers @{"Authorization"="Bearer $tokenSource";"Accept"="application/json; charset=utf-8"} 
$result = $result | where-object {$_.objectName -like "GEN_DEMO2_*"} 
$result = $result | select objectId,objectName,tableIndexCount,TableForeignCount,TablePrimaryKeyIndex,tableOrder,foreignKeys,relationShips
$result


objectId             : 1362391
objectName           : GEN_DEMO2_TCAIS
tableIndexCount      : 0
TableForeignCount    : 
tablePrimaryKeyIndex : GEN_DEMO2_TCAIS_PK
tableOrder           : 2
foreignKeys          : 
relationships        : 

objectId             : 1362392
objectName           : GEN_DEMO2_TPTSC
tableIndexCount      : 0
TableForeignCount    : 
tablePrimaryKeyIndex : GEN_DEMO2_TPTSC_PK
tableOrder           : 3
foreignKeys          : 
relationships        : 

# Tables creation

CREATE TABLE GEN_DEMO2_TCAIS(
  NUM_INSN            VARCHAR2(3 CHAR),
  NUM_CAIS            VARCHAR2(5 CHAR));
CREATE UNIQUE INDEX GEN_DEMO2_TCAIS_PK ON SCRAMBLE.GEN_DEMO2_TCAIS(NUM_INSN, NUM_CAIS);
ALTER TABLE GEN_DEMO2_TCAIS ADD (
  CONSTRAINT GEN_DEMO2_TCAIS_PK PRIMARY KEY (NUM_INSN, NUM_CAIS)
  USING INDEX GEN_DEMO2_TCAIS_PK ENABLE VALIDATE);


CREATE TABLE GEN_DEMO2_TPTSC(
  NUM_INSN     VARCHAR2(3 CHAR),
  NUM_CAIS     VARCHAR2(5 CHAR),
  NUM_PTSC     VARCHAR2(2 CHAR));
CREATE UNIQUE INDEX GEN_DEMO2_TPTSC_PK ON GEN_DEMO2_TPTSC(NUM_INSN, NUM_CAIS, NUM_PTSC);
ALTER TABLE GEN_DEMO2_TPTSC ADD (
  CONSTRAINT GEN_DEMO2_TPTSC_PK PRIMARY KEY (NUM_INSN, NUM_CAIS, NUM_PTSC)
  USING INDEX GEN_DEMO2_TPTSC_PK ENABLE VALIDATE);
ALTER TABLE GEN_DEMO2_TPTSC ADD (
  CONSTRAINT GEN_DEMO2_TPTSC_FK FOREIGN KEY (NUM_INSN, NUM_CAIS) 
  REFERENCES GEN_DEMO2_TCAIS (NUM_INSN, NUM_CAIS) ENABLE VALIDATE);