I'm facing an issue while updating a table. Below's the log (Namespace & tablename masked):
05/02/2019 11:33:32 AM QUE-370007 Unable to find key values for element 'TABLE_NAME' (document with schema 'TABLE_NAME')
05/02/2019 11:33:32 AM XSV-350023 Unable to save document of type 'NAMESPACE_:TABLE_NAME'.
05/02/2019 11:33:32 AM SOP-330011 Error while executing the method 'Write' of service 'xtk:persist|xtk:session'.
Key is based on 4 columns & I've verified that, data exits on all those columns & they're unique when put together.
Below is the key declaration xml:
<element label="TABLE_NAME" name="TABLE_NAME">
<key internal="true" name="PrimaryKey">
Below is the update statement:
xtkschema="NAMESPACE_:TABLE_NAME" _operation="update" _key="@COL1,@COL2,@COL3,@COL4"
<<columns that required update>>
Pls. let e know. TIA
in the doc (Elements and attributes : <key> element) it explicitly says :
"A key is known as composite if it includes several fields (i.e. several <keyfield> children). Do not use a composite key to define a primary key."
I would recommand using the autopk="true" and a creating a unique index constraint for the fields you wanted as a composite primary key :
<dbindex name="myIndex" label="My index on my 4 fields" unique="true">
What i observed in ACM was that if we created any custom PK (single/composite),
it actually creates an Unique index on the columns.
But having autopk="true" will add another column to the table & if it's a huge table, we're going consume extra space for it.
I was able to solve this by modifying the JS update code.
Thanks for the reply