You are not logged in.
Hi and thanks for the great work.
I have the following Json REST Spec https://testdrive.polarion.com/polarion … nrest.json.
The mopenapi generator creates.
function TPolarionClient.GetAllDocuments(const Fields: TPolarionSparseFields;
PageSize: integer; PageNumber: integer; const Include: RawUtf8;
const Query: RawUtf8; const Sort: RawUtf8;
const Revision: RawUtf8): TPolarionDocumentsListGetResponse;
begin
fClient.Request('GET', '/all/documents', [], [
'page[size]', PageSize,
'page[number]', PageNumber,
'fields', Fields,
'include', Include,
'query', Query,
'sort', Sort,
'revision', Revision], [],
result, TypeInfo(TPolarionDocumentsListGetResponse));
end; The compiler says we are not allowed to put a (packed) record into an array constructor ![]()
polarion.client.pas(7835,15) Error: Wrong type "TPolarionSparseFields" in array constructor
Thanks so much for having a look into it.
Offline
I think there is an additional deduplication error.
"usersSingleGetResponse" in JSON has data.attributes.name. But in the DTO.pas file data "points" to a different attributes record, that has no "name" property (i guess it is pagesSingleGetResponse.data in json and not usersSingleGetResponse.data ) .
Offline
So this is not correct?
TDtoApi2761 = packed record
_Type: TEnumApi8;
Id: RawUtf8;
Revision: RawUtf8;
Attributes: TDtoApi2764;
Relationships: TDtoApi2779;
Links: TDtoApi995;
Meta: TDtoApi1354;
end;
// from #/components/schemas/usersSingleGetResponse
TUsersSingleGetResponse = packed record
Data: TDtoApi2761;
// Related entities might be returned, see <a href="https://docs.sw.siemens.com/en-US/doc/230235217/PL20250606201928474.polarion_help_sc.xid2134849/xid2134871"
// target="_blank">REST API User Guide</a>.
Included: variant;
Links: TDtoApi995;
end;
PUsersSingleGetResponse = ^TUsersSingleGetResponse;Offline
Anyway, please try with
https://github.com/synopse/mORMot2/commit/fe1370e77
It should now at least compile.
Maybe there are still some issues.
Offline
I tried with https://github.com/synopse/mORMot2/commit/fe1370e77
it complies and except for the case mentioned before it seems to work.
one cannot answer the question if the code snippet is correct as one would need to see the content of TDtoApi2764
I draw a small and simplified uml which hopefully shows that the issue becomes apparent one step below the Data record.
https://github.com/D-H-R/various/blob/m … sponse.png
As I'm not sure if the numbers stay constant I also added the generated files: https://github.com/D-H-R/various/tree/m … _generator
Last edited by DirkH (2026-07-07 21:31:29)
Offline
I can confirm it is the deduplication, which would also need to check against the actual types / followed records and not only the names (as far as I understand) of the current record.
This "Hotfix" removes the deduplication completely and "fixes" the issue shown in the previous post.
https://github.com/synopse/mORMot2/comm … a17d1cb762
Offline