-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New model: IdBasedRequestForUpdate #160
New model: IdBasedRequestForUpdate #160
Conversation
@bs-jokri takes care that the MS2 review is done. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@TobiasHamacherDLR MS3 required? Will you present next time? |
@bs-jokri We need the MS3 but we decided in our UseCase to wait for the release of the Notificarion Header Model so that we don't have to make any adjustments in case there are changes until the release - unless you can show me in our call how we can reference the header and don't have to copy it into our data model :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi everyone, here are some comments from SAP.
…Message Header as ext-property in Aspect Model Header + Fixed optional-Flags in several properties + Added modelVersion as property in Aspect Model Header + Changed WeekBasedMaterialDemandCharacteristic and WeekBasedCapacityGroupCharacteristic from List to Set (no duplicates allowed here) + Changed description of changedAt
Validation Report for io.catenax.id_based_request_for_update/1.0.0/IdBasedRequestForUpdate.ttlValidation failed: |
@nhaenis @TobiasHamacherDLR is anyone picking things up in this PR? Is this model still relevant? |
Yes, since the Message Header is now released i distributed this model for the review in our use case |
…oved modelVersion as property in Aspect Model Header + Changed description of Aspect model and properties weekBasedCapacityGroup & weekBasedMaterialDemand
Validation Report for io.catenax.id_based_request_for_update/1.0.0/IdBasedRequestForUpdate.ttlInput model is valid |
modeling_team |
Conditional approval for MS3 under the condition that it is check if the materialDemandId, changedAt and capacityGroupId should really be optional (could lead to incomplete entries in the list.) Will be checked by @nhaenis with use case |
clarification with Tom has taken place - all properties are marked correctly as optional. PR can be merged @bs-jokri |
IMHO capacityGroupId and materialDemandId should not be optional, and there is no sample payloads where the Sets have elements but the entries don't have the IDs that were discussed within the use case. It was discussed to have empty sets with a "send all Capacity Group / Material Demands" semantic (as it also says in the descriptions), but empty sets are not the same as sets with entries without IDs. It is unclear (and semantically undefined) to me what the use case of a message (schema-wise correct) as follows would be: {
"WeekBasedCapacityGroup": [
{},
{
"changedAt": "2023-03-08T11:44:27.701+01:00"
},
{
"changedAt": "2022-05-015T10:34:47.015+01:00"
}
]
} |
@LukasHeimann here's the text which will be standardized in the API standard and was reviewed with all DCM use case participants multiple times and in our workshop last week containing all possible payloads: |
Hi @nhaenis, that is the document with the sample payloads I'm referring to. Note that there is no sample payload, where materialDemandId or capacityGroupId are missing from objects within the sets. It is true that the sets may be empty and have no elements, but that is not the same as them having elements without a certain property, as shown above. |
@LukasHeimann Can you please make a suggestion for the wording in the standard and give it to Anton so that we can change the text accordingly. From my point of view, this is not something that is possible via modeling, but we can describe it in the API document |
What you want is that the set can be empty (which is the default in SAMM, so that is the case currently), but if the set contains objects, those must contain materialDemandId or capacityGroupId respectively. Thus, you only need to change those two properties to be mandatory instead of optional. |
I.e., if the materialDemandId is non-optional, the following payload would still be valid: {
"weekBasedMaterialDemand": []
} If you don't believe me, try it out with the aspect model editor yourself. Export to JSON Schema and put it e.g. into https://www.jsonschemavalidator.net/ |
@LukasHeimann and if both {
"weekBasedMaterialDemand": [
{
"materialDemandID":"278e333d-f06b-4b59-8e95-22862f69807f"},
{
"materialDemandID":"46adfa5d-36b7-4a9b-9ac6-508dac500dd2"}
]
} |
@nhaenis No, changedAt should still be optional -- you obviously want to allow having it missing. I was only talking about the two ID properties needing to be mandatory. |
Validation Report for io.catenax.id_based_request_for_update/1.0.0/IdBasedRequestForUpdate.ttlInput model is valid |
@LukasHeimann ID properties are non-optional in entity now - thanks for your hint! PR can be merged after your review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thank you for adapting the model
Validation Report for io.catenax.id_based_request_for_update/1.0.0/IdBasedRequestForUpdate.ttlInput model is valid |
Description
requested model for DcmUuidBasedRfu
Closes #
#137
MS2 Criteria
(to be filled out by PR reviewer)
DismantlerId
andDismantlerName
use an EntityDismantler
with the propertiesname
andid
or use a URN likeio.catenax.dismantler:0.0.1
)preferredName
anddescription
are not the samepreferredName
should be human readable and follow normal orthography (e.g., no camel case but normal word separation)MS3 Criteria
(to be filled out by semantic modeling team before merge to main-branch)