Using the following models as an example:
In space "imdb_core
":
type PersonType {
typename: String!
people: [Person] @reverseDirectRelation(throughProperty: "personType")
}
type Person {
personType: PersonType
name: String!
}
Extension Model in space "imdb_ext
":type Actor
@view(
rawFilter: {
nested: {
scope: ["imdb_core", "Person/v1", "personType"]
filter: {
equals: {
property: ["imdb_core", "PersonType/v1", "typename"]
value: "Actor"
}
}
}
}
) {
Name: String! @mapping(space: "imdb_core", container: "Person", property: "name")
Salary: Float
}
Populate instances into space: imdb_core
using the Person View
Populate instances into the Actor View:
-
Via the API, you do not need to specify the mandatory Name property as the instance already exists. See example screen shot. If you create a new instance, you do need to specify the mandatory properties. The API works as expected.
-
Via transformations, you will need to specify the mandatory Name property in either case.
SLB has raised that this behavior is inconsistent. In order to populate extension types, users will need to respecify the Mandatory properties of the base types in order to leverage transformations.