@startuml
'https://plantuml.com/sequence-diagram

autonumber

EDC_P -> SubmodelServer: ESSIncident request
SubmodelServer -> SubmodelServer: receive ESSIncident request
EDC_P <- SubmodelServer : Send ack 201
SubmodelServer -> SubmodelServer : analyse ESSIncident content
note left SubmodelServer
      "incidentBpn" : "BPNS123456"
      "concernedCatenaXIds" : ["CxUUID"]
end note
loop for each concernedCatenaXIds
        SubmodelServer -> IRS : BPN Investigation (globalAssetId, bom, incidentBpns)
        IRS -> IRS : register job
        SubmodelServer <- IRS: 201 job id
        IRS -> EDC_C : send ESSIncident notification request
        IRS <-- EDC_C : receive ack 201
        hnote over IRS : wait (36000ms)
        alt timeout exceeded
             IRS <- IRS : set incident state = unknown
        else
             IRS <- EDC_C : receive notification callback
             IRS <- IRS : set incident state  <content.result>
        end
        SubmodelServer <- IRS : BPN Investigation result

        SubmodelServer -> SubmodelServer : update incident state
end loop
    EDC_P <- SubmodelServer: ess-suplier-response (incident state)


@enduml