FpML Issues Tracker

726: Factor out Parties structure into a type

May 29, 2008

closed

Minor

Always

Modeling Task Force

Admin

mgratacos

Summary

Looking at the proposed rule shared-18 it is apparent that the structure of 1..* parties in a message is very common and could do with refactoring into a type.

Some degree of refactoring would make rules such as shared-18 much simpler.

"The new rule is: " shared-18 (Mandatory) Context: AcceptQuote (complex type), AllocationAmended (complex type), AllocationCancelled (complex type), AllocationCreated (complex type), AmendmentConfirmed (complex type), CancelTradeCashflows (complex type), CancelTradeConfirmation (complex type), CancelTradeMatch (complex type), ConfirmationCancelled (complex type), ConfirmTrade (complex type), ContractCreated (complex type), ContractFullTermination (complex type), ContractFullTerminationCancelled (complex type), ContractIncreased (complex type), ContractIncreasedCancelled (complex type), ContractNovated (complex type), ContractNovatedCancelled (complex type), ContractPartialTermination (complex type), ContractPartialTerminationCancelled (complex type), ContractReferenceMessage (complex type), CreditEventNotification (complex type), DataDocument (complex type), DrawdownNotice (complex type), IncreaseConfirmed (complex type), InterestPaymentNotice (complex type), ModifyTradeConfirmation (complex type), ModifyTradeMatch (complex type), NovationMessage.model (group), OneOffFeeNotice (complex type), OnGoingFeeNotice (complex type), PositionReport (complex type), PositionsAcknowledged (complex type), PositionsAsserted (complex type), PositionsMatchResults (complex type), Quote (complex type), QuoteAcceptanceConfirmed (complex type), QuoteUpdated (complex type), RepaymentConfirmationNotice (complex type), RepaymentNotice (complex type), RequestAllocation (complex type), RequestAmendmentConfirmation (complex type), RequestIncreaseConfirmation (complex type), RequestPortfolio (complex type), RequestPositionReport (complex type), RequestQuote (complex type), RequestQuoteResponse (complex type), RequestTerminationConfirmation (complex type), RequestTradeConfirmation (complex type), RequestTradeMatch (complex type), RequestTradeStatus (complex type), RequestValuationReport (complex type), TerminationConfirmed (complex type), TradeAffirmation (complex type), TradeAffirmed (complex type), TradeAlleged (complex type), TradeAlreadyMatched (complex type), TradeAlreadySubmitted (complex type), TradeAmended (complex type), TradeAmendmentRequest (complex type), TradeAmendmentResponse (complex type), TradeCancelled (complex type), TradeCashflowsAsserted (complex type), TradeCashflowsMatchResult (complex type), TradeConfirmed (complex type), TradeCreated (complex type), TradeErrorResponse (complex type), TradeExecution (complex type), TradeExecutionCancelled (complex type), TradeExecutionModified (complex type), TradeIncreaseRequest (complex type), TradeIncreaseResponse (complex type), TradeMatched (complex type), TradeMismatched (complex type), TradeNotFound (complex type), TradeStatus (complex type), TradeTerminationRequest (complex type), TradeTerminationResponse (complex type), TradeUnmatched (complex type), ValuationReport (complex type) Rule: Each party/partyId must be unique. The equivalence test for uniqueness tests the partyId content and partyIdScheme as strings. Additionally, where it exists each party/partyName must be unique. Comment: Each party must be disjoint. "

Notes:

  • mgratacos

    08/01/19 11:44 am

    AWG 2019-08-01

    • The business rule doesn’t work for internal trades but we should keep the rule.
    • We need to update the types/contexts of the rule.
    • Action: Marc to check and update the contexts of the rule for 5.11.
  • mgratacos

    08/19/19 11:54 am

    Updated contexts as of 2019-08-19:

    <rule id=”shared-18″ version-min=”4″ version-max=”&fpml.version.number;”  severity=”Mandatory”>
    <comment>Both a party’s name and party Id must be unique. The partyIdScheme is part of the partyId uniqueness check.</comment>
    <context datatype=”yes”>Acknowledgement</context>
        <context datatype=”yes”>AllocationApproved</context>
    <context datatype=”yes”>AllocationRefused</context>
        <context datatype=”yes”>ApprovalStatusNotification</context>
    <context datatype=”yes”>ClearingConfirmed</context>
        <context datatype=”yes”>ClearingEligibility</context>
    <context datatype=”yes”>ClearingRefused</context>
        <context datatype=”yes”>ClearingStatus</context>
    <context datatype=”yes”>ConfirmationAgreed</context>
    <context datatype=”yes”>ConfirmationDisputed</context>
    <context datatype=”yes”>ConfirmationRetracted</context>
    <context datatype=”yes”>ConfirmationStatus</context>
    <context datatype=”yes”>ConsentGranted</context>
    <context datatype=”yes”>ConsentRefused</context>
        <context datatype=”yes”>CreditEventNotification</context>
    <context datatype=”yes”>CreditEventNotificationRetracted</context>
    <context datatype=”yes”>DataDocument</context>
        <context datatype=”yes”>DealStatement</context>
    <context datatype=”yes”>EventRequestAcknowledgement</context>
    <context datatype=”yes”>EventStatusResponse</context>
    <context datatype=”yes”>Exception</context>
    <context datatype=”yes”>ExecutionAdvice</context>
    <context datatype=”yes”>ExecutionAdviceRetracted</context>
    <context datatype=”yes”>ExecutionNotification</context>
    <context datatype=”yes”>ExecutionRetracted</context>
        <context datatype=”yes”>FacilityNotification</context>
    <context datatype=”yes”>FacilityPositionStatement</context>
    <context datatype=”yes”>FacilityStatement</context>
    <context datatype=”yes”>LcNotification</context>
    <context datatype=”yes”>LoanAllocationNotification</context>
    <context datatype=”yes”>LoanBulkServicingNotification</context>
    <context datatype=”yes”>LoanContractNotification</context>
    <context datatype=”yes”>LoanNotificationAcknowledgement</context>
    <context datatype=”yes”>LoanNotificationException</context>
    <context datatype=”yes”>LoanNotificationRetracted</context>
    <context datatype=”yes”>LoanPartyProfileStatement</context>
    <context datatype=”yes”>LoanTradeNotification</context>
    <context datatype=”yes”>MaturityNotification</context>
    <context datatype=”yes”>OutstandingContractsStatement</context>
    <context datatype=”yes”>RegulatoryReportingStatusMessage</context>
    <context datatype=”yes”>RequestAllocation</context>
    <context datatype=”yes”>RequestAllocationRetracted</context>
    <context datatype=”yes”>RequestClearing</context>
        <context datatype=”yes”>RequestClearingEligibility</context>
    <context datatype=”yes”>RequestClearingRetracted</context>
        <context datatype=”yes”>RequestCollateralAllocation</context>
    <context datatype=”yes”>RequestConfirmation</context>
    <context datatype=”yes”>RequestConsent</context>
    <context datatype=”yes”>RequestConsentRetracted</context>
        <context datatype=”yes”>RequestExecution</context>
    <context datatype=”yes”>RequestExecutionRetracted</context>
    <context datatype=”yes”>RequestRegulatoryReportingStatusMessage</context>
    <context datatype=”yes”>RequestRetransmission</context>
    <context datatype=”yes”>RequestTradeReferenceInformationUpdate</context>
    <context datatype=”yes”>RequestTradeReferenceInformationUpdateRetracted</context>
    <context datatype=”yes”>TradeChangeAdvice</context>
    <context datatype=”yes”>TradeChangeAdviceRetracted</context>
        <context datatype=”yes”>ValuationDocument</context>
    <context datatype=”yes”>VerificationStatusNotification</context>
    <englishDescription>Each <el>party/partyId</el> must be unique. Each <el>party/partyName</el> must be unique.</englishDescription>
    <testcases>
    <invalid href=”invalid-shared-18-01.xml”/>
    </testcases>
    </rule>

  • mgratacos

    08/21/19 4:48 am

    This change will be published in the FpML 5.11 Last Call Working Draft version.

  • Leave an update

    You must be logged in to post an update.