You've already forked vendor-onboarding-l4
Import UAPF package
init
This commit is contained in:
71
README.md
Normal file
71
README.md
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# Vendor Onboarding & Approval — UAPF Level 4 Process Package
|
||||||
|
|
||||||
|
> **HeliosGroup** · Procurement Operations · Process-as-Code
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This repository contains a fully executable, AI-governed **Level-4 UAPF process package** for the end-to-end Vendor Onboarding & Approval workflow at HeliosGroup.
|
||||||
|
|
||||||
|
The process covers everything from initial vendor submission through sanctions screening, financial risk scoring, legal review, and IT provisioning — with AI agents orchestrating compliance checks at every gate.
|
||||||
|
|
||||||
|
## Process Summary
|
||||||
|
|
||||||
|
| Stage | Owner | AI Role |
|
||||||
|
|---|---|---|
|
||||||
|
| Vendor Submission | Procurement Officer | Form validation & completeness check |
|
||||||
|
| Sanctions & Compliance Screening | AI Compliance Agent | Real-time OFAC/EU sanctions lookup |
|
||||||
|
| Financial Risk Scoring | Finance & Tax | DMN-driven risk tier assignment |
|
||||||
|
| Legal Review | Legal & Contracts | AI-assisted contract clause review |
|
||||||
|
| IT Provisioning | IT Systems | Automated account & access setup |
|
||||||
|
| Approval & Activation | Procurement Officer | Final sign-off with audit trail |
|
||||||
|
|
||||||
|
## Repository Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
vendor-onboarding-l4/
|
||||||
|
├── uapf.yaml # UAPF L4 package manifest
|
||||||
|
├── enterprise/
|
||||||
|
│ └── enterprise.yaml # Enterprise index reference
|
||||||
|
├── bpmn/
|
||||||
|
│ └── vendor-onboarding.bpmn.xml # Main process (5 swim lanes)
|
||||||
|
├── dmn/
|
||||||
|
│ └── vendor-risk-scoring.dmn.xml # Risk tier decision table
|
||||||
|
├── cmmn/
|
||||||
|
│ └── sanctions-exception.cmmn.xml # Sanctions escalation case
|
||||||
|
├── resources/
|
||||||
|
│ └── mappings.yaml # System & agent bindings
|
||||||
|
├── metadata/
|
||||||
|
│ ├── lifecycle.yaml
|
||||||
|
│ └── ownership.yaml
|
||||||
|
├── processgit.mcp.yaml # MCP server configuration
|
||||||
|
└── agent.chat.yaml # AI chat assistant configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **AI-first design** — Sanctions screening, risk scoring, and contract review are all AI-executed tasks
|
||||||
|
- **Sanctions exception handling** — Dedicated CMMN case manages the full escalation path when a vendor matches a watchlist
|
||||||
|
- **DMN risk scoring** — Vendor risk tier is computed from country risk, financial health, and ownership structure
|
||||||
|
- **MCP-accessible** — All process data is queryable by AI agents via the built-in MCP server
|
||||||
|
- **Full audit trail** — Every decision is version-controlled and replayable
|
||||||
|
|
||||||
|
## Quick Start (Chat Assistant)
|
||||||
|
|
||||||
|
This repository includes an AI chat assistant. Click the **Chat** icon in the file tree to ask questions like:
|
||||||
|
|
||||||
|
- *"What should I do if the onboarding organization is under sanctions?"*
|
||||||
|
- *"Describe the full vendor onboarding process"*
|
||||||
|
- *"What documents are required for a Tier 1 high-risk vendor?"*
|
||||||
|
- *"Who approves vendors from high-risk jurisdictions?"*
|
||||||
|
|
||||||
|
## Standards & Compliance
|
||||||
|
|
||||||
|
- UAPF v1.0 compliant (Level 4 — executable process)
|
||||||
|
- BPMN 2.0 · DMN 1.3 · CMMN 1.1
|
||||||
|
- OFAC / EU Consolidated Sanctions List screening
|
||||||
|
- GDPR-aware data handling (vendor PII minimized)
|
||||||
|
- EU AI Act Art. 9 risk management documentation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Powered by [ProcessGit](https://processgit.org) — Git for Processes*
|
||||||
79
agent.chat.yaml
Normal file
79
agent.chat.yaml
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
version: "1.0"
|
||||||
|
|
||||||
|
ui:
|
||||||
|
name: "Helios Procurement AI"
|
||||||
|
subtitle: "Vendor Onboarding & Compliance Assistant"
|
||||||
|
welcome_message: |
|
||||||
|
Welcome to the **HeliosGroup Vendor Onboarding Assistant**.
|
||||||
|
|
||||||
|
I have full knowledge of our vendor onboarding process, risk scoring rules, sanctions procedures, and compliance requirements.
|
||||||
|
|
||||||
|
Ask me anything — for example:
|
||||||
|
- *"What should I do if the vendor is under sanctions?"*
|
||||||
|
- *"Describe the full vendor onboarding process"*
|
||||||
|
- *"What documents are required for a high-risk vendor?"*
|
||||||
|
- *"Who approves a Tier 1 vendor from a high-risk country?"*
|
||||||
|
|
||||||
|
quick_questions:
|
||||||
|
- "What should I do if the onboarding organization is under sanctions?"
|
||||||
|
- "Describe the full vendor onboarding process step by step"
|
||||||
|
- "What documents are required for vendor onboarding?"
|
||||||
|
- "How is vendor risk tier calculated?"
|
||||||
|
- "Who has authority to approve a high-risk Tier 1 vendor?"
|
||||||
|
- "What is the difference between a direct and indirect sanctions match?"
|
||||||
|
|
||||||
|
llm:
|
||||||
|
provider: "anthropic"
|
||||||
|
model: "claude-sonnet-4-5"
|
||||||
|
api_key_ref: "ANTHROPIC_API_KEY"
|
||||||
|
max_tokens: 1500
|
||||||
|
temperature: 0.2
|
||||||
|
system_prompt: |
|
||||||
|
You are the HeliosGroup Procurement AI Assistant — an expert on the company's
|
||||||
|
Vendor Onboarding & Approval process.
|
||||||
|
|
||||||
|
You have access to the complete process documentation through MCP tools, including:
|
||||||
|
- The full BPMN onboarding workflow with 5 swim lanes
|
||||||
|
- DMN risk scoring rules (Tier 1/2/3 classification)
|
||||||
|
- CMMN sanctions exception and escalation case
|
||||||
|
- System and agent resource mappings
|
||||||
|
|
||||||
|
Your role is to help procurement officers, legal staff, and finance teams
|
||||||
|
understand and navigate the vendor onboarding process confidently.
|
||||||
|
|
||||||
|
Communication style:
|
||||||
|
- Be clear, concise, and actionable
|
||||||
|
- Always cite the specific process step or rule when relevant
|
||||||
|
- For sanctions questions, be precise about escalation paths
|
||||||
|
- For risk questions, explain the scoring criteria clearly
|
||||||
|
- Use numbered steps for procedural answers
|
||||||
|
|
||||||
|
When a user asks about sanctions, always:
|
||||||
|
1. Explain what the AI Compliance Agent does first (automatic screening)
|
||||||
|
2. Describe the escalation path to Legal
|
||||||
|
3. Mention the CMMN exception case that is opened
|
||||||
|
4. Clarify that direct matches require CEO/CLO review
|
||||||
|
|
||||||
|
When a user asks about risk tiers:
|
||||||
|
- Tier 1 = Enhanced Due Diligence, CPO + legal approval, 30-day review
|
||||||
|
- Tier 2 = Standard Due Diligence, Director approval, 10-14 days
|
||||||
|
- Tier 3 = Simplified Due Diligence, Officer approval, 5-7 days
|
||||||
|
|
||||||
|
mcp:
|
||||||
|
use_repo_mcp: true
|
||||||
|
allowed_tools:
|
||||||
|
- search
|
||||||
|
- get_entity
|
||||||
|
- list_entities
|
||||||
|
- describe_model
|
||||||
|
- generate_document
|
||||||
|
|
||||||
|
access:
|
||||||
|
visibility: "public"
|
||||||
|
rate_limits:
|
||||||
|
requests_per_minute: 20
|
||||||
|
requests_per_day: 200
|
||||||
|
max_conversation_turns: 30
|
||||||
|
|
||||||
|
history:
|
||||||
|
enabled: false
|
||||||
13
enterprise.yaml
Normal file
13
enterprise.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
kind: uapf.enterprise.index
|
||||||
|
level: 0
|
||||||
|
enterprise:
|
||||||
|
id: heliosgroup
|
||||||
|
name: HeliosGroup
|
||||||
|
description: >
|
||||||
|
HeliosGroup enterprise process catalog — AI-governed operational
|
||||||
|
processes across procurement, finance, legal, and IT domains.
|
||||||
|
packages:
|
||||||
|
- ref: ../vendor-onboarding-l4
|
||||||
|
level: 4
|
||||||
|
domain: procurement
|
||||||
|
description: Vendor Onboarding & Approval with AI compliance screening
|
||||||
18
lifecycle.yaml
Normal file
18
lifecycle.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
kind: uapf.metadata.lifecycle
|
||||||
|
status: stable
|
||||||
|
version: 1.0.0
|
||||||
|
effectiveFrom: "2026-01-01"
|
||||||
|
effectiveUntil: null
|
||||||
|
reviewCycle: annual
|
||||||
|
lastReview: "2026-01-15"
|
||||||
|
nextReview: "2027-01-15"
|
||||||
|
approvals:
|
||||||
|
- approver: Chief Procurement Officer
|
||||||
|
date: "2026-01-15"
|
||||||
|
status: approved
|
||||||
|
- approver: Chief Legal Officer
|
||||||
|
date: "2026-01-15"
|
||||||
|
status: approved
|
||||||
|
- approver: Chief Compliance Officer
|
||||||
|
date: "2026-01-15"
|
||||||
|
status: approved
|
||||||
75
mappings.yaml
Normal file
75
mappings.yaml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
version: "1.0"
|
||||||
|
mappings:
|
||||||
|
- taskId: Task_ValidateSubmission
|
||||||
|
type: human_role
|
||||||
|
resource: procurement-officer
|
||||||
|
role: Procurement Officer
|
||||||
|
|
||||||
|
- taskId: Task_RegisterVendor
|
||||||
|
type: system_api
|
||||||
|
resource: master-data-management
|
||||||
|
endpoint: /api/v1/vendors/register
|
||||||
|
|
||||||
|
- taskId: Task_SanctionsScreening
|
||||||
|
type: ai_agent
|
||||||
|
resource: ai-compliance-agent
|
||||||
|
capabilities:
|
||||||
|
- ofac_screening
|
||||||
|
- eu_sanctions_lookup
|
||||||
|
- un_consolidated_list
|
||||||
|
endpoint: /api/v1/compliance/sanctions-check
|
||||||
|
|
||||||
|
- taskId: Task_OwnershipCheck
|
||||||
|
type: ai_agent
|
||||||
|
resource: ai-compliance-agent
|
||||||
|
capabilities:
|
||||||
|
- ubo_analysis
|
||||||
|
- corporate_structure_mapping
|
||||||
|
- pep_screening
|
||||||
|
|
||||||
|
- taskId: Task_RiskScoring
|
||||||
|
type: decision_engine
|
||||||
|
resource: dmn-engine
|
||||||
|
decisionRef: Decision_VendorRiskTier
|
||||||
|
inputs:
|
||||||
|
- countryCode
|
||||||
|
- creditScore
|
||||||
|
- ownershipStructure
|
||||||
|
- annualContractValue
|
||||||
|
- yearsTrading
|
||||||
|
|
||||||
|
- taskId: Task_LegalReview
|
||||||
|
type: human_role
|
||||||
|
resource: legal-counsel
|
||||||
|
role: Legal & Compliance Officer
|
||||||
|
|
||||||
|
- taskId: Task_ContractDrafting
|
||||||
|
type: human_role
|
||||||
|
resource: legal-counsel
|
||||||
|
role: Contract Specialist
|
||||||
|
ai_assist: true
|
||||||
|
ai_capabilities:
|
||||||
|
- clause_suggestion
|
||||||
|
- risk_clause_detection
|
||||||
|
|
||||||
|
- taskId: Task_CreateVendorProfile
|
||||||
|
type: system_api
|
||||||
|
resource: sap-erp
|
||||||
|
endpoint: /api/v1/vendors/create
|
||||||
|
system: SAP S/4HANA
|
||||||
|
|
||||||
|
- taskId: Task_ProvisionPortalAccess
|
||||||
|
type: system_api
|
||||||
|
resource: vendor-portal
|
||||||
|
endpoint: /api/v1/access/provision
|
||||||
|
|
||||||
|
- taskId: Task_SetupPaymentDetails
|
||||||
|
type: system_api
|
||||||
|
resource: treasury-system
|
||||||
|
endpoint: /api/v1/payment/setup
|
||||||
|
|
||||||
|
- taskId: Task_IntegrateERP
|
||||||
|
type: system_api
|
||||||
|
resource: sap-erp
|
||||||
|
endpoint: /api/v1/vendors/activate
|
||||||
|
system: SAP S/4HANA
|
||||||
24
ownership.yaml
Normal file
24
ownership.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
kind: uapf.metadata.ownership
|
||||||
|
owner:
|
||||||
|
team: procurement-ops
|
||||||
|
contact: procurement@heliosgroup.com
|
||||||
|
department: Group Procurement Operations
|
||||||
|
|
||||||
|
stakeholders:
|
||||||
|
- name: Legal & Compliance
|
||||||
|
role: Process Reviewer
|
||||||
|
contact: legal@heliosgroup.com
|
||||||
|
- name: Finance & Tax
|
||||||
|
role: Risk Scoring Owner
|
||||||
|
contact: finance@heliosgroup.com
|
||||||
|
- name: IT & Systems
|
||||||
|
role: Integration Owner
|
||||||
|
contact: it@heliosgroup.com
|
||||||
|
- name: Group Risk Committee
|
||||||
|
role: Oversight
|
||||||
|
contact: risk@heliosgroup.com
|
||||||
|
|
||||||
|
escalation:
|
||||||
|
level_1: procurement@heliosgroup.com
|
||||||
|
level_2: legal@heliosgroup.com
|
||||||
|
level_3: cpo@heliosgroup.com
|
||||||
54
processgit.mcp.yaml
Normal file
54
processgit.mcp.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
version: 1
|
||||||
|
|
||||||
|
server:
|
||||||
|
name: "HeliosGroup Vendor Onboarding MCP"
|
||||||
|
description: >
|
||||||
|
MCP server for the HeliosGroup Vendor Onboarding & Approval process package.
|
||||||
|
Provides AI agents with structured access to process definitions, risk scoring
|
||||||
|
rules, sanctions handling procedures, and compliance requirements.
|
||||||
|
instructions: >
|
||||||
|
This server exposes the complete Vendor Onboarding & Approval process at HeliosGroup.
|
||||||
|
Use 'search' to find process steps, compliance rules, or risk criteria by keyword.
|
||||||
|
Use 'get_entity' to retrieve full details of specific tasks, decisions, or cases.
|
||||||
|
Use 'list_entities' to browse by type (task, decision, case, resource).
|
||||||
|
Use 'generate_document' to produce a formatted process summary.
|
||||||
|
Key entities: vendor-onboarding-process (BPMN), vendor-risk-scoring (DMN),
|
||||||
|
sanctions-exception (CMMN), resource-mappings.
|
||||||
|
|
||||||
|
sources:
|
||||||
|
- path: "bpmn/vendor-onboarding.bpmn.xml"
|
||||||
|
type: "xml"
|
||||||
|
description: >
|
||||||
|
Main vendor onboarding BPMN process — 5 swim lanes covering Procurement,
|
||||||
|
AI Compliance, Legal, Finance, and IT. Includes sanctions screening path,
|
||||||
|
parallel compliance checks, risk-tiered due diligence, and IT provisioning.
|
||||||
|
|
||||||
|
- path: "dmn/vendor-risk-scoring.dmn.xml"
|
||||||
|
type: "xml"
|
||||||
|
description: >
|
||||||
|
Vendor risk scoring DMN decision tables. Computes risk tier (1/2/3),
|
||||||
|
required due diligence level, approval authority, and review timeline
|
||||||
|
based on country risk, financial health, and ownership structure.
|
||||||
|
Includes country risk classification and FATF/sanctions list checks.
|
||||||
|
|
||||||
|
- path: "cmmn/sanctions-exception.cmmn.xml"
|
||||||
|
type: "xml"
|
||||||
|
description: >
|
||||||
|
Sanctions exception and escalation CMMN case. Activated when AI agent
|
||||||
|
detects a sanctions match. Covers initial assessment, legal investigation,
|
||||||
|
executive escalation (for direct matches or contracts > €500K),
|
||||||
|
and formal resolution with audit trail.
|
||||||
|
|
||||||
|
- path: "resources/mappings.yaml"
|
||||||
|
type: "xml"
|
||||||
|
description: >
|
||||||
|
System and agent resource mappings — shows which AI agents, human roles,
|
||||||
|
and enterprise systems (SAP ERP, vendor portal, treasury) handle each task.
|
||||||
|
|
||||||
|
- path: "uapf.yaml"
|
||||||
|
type: "xml"
|
||||||
|
description: "UAPF package manifest with process metadata, owners, and tags."
|
||||||
|
|
||||||
|
- path: "README.md"
|
||||||
|
type: "xml"
|
||||||
|
description: "Process overview, stage summary table, compliance standards."
|
||||||
145
sanctions-exception.cmmn.xml
Normal file
145
sanctions-exception.cmmn.xml
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<cmmn:definitions xmlns:cmmn="http://www.omg.org/spec/CMMN/20151109/MODEL"
|
||||||
|
xmlns:cmmndi="http://www.omg.org/spec/CMMN/20151109/CMMNDI"
|
||||||
|
xmlns:dc="http://www.omg.org/spec/CMMN/20151109/DC"
|
||||||
|
id="SanctionsExceptionCase"
|
||||||
|
targetNamespace="https://processgit.org/heliosgroup/sanctions-exception">
|
||||||
|
|
||||||
|
<cmmn:case id="Case_SanctionsException" name="Sanctions Exception & Escalation Case">
|
||||||
|
<cmmn:casePlanModel id="CasePlanModel_1" name="Sanctions Match — Manual Review & Override Process">
|
||||||
|
|
||||||
|
<!-- Stage 1: Initial Assessment -->
|
||||||
|
<cmmn:planItem id="PI_InitialAssessment" definitionRef="Stage_InitialAssessment">
|
||||||
|
<cmmn:entryCriterion id="EC_1" sentryRef="Sentry_CaseOpened"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
|
||||||
|
<!-- Stage 2: Legal Investigation -->
|
||||||
|
<cmmn:planItem id="PI_LegalInvestigation" definitionRef="Stage_LegalInvestigation">
|
||||||
|
<cmmn:entryCriterion id="EC_2" sentryRef="Sentry_AssessmentComplete"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
|
||||||
|
<!-- Stage 3: Executive Escalation (conditional) -->
|
||||||
|
<cmmn:planItem id="PI_ExecutiveEscalation" definitionRef="Stage_ExecutiveEscalation">
|
||||||
|
<cmmn:entryCriterion id="EC_3" sentryRef="Sentry_EscalationRequired"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
|
||||||
|
<!-- Stage 4: Resolution -->
|
||||||
|
<cmmn:planItem id="PI_Resolution" definitionRef="Stage_Resolution">
|
||||||
|
<cmmn:entryCriterion id="EC_4" sentryRef="Sentry_DecisionMade"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
|
||||||
|
<!-- Milestone: Case Closed -->
|
||||||
|
<cmmn:planItem id="PI_CaseClosed" definitionRef="Milestone_CaseClosed">
|
||||||
|
<cmmn:entryCriterion id="EC_5" sentryRef="Sentry_ResolutionComplete"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
|
||||||
|
<!-- SENTRIES -->
|
||||||
|
<cmmn:sentry id="Sentry_CaseOpened">
|
||||||
|
<cmmn:planItemOnPart id="POP_1" sourceRef="PI_InitialAssessment">
|
||||||
|
<cmmn:standardEvent>create</cmmn:standardEvent>
|
||||||
|
</cmmn:planItemOnPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
<cmmn:sentry id="Sentry_AssessmentComplete">
|
||||||
|
<cmmn:planItemOnPart id="POP_2" sourceRef="PI_InitialAssessment">
|
||||||
|
<cmmn:standardEvent>complete</cmmn:standardEvent>
|
||||||
|
</cmmn:planItemOnPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
<cmmn:sentry id="Sentry_EscalationRequired">
|
||||||
|
<cmmn:ifPart id="IP_1">
|
||||||
|
<cmmn:condition id="Cond_1"><cmmn:body>sanctionsMatchType == "DIRECT" || contractValue > 500000</cmmn:body></cmmn:condition>
|
||||||
|
</cmmn:ifPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
<cmmn:sentry id="Sentry_DecisionMade">
|
||||||
|
<cmmn:planItemOnPart id="POP_3" sourceRef="PI_LegalInvestigation">
|
||||||
|
<cmmn:standardEvent>complete</cmmn:standardEvent>
|
||||||
|
</cmmn:planItemOnPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
<cmmn:sentry id="Sentry_ResolutionComplete">
|
||||||
|
<cmmn:planItemOnPart id="POP_4" sourceRef="PI_Resolution">
|
||||||
|
<cmmn:standardEvent>complete</cmmn:standardEvent>
|
||||||
|
</cmmn:planItemOnPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
|
||||||
|
<!-- STAGE DEFINITIONS -->
|
||||||
|
|
||||||
|
<!-- Stage 1: Initial Assessment -->
|
||||||
|
<cmmn:stage id="Stage_InitialAssessment" name="Initial Sanctions Assessment">
|
||||||
|
<cmmn:planItem id="PI_ReviewAlert" definitionRef="Task_ReviewSanctionsAlert"/>
|
||||||
|
<cmmn:planItem id="PI_ClassifyMatch" definitionRef="Task_ClassifyMatchType">
|
||||||
|
<cmmn:entryCriterion id="EC_S1_1" sentryRef="Sentry_S1_AlertReviewed"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
<cmmn:planItem id="PI_CheckFalsePositive" definitionRef="Task_CheckFalsePositive">
|
||||||
|
<cmmn:entryCriterion id="EC_S1_2" sentryRef="Sentry_S1_Classified"/>
|
||||||
|
</cmmn:planItem>
|
||||||
|
<cmmn:sentry id="Sentry_S1_AlertReviewed">
|
||||||
|
<cmmn:planItemOnPart id="POP_S1_1" sourceRef="PI_ReviewAlert">
|
||||||
|
<cmmn:standardEvent>complete</cmmn:standardEvent>
|
||||||
|
</cmmn:planItemOnPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
<cmmn:sentry id="Sentry_S1_Classified">
|
||||||
|
<cmmn:planItemOnPart id="POP_S1_2" sourceRef="PI_ClassifyMatch">
|
||||||
|
<cmmn:standardEvent>complete</cmmn:standardEvent>
|
||||||
|
</cmmn:planItemOnPart>
|
||||||
|
</cmmn:sentry>
|
||||||
|
<cmmn:humanTask id="Task_ReviewSanctionsAlert" name="Review Sanctions Alert Details"/>
|
||||||
|
<cmmn:humanTask id="Task_ClassifyMatchType" name="Classify: Direct / Indirect / False Positive"/>
|
||||||
|
<cmmn:humanTask id="Task_CheckFalsePositive" name="Verify False Positive against Source Lists"/>
|
||||||
|
</cmmn:stage>
|
||||||
|
|
||||||
|
<!-- Stage 2: Legal Investigation -->
|
||||||
|
<cmmn:stage id="Stage_LegalInvestigation" name="Legal Investigation">
|
||||||
|
<cmmn:planItem id="PI_RequestLegalOpinion" definitionRef="Task_RequestLegalOpinion"/>
|
||||||
|
<cmmn:planItem id="PI_ReviewUBO" definitionRef="Task_ReviewUBOStructure">
|
||||||
|
<cmmn:itemControl id="IC_UBO"><cmmn:manualActivationRule/></cmmn:itemControl>
|
||||||
|
</cmmn:planItem>
|
||||||
|
<cmmn:planItem id="PI_ContactAuthorities" definitionRef="Task_ContactRegulatoryAuthorities">
|
||||||
|
<cmmn:itemControl id="IC_Auth"><cmmn:manualActivationRule/></cmmn:itemControl>
|
||||||
|
</cmmn:planItem>
|
||||||
|
<cmmn:planItem id="PI_DocumentFindings" definitionRef="Task_DocumentLegalFindings"/>
|
||||||
|
<cmmn:humanTask id="Task_RequestLegalOpinion" name="Request Legal Opinion from Counsel"/>
|
||||||
|
<cmmn:humanTask id="Task_ReviewUBOStructure" name="Review Ultimate Beneficial Ownership Structure"/>
|
||||||
|
<cmmn:humanTask id="Task_ContactRegulatoryAuthorities" name="Contact Regulatory Authorities (if required)"/>
|
||||||
|
<cmmn:humanTask id="Task_DocumentLegalFindings" name="Document Legal Findings & Recommendation"/>
|
||||||
|
</cmmn:stage>
|
||||||
|
|
||||||
|
<!-- Stage 3: Executive Escalation -->
|
||||||
|
<cmmn:stage id="Stage_ExecutiveEscalation" name="Executive Escalation">
|
||||||
|
<cmmn:planItem id="PI_PrepareExecBrief" definitionRef="Task_PrepareExecutiveBriefing"/>
|
||||||
|
<cmmn:planItem id="PI_ExecReview" definitionRef="Task_ExecutiveReview"/>
|
||||||
|
<cmmn:planItem id="PI_BoardNotification" definitionRef="Task_BoardNotification">
|
||||||
|
<cmmn:itemControl id="IC_Board"><cmmn:manualActivationRule/></cmmn:itemControl>
|
||||||
|
</cmmn:planItem>
|
||||||
|
<cmmn:humanTask id="Task_PrepareExecutiveBriefing" name="Prepare Executive Briefing Document"/>
|
||||||
|
<cmmn:humanTask id="Task_ExecutiveReview" name="CEO / CLO Decision Review"/>
|
||||||
|
<cmmn:humanTask id="Task_BoardNotification" name="Notify Board Audit & Risk Committee"/>
|
||||||
|
</cmmn:stage>
|
||||||
|
|
||||||
|
<!-- Stage 4: Resolution -->
|
||||||
|
<cmmn:stage id="Stage_Resolution" name="Case Resolution">
|
||||||
|
<cmmn:planItem id="PI_RecordDecision" definitionRef="Task_RecordFinalDecision"/>
|
||||||
|
<cmmn:planItem id="PI_UpdateWatchlist" definitionRef="Task_UpdateInternalWatchlist"/>
|
||||||
|
<cmmn:planItem id="PI_NotifyProcurement" definitionRef="Task_NotifyProcurement"/>
|
||||||
|
<cmmn:humanTask id="Task_RecordFinalDecision" name="Record Final Decision in Audit Trail"/>
|
||||||
|
<cmmn:serviceTask id="Task_UpdateInternalWatchlist" name="Update Internal Vendor Watchlist"/>
|
||||||
|
<cmmn:humanTask id="Task_NotifyProcurement" name="Notify Procurement of Outcome"/>
|
||||||
|
</cmmn:stage>
|
||||||
|
|
||||||
|
<cmmn:milestone id="Milestone_CaseClosed" name="Sanctions Case Closed"/>
|
||||||
|
|
||||||
|
</cmmn:casePlanModel>
|
||||||
|
</cmmn:case>
|
||||||
|
|
||||||
|
<cmmndi:CMMNDI>
|
||||||
|
<cmmndi:CMMNDiagram id="CMMNDiagram_1">
|
||||||
|
<cmmndi:CMMNShape id="CS_CasePlan" cmmnElementRef="CasePlanModel_1"><dc:Bounds x="50" y="50" width="1100" height="600"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_S1" cmmnElementRef="PI_InitialAssessment"><dc:Bounds x="100" y="100" width="220" height="180"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_S2" cmmnElementRef="PI_LegalInvestigation"><dc:Bounds x="360" y="100" width="220" height="200"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_S3" cmmnElementRef="PI_ExecutiveEscalation"><dc:Bounds x="620" y="100" width="220" height="180"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_S4" cmmnElementRef="PI_Resolution"><dc:Bounds x="880" y="100" width="220" height="180"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_Milestone" cmmnElementRef="PI_CaseClosed"><dc:Bounds x="880" y="450" width="100" height="60"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_EC2" cmmnElementRef="EC_2"><dc:Bounds x="350" y="175" width="20" height="28"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_EC3" cmmnElementRef="EC_3"><dc:Bounds x="610" y="175" width="20" height="28"/></cmmndi:CMMNShape>
|
||||||
|
<cmmndi:CMMNShape id="CS_EC4" cmmnElementRef="EC_4"><dc:Bounds x="870" y="175" width="20" height="28"/></cmmndi:CMMNShape>
|
||||||
|
</cmmndi:CMMNDiagram>
|
||||||
|
</cmmndi:CMMNDI>
|
||||||
|
</cmmn:definitions>
|
||||||
35
uapf.yaml
Normal file
35
uapf.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
kind: uapf.package
|
||||||
|
id: uapf.heliosgroup.vendor-onboarding
|
||||||
|
name: Vendor Onboarding & Approval
|
||||||
|
description: >
|
||||||
|
End-to-end vendor onboarding process with AI-powered sanctions screening,
|
||||||
|
financial risk scoring, legal review, and IT provisioning.
|
||||||
|
Fully executable at Level 4 with MCP-accessible process data.
|
||||||
|
level: 4
|
||||||
|
version: 1.0.0
|
||||||
|
includes: []
|
||||||
|
cornerstones:
|
||||||
|
bpmn: true
|
||||||
|
dmn: true
|
||||||
|
cmmn: true
|
||||||
|
resources: true
|
||||||
|
paths:
|
||||||
|
bpmn: bpmn
|
||||||
|
dmn: dmn
|
||||||
|
cmmn: cmmn
|
||||||
|
resources: resources
|
||||||
|
metadata: metadata
|
||||||
|
owners:
|
||||||
|
- type: team
|
||||||
|
id: procurement-ops
|
||||||
|
contact: procurement@heliosgroup.com
|
||||||
|
- type: team
|
||||||
|
id: legal-compliance
|
||||||
|
contact: legal@heliosgroup.com
|
||||||
|
lifecycle: stable
|
||||||
|
tags:
|
||||||
|
- procurement
|
||||||
|
- vendor-management
|
||||||
|
- sanctions-screening
|
||||||
|
- ai-governance
|
||||||
|
- eu-ai-act
|
||||||
567
vendor-onboarding.bpmn.xml
Normal file
567
vendor-onboarding.bpmn.xml
Normal file
@@ -0,0 +1,567 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
|
||||||
|
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
|
||||||
|
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
||||||
|
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
id="Definitions_VendorOnboarding"
|
||||||
|
targetNamespace="https://processgit.org/heliosgroup/vendor-onboarding"
|
||||||
|
name="Vendor Onboarding & Approval">
|
||||||
|
|
||||||
|
<!-- ═══════════════════════════════════════════════════════
|
||||||
|
MESSAGES
|
||||||
|
═══════════════════════════════════════════════════════ -->
|
||||||
|
<bpmn:message id="Msg_VendorSubmission" name="VendorSubmissionReceived"/>
|
||||||
|
<bpmn:message id="Msg_SanctionsResult" name="SanctionsScreeningResult"/>
|
||||||
|
<bpmn:message id="Msg_RiskScoreResult" name="RiskScoringComplete"/>
|
||||||
|
<bpmn:message id="Msg_LegalApproval" name="LegalApprovalDecision"/>
|
||||||
|
<bpmn:message id="Msg_ITProvisioned" name="ITProvisioningComplete"/>
|
||||||
|
<bpmn:message id="Msg_VendorNotification" name="VendorNotification"/>
|
||||||
|
|
||||||
|
<!-- ═══════════════════════════════════════════════════════
|
||||||
|
COLLABORATION
|
||||||
|
═══════════════════════════════════════════════════════ -->
|
||||||
|
<bpmn:collaboration id="Collab_VendorOnboarding">
|
||||||
|
<bpmn:participant id="Pool_Helios" name="HeliosGroup — Vendor Onboarding & Approval" processRef="Process_VendorOnboarding"/>
|
||||||
|
<bpmn:participant id="Pool_Vendor" name="Vendor / Supplier"/>
|
||||||
|
<bpmn:messageFlow id="MF_1" sourceRef="Pool_Vendor" targetRef="Start_VendorRequest"/>
|
||||||
|
<bpmn:messageFlow id="MF_2" sourceRef="Task_NotifyVendorApproved" targetRef="Pool_Vendor"/>
|
||||||
|
<bpmn:messageFlow id="MF_3" sourceRef="Task_NotifyVendorRejected" targetRef="Pool_Vendor"/>
|
||||||
|
</bpmn:collaboration>
|
||||||
|
|
||||||
|
<!-- ═══════════════════════════════════════════════════════
|
||||||
|
MAIN PROCESS
|
||||||
|
═══════════════════════════════════════════════════════ -->
|
||||||
|
<bpmn:process id="Process_VendorOnboarding" name="Vendor Onboarding & Approval" isExecutable="true">
|
||||||
|
|
||||||
|
<!-- ─── LANE DEFINITIONS ─── -->
|
||||||
|
<bpmn:laneSet id="LaneSet_1">
|
||||||
|
<bpmn:lane id="Lane_Procurement" name="Procurement Officer">
|
||||||
|
<bpmn:flowNodeRef>Start_VendorRequest</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_ValidateSubmission</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_SubmissionComplete</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_RequestMissingDocs</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_RegisterVendor</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_ForkCompliance</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_JoinCompliance</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_OverallDecision</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_FinalApproval</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_NotifyVendorApproved</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_NotifyVendorRejected</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_ArchiveRejection</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>End_Approved</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>End_Rejected</bpmn:flowNodeRef>
|
||||||
|
</bpmn:lane>
|
||||||
|
<bpmn:lane id="Lane_AI" name="AI Compliance Agent">
|
||||||
|
<bpmn:flowNodeRef>Task_SanctionsScreening</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_OwnershipCheck</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_SanctionsHit</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_AutoReject_Sanctions</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_GenerateRiskProfile</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Evt_SanctionsTimeout</bpmn:flowNodeRef>
|
||||||
|
</bpmn:lane>
|
||||||
|
<bpmn:lane id="Lane_Legal" name="Legal & Contracts">
|
||||||
|
<bpmn:flowNodeRef>Task_LegalReview</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_ContractDrafting</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_LegalDecision</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_SanctionsEscalation</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_EscalationDecision</bpmn:flowNodeRef>
|
||||||
|
</bpmn:lane>
|
||||||
|
<bpmn:lane id="Lane_Finance" name="Finance & Tax">
|
||||||
|
<bpmn:flowNodeRef>Task_RiskScoring</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_FinancialDueDiligence</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_RiskTier</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_EnhancedDueDiligence</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_TaxVerification</bpmn:flowNodeRef>
|
||||||
|
</bpmn:lane>
|
||||||
|
<bpmn:lane id="Lane_IT" name="IT & Systems">
|
||||||
|
<bpmn:flowNodeRef>Task_CreateVendorProfile</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_ProvisionPortalAccess</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_SetupPaymentDetails</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_ForkIT</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>GW_JoinIT</bpmn:flowNodeRef>
|
||||||
|
<bpmn:flowNodeRef>Task_IntegrateERP</bpmn:flowNodeRef>
|
||||||
|
</bpmn:lane>
|
||||||
|
</bpmn:laneSet>
|
||||||
|
|
||||||
|
<!-- ─── START ─── -->
|
||||||
|
<bpmn:startEvent id="Start_VendorRequest" name="Vendor Onboarding Request Received">
|
||||||
|
<bpmn:outgoing>Flow_1</bpmn:outgoing>
|
||||||
|
<bpmn:messageEventDefinition messageRef="Msg_VendorSubmission"/>
|
||||||
|
</bpmn:startEvent>
|
||||||
|
|
||||||
|
<!-- ─── PROCUREMENT LANE ─── -->
|
||||||
|
<bpmn:userTask id="Task_ValidateSubmission" name="Validate Submission Completeness">
|
||||||
|
<bpmn:incoming>Flow_1</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_2</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:exclusiveGateway id="GW_SubmissionComplete" name="All Documents Submitted?">
|
||||||
|
<bpmn:incoming>Flow_2</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_3_Yes</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_3_No</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
|
||||||
|
<bpmn:userTask id="Task_RequestMissingDocs" name="Request Missing Documents">
|
||||||
|
<bpmn:incoming>Flow_3_No</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_RetryValidation</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_RegisterVendor" name="Register Vendor in Master Data">
|
||||||
|
<bpmn:incoming>Flow_3_Yes</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_4</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:parallelGateway id="GW_ForkCompliance" name="Start Parallel Compliance Checks">
|
||||||
|
<bpmn:incoming>Flow_4</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToSanctions</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_ToRiskScoring</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_ToLegal</bpmn:outgoing>
|
||||||
|
</bpmn:parallelGateway>
|
||||||
|
|
||||||
|
<bpmn:parallelGateway id="GW_JoinCompliance" name="All Checks Complete">
|
||||||
|
<bpmn:incoming>Flow_SanctionsOK</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_RiskComplete</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_LegalComplete</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToDecision</bpmn:outgoing>
|
||||||
|
</bpmn:parallelGateway>
|
||||||
|
|
||||||
|
<bpmn:exclusiveGateway id="GW_OverallDecision" name="Overall Approval?">
|
||||||
|
<bpmn:incoming>Flow_ToDecision</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_Approved</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_Rejected</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
|
||||||
|
<bpmn:userTask id="Task_FinalApproval" name="Final Procurement Sign-Off">
|
||||||
|
<bpmn:incoming>Flow_Approved</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToIT</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:sendTask id="Task_NotifyVendorApproved" name="Notify Vendor: Approved">
|
||||||
|
<bpmn:incoming>Flow_FromIT</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToEnd_Approved</bpmn:outgoing>
|
||||||
|
</bpmn:sendTask>
|
||||||
|
|
||||||
|
<bpmn:sendTask id="Task_NotifyVendorRejected" name="Notify Vendor: Rejected">
|
||||||
|
<bpmn:incoming>Flow_Rejected</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_AutoRejected</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToArchive</bpmn:outgoing>
|
||||||
|
</bpmn:sendTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_ArchiveRejection" name="Archive Rejection with Audit Log">
|
||||||
|
<bpmn:incoming>Flow_ToArchive</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToEnd_Rejected</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:endEvent id="End_Approved" name="Vendor Approved & Active">
|
||||||
|
<bpmn:incoming>Flow_ToEnd_Approved</bpmn:incoming>
|
||||||
|
</bpmn:endEvent>
|
||||||
|
|
||||||
|
<bpmn:endEvent id="End_Rejected" name="Vendor Rejected & Archived">
|
||||||
|
<bpmn:incoming>Flow_ToEnd_Rejected</bpmn:incoming>
|
||||||
|
</bpmn:endEvent>
|
||||||
|
|
||||||
|
<!-- ─── AI COMPLIANCE LANE ─── -->
|
||||||
|
<bpmn:serviceTask id="Task_SanctionsScreening" name="AI: Sanctions & Watchlist Screening (OFAC / EU / UN)">
|
||||||
|
<bpmn:incoming>Flow_ToSanctions</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_CheckSanctionsResult</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:boundaryEvent id="Evt_SanctionsTimeout" name="48h Timeout" attachedToRef="Task_SanctionsScreening" cancelActivity="true">
|
||||||
|
<bpmn:outgoing>Flow_SanctionsTimedOut</bpmn:outgoing>
|
||||||
|
<bpmn:timerEventDefinition>
|
||||||
|
<bpmn:timeDuration>PT48H</bpmn:timeDuration>
|
||||||
|
</bpmn:timerEventDefinition>
|
||||||
|
</bpmn:boundaryEvent>
|
||||||
|
|
||||||
|
<bpmn:exclusiveGateway id="GW_SanctionsHit" name="Sanctions Match Found?">
|
||||||
|
<bpmn:incoming>Flow_CheckSanctionsResult</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_SanctionsTimedOut</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_SanctionsHit_Yes</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_SanctionsHit_No</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_OwnershipCheck" name="AI: Beneficial Ownership & UBO Analysis">
|
||||||
|
<bpmn:incoming>Flow_SanctionsHit_No</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_SanctionsOK</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_AutoReject_Sanctions" name="AI: Auto-Flag Sanctions Match → Escalate">
|
||||||
|
<bpmn:incoming>Flow_SanctionsHit_Yes</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_ToSanctionsEscalation</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_GenerateRiskProfile" name="AI: Generate Vendor Risk Profile Report">
|
||||||
|
<bpmn:incoming>Flow_EscalationApproved</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_SanctionsOK_Escalated</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<!-- ─── LEGAL LANE ─── -->
|
||||||
|
<bpmn:userTask id="Task_LegalReview" name="Legal: Review Vendor Documents & Certificates">
|
||||||
|
<bpmn:incoming>Flow_ToLegal</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_LegalReviewDone</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:exclusiveGateway id="GW_LegalDecision" name="Legal Clearance?">
|
||||||
|
<bpmn:incoming>Flow_LegalReviewDone</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_LegalOK</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_LegalFail</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
|
||||||
|
<bpmn:userTask id="Task_ContractDrafting" name="Legal: Draft Vendor Agreement & NDA">
|
||||||
|
<bpmn:incoming>Flow_LegalOK</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_LegalComplete</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:userTask id="Task_SanctionsEscalation" name="Legal: Sanctions Escalation Review (Manual Override?)">
|
||||||
|
<bpmn:incoming>Flow_ToSanctionsEscalation</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_EscalationDecision</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:exclusiveGateway id="GW_EscalationDecision" name="Override Granted?">
|
||||||
|
<bpmn:incoming>Flow_EscalationDecision</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_EscalationApproved</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_EscalationDenied</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
|
||||||
|
<!-- ─── FINANCE LANE ─── -->
|
||||||
|
<bpmn:businessRuleTask id="Task_RiskScoring" name="DMN: Vendor Risk Tier Calculation (Country + Financial)">
|
||||||
|
<bpmn:incoming>Flow_ToRiskScoring</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_RiskTierResult</bpmn:outgoing>
|
||||||
|
</bpmn:businessRuleTask>
|
||||||
|
|
||||||
|
<bpmn:exclusiveGateway id="GW_RiskTier" name="Risk Tier?">
|
||||||
|
<bpmn:incoming>Flow_RiskTierResult</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_HighRisk</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_MediumLowRisk</bpmn:outgoing>
|
||||||
|
</bpmn:exclusiveGateway>
|
||||||
|
|
||||||
|
<bpmn:userTask id="Task_EnhancedDueDiligence" name="Finance: Enhanced Due Diligence (Tier 1 Vendors)">
|
||||||
|
<bpmn:incoming>Flow_HighRisk</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_EDD_Done</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:userTask id="Task_FinancialDueDiligence" name="Finance: Standard Financial Due Diligence">
|
||||||
|
<bpmn:incoming>Flow_MediumLowRisk</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_FDD_Done</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_TaxVerification" name="Finance: VAT & Tax ID Verification (VIES / local)">
|
||||||
|
<bpmn:incoming>Flow_EDD_Done</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_FDD_Done</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_RiskComplete</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<!-- ─── IT LANE ─── -->
|
||||||
|
<bpmn:parallelGateway id="GW_ForkIT" name="Provision in Parallel">
|
||||||
|
<bpmn:incoming>Flow_ToIT</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_IT_Profile</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_IT_Portal</bpmn:outgoing>
|
||||||
|
<bpmn:outgoing>Flow_IT_Payment</bpmn:outgoing>
|
||||||
|
</bpmn:parallelGateway>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_CreateVendorProfile" name="IT: Create Vendor Profile in ERP">
|
||||||
|
<bpmn:incoming>Flow_IT_Profile</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_IT_Profile_Done</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_ProvisionPortalAccess" name="IT: Provision Vendor Portal Access">
|
||||||
|
<bpmn:incoming>Flow_IT_Portal</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_IT_Portal_Done</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_SetupPaymentDetails" name="IT: Setup Payment Method & Banking Details">
|
||||||
|
<bpmn:incoming>Flow_IT_Payment</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_IT_Payment_Done</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<bpmn:parallelGateway id="GW_JoinIT" name="IT Setup Complete">
|
||||||
|
<bpmn:incoming>Flow_IT_Profile_Done</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_IT_Portal_Done</bpmn:incoming>
|
||||||
|
<bpmn:incoming>Flow_IT_Payment_Done</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_IT_Integrate</bpmn:outgoing>
|
||||||
|
</bpmn:parallelGateway>
|
||||||
|
|
||||||
|
<bpmn:serviceTask id="Task_IntegrateERP" name="IT: Integrate with SAP / ERP Systems & Activate Vendor">
|
||||||
|
<bpmn:incoming>Flow_IT_Integrate</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_FromIT</bpmn:outgoing>
|
||||||
|
</bpmn:serviceTask>
|
||||||
|
|
||||||
|
<!-- ─── SEQUENCE FLOWS ─── -->
|
||||||
|
<bpmn:sequenceFlow id="Flow_1" sourceRef="Start_VendorRequest" targetRef="Task_ValidateSubmission"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_2" sourceRef="Task_ValidateSubmission" targetRef="GW_SubmissionComplete"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_3_Yes" name="Yes" sourceRef="GW_SubmissionComplete" targetRef="Task_RegisterVendor"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_3_No" name="No" sourceRef="GW_SubmissionComplete" targetRef="Task_RequestMissingDocs"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_RetryValidation" sourceRef="Task_RequestMissingDocs" targetRef="Task_ValidateSubmission"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_4" sourceRef="Task_RegisterVendor" targetRef="GW_ForkCompliance"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToSanctions" sourceRef="GW_ForkCompliance" targetRef="Task_SanctionsScreening"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToRiskScoring" sourceRef="GW_ForkCompliance" targetRef="Task_RiskScoring"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToLegal" sourceRef="GW_ForkCompliance" targetRef="Task_LegalReview"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_CheckSanctionsResult" sourceRef="Task_SanctionsScreening" targetRef="GW_SanctionsHit"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_SanctionsTimedOut" name="Timeout" sourceRef="Evt_SanctionsTimeout" targetRef="GW_SanctionsHit"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_SanctionsHit_Yes" name="Match" sourceRef="GW_SanctionsHit" targetRef="Task_AutoReject_Sanctions"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_SanctionsHit_No" name="Clear" sourceRef="GW_SanctionsHit" targetRef="Task_OwnershipCheck"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_SanctionsOK" sourceRef="Task_OwnershipCheck" targetRef="GW_JoinCompliance"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToSanctionsEscalation" sourceRef="Task_AutoReject_Sanctions" targetRef="Task_SanctionsEscalation"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_EscalationDecision" sourceRef="Task_SanctionsEscalation" targetRef="GW_EscalationDecision"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_EscalationApproved" name="Override Granted" sourceRef="GW_EscalationDecision" targetRef="Task_GenerateRiskProfile"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_EscalationDenied" name="Denied" sourceRef="GW_EscalationDecision" targetRef="Task_NotifyVendorRejected"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_SanctionsOK_Escalated" sourceRef="Task_GenerateRiskProfile" targetRef="GW_JoinCompliance"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_RiskTierResult" sourceRef="Task_RiskScoring" targetRef="GW_RiskTier"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_HighRisk" name="Tier 1 High Risk" sourceRef="GW_RiskTier" targetRef="Task_EnhancedDueDiligence"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_MediumLowRisk" name="Tier 2/3" sourceRef="GW_RiskTier" targetRef="Task_FinancialDueDiligence"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_EDD_Done" sourceRef="Task_EnhancedDueDiligence" targetRef="Task_TaxVerification"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_FDD_Done" sourceRef="Task_FinancialDueDiligence" targetRef="Task_TaxVerification"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_RiskComplete" sourceRef="Task_TaxVerification" targetRef="GW_JoinCompliance"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_LegalReviewDone" sourceRef="Task_LegalReview" targetRef="GW_LegalDecision"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_LegalOK" name="Cleared" sourceRef="GW_LegalDecision" targetRef="Task_ContractDrafting"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_LegalFail" name="Issues Found" sourceRef="GW_LegalDecision" targetRef="Task_NotifyVendorRejected"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_LegalComplete" sourceRef="Task_ContractDrafting" targetRef="GW_JoinCompliance"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToDecision" sourceRef="GW_JoinCompliance" targetRef="GW_OverallDecision"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_Approved" name="All Clear" sourceRef="GW_OverallDecision" targetRef="Task_FinalApproval"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_Rejected" name="Rejected" sourceRef="GW_OverallDecision" targetRef="Task_NotifyVendorRejected"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_AutoRejected" sourceRef="Task_AutoReject_Sanctions" targetRef="Task_NotifyVendorRejected"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToIT" sourceRef="Task_FinalApproval" targetRef="GW_ForkIT"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Profile" sourceRef="GW_ForkIT" targetRef="Task_CreateVendorProfile"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Portal" sourceRef="GW_ForkIT" targetRef="Task_ProvisionPortalAccess"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Payment" sourceRef="GW_ForkIT" targetRef="Task_SetupPaymentDetails"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Profile_Done" sourceRef="Task_CreateVendorProfile" targetRef="GW_JoinIT"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Portal_Done" sourceRef="Task_ProvisionPortalAccess" targetRef="GW_JoinIT"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Payment_Done" sourceRef="Task_SetupPaymentDetails" targetRef="GW_JoinIT"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_IT_Integrate" sourceRef="GW_JoinIT" targetRef="Task_IntegrateERP"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_FromIT" sourceRef="Task_IntegrateERP" targetRef="Task_NotifyVendorApproved"/>
|
||||||
|
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToEnd_Approved" sourceRef="Task_NotifyVendorApproved" targetRef="End_Approved"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToArchive" sourceRef="Task_NotifyVendorRejected" targetRef="Task_ArchiveRejection"/>
|
||||||
|
<bpmn:sequenceFlow id="Flow_ToEnd_Rejected" sourceRef="Task_ArchiveRejection" targetRef="End_Rejected"/>
|
||||||
|
|
||||||
|
</bpmn:process>
|
||||||
|
|
||||||
|
<!-- ═══════════════════════════════════════════════════════
|
||||||
|
DIAGRAM
|
||||||
|
═══════════════════════════════════════════════════════ -->
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collab_VendorOnboarding">
|
||||||
|
|
||||||
|
<!-- VENDOR POOL -->
|
||||||
|
<bpmndi:BPMNShape id="Pool_Vendor_di" bpmnElement="Pool_Vendor" isHorizontal="true">
|
||||||
|
<dc:Bounds x="120" y="940" width="1780" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- HELIOS POOL -->
|
||||||
|
<bpmndi:BPMNShape id="Pool_Helios_di" bpmnElement="Pool_Helios" isHorizontal="true">
|
||||||
|
<dc:Bounds x="120" y="60" width="1780" height="860"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- LANES -->
|
||||||
|
<bpmndi:BPMNShape id="Lane_Procurement_di" bpmnElement="Lane_Procurement" isHorizontal="true">
|
||||||
|
<dc:Bounds x="150" y="60" width="1750" height="170"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Lane_AI_di" bpmnElement="Lane_AI" isHorizontal="true">
|
||||||
|
<dc:Bounds x="150" y="230" width="1750" height="160"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Lane_Legal_di" bpmnElement="Lane_Legal" isHorizontal="true">
|
||||||
|
<dc:Bounds x="150" y="390" width="1750" height="160"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Lane_Finance_di" bpmnElement="Lane_Finance" isHorizontal="true">
|
||||||
|
<dc:Bounds x="150" y="550" width="1750" height="160"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Lane_IT_di" bpmnElement="Lane_IT" isHorizontal="true">
|
||||||
|
<dc:Bounds x="150" y="710" width="1750" height="210"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- START EVENT -->
|
||||||
|
<bpmndi:BPMNShape id="Start_VendorRequest_di" bpmnElement="Start_VendorRequest">
|
||||||
|
<dc:Bounds x="212" y="127" width="36" height="36"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="192" y="170" width="77" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- PROCUREMENT LANE SHAPES -->
|
||||||
|
<bpmndi:BPMNShape id="Task_ValidateSubmission_di" bpmnElement="Task_ValidateSubmission">
|
||||||
|
<dc:Bounds x="300" y="105" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_SubmissionComplete_di" bpmnElement="GW_SubmissionComplete" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="475" y="120" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="460" y="96" width="80" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_RequestMissingDocs_di" bpmnElement="Task_RequestMissingDocs">
|
||||||
|
<dc:Bounds x="455" y="60" width="120" height="60"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_RegisterVendor_di" bpmnElement="Task_RegisterVendor">
|
||||||
|
<dc:Bounds x="580" y="105" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_ForkCompliance_di" bpmnElement="GW_ForkCompliance">
|
||||||
|
<dc:Bounds x="755" y="120" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="740" y="96" width="80" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_JoinCompliance_di" bpmnElement="GW_JoinCompliance">
|
||||||
|
<dc:Bounds x="1155" y="120" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1140" y="96" width="80" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_OverallDecision_di" bpmnElement="GW_OverallDecision" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="1265" y="120" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1253" y="96" width="74" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_FinalApproval_di" bpmnElement="Task_FinalApproval">
|
||||||
|
<dc:Bounds x="1370" y="105" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_NotifyVendorApproved_di" bpmnElement="Task_NotifyVendorApproved">
|
||||||
|
<dc:Bounds x="1730" y="105" width="100" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_NotifyVendorRejected_di" bpmnElement="Task_NotifyVendorRejected">
|
||||||
|
<dc:Bounds x="1370" y="185" width="100" height="60"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_ArchiveRejection_di" bpmnElement="Task_ArchiveRejection">
|
||||||
|
<dc:Bounds x="1510" y="185" width="100" height="60"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="End_Approved_di" bpmnElement="End_Approved">
|
||||||
|
<dc:Bounds x="1862" y="127" width="36" height="36"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1846" y="170" width="68" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="End_Rejected_di" bpmnElement="End_Rejected">
|
||||||
|
<dc:Bounds x="1650" y="200" width="36" height="36"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1635" y="243" width="66" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- AI LANE SHAPES -->
|
||||||
|
<bpmndi:BPMNShape id="Task_SanctionsScreening_di" bpmnElement="Task_SanctionsScreening">
|
||||||
|
<dc:Bounds x="800" y="270" width="130" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Evt_SanctionsTimeout_di" bpmnElement="Evt_SanctionsTimeout">
|
||||||
|
<dc:Bounds x="847" y="332" width="36" height="36"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="840" y="375" width="50" height="14"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_SanctionsHit_di" bpmnElement="GW_SanctionsHit" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="985" y="285" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="970" y="261" width="80" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_OwnershipCheck_di" bpmnElement="Task_OwnershipCheck">
|
||||||
|
<dc:Bounds x="1085" y="270" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_AutoReject_Sanctions_di" bpmnElement="Task_AutoReject_Sanctions">
|
||||||
|
<dc:Bounds x="985" y="370" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_GenerateRiskProfile_di" bpmnElement="Task_GenerateRiskProfile">
|
||||||
|
<dc:Bounds x="1085" y="250" width="110" height="70"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- LEGAL LANE SHAPES -->
|
||||||
|
<bpmndi:BPMNShape id="Task_LegalReview_di" bpmnElement="Task_LegalReview">
|
||||||
|
<dc:Bounds x="800" y="425" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_LegalDecision_di" bpmnElement="GW_LegalDecision" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="975" y="440" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="963" y="416" width="74" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_ContractDrafting_di" bpmnElement="Task_ContractDrafting">
|
||||||
|
<dc:Bounds x="1075" y="425" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_SanctionsEscalation_di" bpmnElement="Task_SanctionsEscalation">
|
||||||
|
<dc:Bounds x="1150" y="425" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_EscalationDecision_di" bpmnElement="GW_EscalationDecision" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="1315" y="440" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1302" y="416" width="76" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- FINANCE LANE SHAPES -->
|
||||||
|
<bpmndi:BPMNShape id="Task_RiskScoring_di" bpmnElement="Task_RiskScoring">
|
||||||
|
<dc:Bounds x="800" y="590" width="130" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_RiskTier_di" bpmnElement="GW_RiskTier" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="985" y="605" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="988" y="581" width="44" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_EnhancedDueDiligence_di" bpmnElement="Task_EnhancedDueDiligence">
|
||||||
|
<dc:Bounds x="1075" y="575" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_FinancialDueDiligence_di" bpmnElement="Task_FinancialDueDiligence">
|
||||||
|
<dc:Bounds x="1075" y="660" width="120" height="60"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_TaxVerification_di" bpmnElement="Task_TaxVerification">
|
||||||
|
<dc:Bounds x="1245" y="590" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- IT LANE SHAPES -->
|
||||||
|
<bpmndi:BPMNShape id="GW_ForkIT_di" bpmnElement="GW_ForkIT">
|
||||||
|
<dc:Bounds x="1455" y="755" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1440" y="731" width="80" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_CreateVendorProfile_di" bpmnElement="Task_CreateVendorProfile">
|
||||||
|
<dc:Bounds x="1555" y="720" width="120" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_ProvisionPortalAccess_di" bpmnElement="Task_ProvisionPortalAccess">
|
||||||
|
<dc:Bounds x="1555" y="815" width="120" height="70"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_SetupPaymentDetails_di" bpmnElement="Task_SetupPaymentDetails">
|
||||||
|
<dc:Bounds x="1555" y="890" width="120" height="70"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="GW_JoinIT_di" bpmnElement="GW_JoinIT">
|
||||||
|
<dc:Bounds x="1720" y="755" width="50" height="50"/>
|
||||||
|
<bpmndi:BPMNLabel><dc:Bounds x="1705" y="731" width="80" height="27"/></bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Task_IntegrateERP_di" bpmnElement="Task_IntegrateERP">
|
||||||
|
<dc:Bounds x="1820" y="740" width="110" height="80"/>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
|
||||||
|
<!-- SEQUENCE FLOW EDGES -->
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1"><di:waypoint x="248" y="145"/><di:waypoint x="300" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2"><di:waypoint x="420" y="145"/><di:waypoint x="475" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_3_Yes_di" bpmnElement="Flow_3_Yes"><di:waypoint x="525" y="145"/><di:waypoint x="580" y="145"/><bpmndi:BPMNLabel><dc:Bounds x="543" y="127" width="18" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_3_No_di" bpmnElement="Flow_3_No"><di:waypoint x="500" y="120"/><di:waypoint x="500" y="90"/><di:waypoint x="455" y="90"/><bpmndi:BPMNLabel><dc:Bounds x="504" y="100" width="15" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_RetryValidation_di" bpmnElement="Flow_RetryValidation"><di:waypoint x="455" y="90"/><di:waypoint x="360" y="90"/><di:waypoint x="360" y="105"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4"><di:waypoint x="700" y="145"/><di:waypoint x="755" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToSanctions_di" bpmnElement="Flow_ToSanctions"><di:waypoint x="780" y="170"/><di:waypoint x="780" y="310"/><di:waypoint x="800" y="310"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToRiskScoring_di" bpmnElement="Flow_ToRiskScoring"><di:waypoint x="780" y="170"/><di:waypoint x="780" y="630"/><di:waypoint x="800" y="630"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToLegal_di" bpmnElement="Flow_ToLegal"><di:waypoint x="780" y="170"/><di:waypoint x="780" y="465"/><di:waypoint x="800" y="465"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_CheckSanctionsResult_di" bpmnElement="Flow_CheckSanctionsResult"><di:waypoint x="930" y="310"/><di:waypoint x="985" y="310"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_SanctionsTimedOut_di" bpmnElement="Flow_SanctionsTimedOut"><di:waypoint x="865" y="368"/><di:waypoint x="865" y="395"/><di:waypoint x="1010" y="395"/><di:waypoint x="1010" y="335"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_SanctionsHit_No_di" bpmnElement="Flow_SanctionsHit_No"><di:waypoint x="1035" y="310"/><di:waypoint x="1085" y="310"/><bpmndi:BPMNLabel><dc:Bounds x="1043" y="292" width="30" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_SanctionsHit_Yes_di" bpmnElement="Flow_SanctionsHit_Yes"><di:waypoint x="1010" y="335"/><di:waypoint x="1010" y="370"/><bpmndi:BPMNLabel><dc:Bounds x="1015" y="348" width="34" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_SanctionsOK_di" bpmnElement="Flow_SanctionsOK"><di:waypoint x="1205" y="310"/><di:waypoint x="1180" y="310"/><di:waypoint x="1180" y="145"/><di:waypoint x="1155" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToSanctionsEscalation_di" bpmnElement="Flow_ToSanctionsEscalation"><di:waypoint x="1045" y="410"/><di:waypoint x="1150" y="410"/><di:waypoint x="1150" y="465"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_AutoRejected_di" bpmnElement="Flow_AutoRejected"><di:waypoint x="985" y="410"/><di:waypoint x="960" y="410"/><di:waypoint x="960" y="215"/><di:waypoint x="1370" y="215"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_EscalationDecision_di" bpmnElement="Flow_EscalationDecision"><di:waypoint x="1270" y="465"/><di:waypoint x="1315" y="465"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_EscalationApproved_di" bpmnElement="Flow_EscalationApproved"><di:waypoint x="1340" y="440"/><di:waypoint x="1340" y="310"/><di:waypoint x="1195" y="310"/><bpmndi:BPMNLabel><dc:Bounds x="1248" y="372" width="84" height="27"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_EscalationDenied_di" bpmnElement="Flow_EscalationDenied"><di:waypoint x="1365" y="465"/><di:waypoint x="1420" y="465"/><di:waypoint x="1420" y="215"/><bpmndi:BPMNLabel><dc:Bounds x="1378" y="448" width="39" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_SanctionsOK_Escalated_di" bpmnElement="Flow_SanctionsOK_Escalated"><di:waypoint x="1195" y="285"/><di:waypoint x="1195" y="145"/><di:waypoint x="1155" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_LegalReviewDone_di" bpmnElement="Flow_LegalReviewDone"><di:waypoint x="920" y="465"/><di:waypoint x="975" y="465"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_LegalOK_di" bpmnElement="Flow_LegalOK"><di:waypoint x="1025" y="465"/><di:waypoint x="1075" y="465"/><bpmndi:BPMNLabel><dc:Bounds x="1033" y="447" width="40" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_LegalFail_di" bpmnElement="Flow_LegalFail"><di:waypoint x="1000" y="440"/><di:waypoint x="1000" y="215"/><di:waypoint x="1370" y="215"/><bpmndi:BPMNLabel><dc:Bounds x="1006" y="325" width="65" height="27"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_LegalComplete_di" bpmnElement="Flow_LegalComplete"><di:waypoint x="1195" y="465"/><di:waypoint x="1195" y="170"/><di:waypoint x="1155" y="170"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_RiskTierResult_di" bpmnElement="Flow_RiskTierResult"><di:waypoint x="930" y="630"/><di:waypoint x="985" y="630"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_HighRisk_di" bpmnElement="Flow_HighRisk"><di:waypoint x="1010" y="605"/><di:waypoint x="1010" y="615"/><di:waypoint x="1075" y="615"/><bpmndi:BPMNLabel><dc:Bounds x="1016" y="585" width="75" height="27"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_MediumLowRisk_di" bpmnElement="Flow_MediumLowRisk"><di:waypoint x="1010" y="655"/><di:waypoint x="1010" y="690"/><di:waypoint x="1075" y="690"/><bpmndi:BPMNLabel><dc:Bounds x="1016" y="660" width="40" height="27"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_EDD_Done_di" bpmnElement="Flow_EDD_Done"><di:waypoint x="1195" y="615"/><di:waypoint x="1245" y="630"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_FDD_Done_di" bpmnElement="Flow_FDD_Done"><di:waypoint x="1195" y="690"/><di:waypoint x="1220" y="690"/><di:waypoint x="1220" y="650"/><di:waypoint x="1245" y="650"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_RiskComplete_di" bpmnElement="Flow_RiskComplete"><di:waypoint x="1365" y="630"/><di:waypoint x="1400" y="630"/><di:waypoint x="1400" y="145"/><di:waypoint x="1205" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToDecision_di" bpmnElement="Flow_ToDecision"><di:waypoint x="1205" y="145"/><di:waypoint x="1265" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_Approved_di" bpmnElement="Flow_Approved"><di:waypoint x="1315" y="145"/><di:waypoint x="1370" y="145"/><bpmndi:BPMNLabel><dc:Bounds x="1323" y="127" width="44" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_Rejected_di" bpmnElement="Flow_Rejected"><di:waypoint x="1290" y="170"/><di:waypoint x="1290" y="215"/><di:waypoint x="1370" y="215"/><bpmndi:BPMNLabel><dc:Bounds x="1296" y="188" width="45" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToIT_di" bpmnElement="Flow_ToIT"><di:waypoint x="1430" y="145"/><di:waypoint x="1480" y="145"/><di:waypoint x="1480" y="755"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Profile_di" bpmnElement="Flow_IT_Profile"><di:waypoint x="1505" y="780"/><di:waypoint x="1555" y="760"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Portal_di" bpmnElement="Flow_IT_Portal"><di:waypoint x="1505" y="780"/><di:waypoint x="1555" y="850"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Payment_di" bpmnElement="Flow_IT_Payment"><di:waypoint x="1480" y="805"/><di:waypoint x="1480" y="925"/><di:waypoint x="1555" y="925"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Profile_Done_di" bpmnElement="Flow_IT_Profile_Done"><di:waypoint x="1675" y="760"/><di:waypoint x="1720" y="780"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Portal_Done_di" bpmnElement="Flow_IT_Portal_Done"><di:waypoint x="1675" y="850"/><di:waypoint x="1745" y="850"/><di:waypoint x="1745" y="805"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Payment_Done_di" bpmnElement="Flow_IT_Payment_Done"><di:waypoint x="1675" y="925"/><di:waypoint x="1745" y="925"/><di:waypoint x="1745" y="805"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_IT_Integrate_di" bpmnElement="Flow_IT_Integrate"><di:waypoint x="1770" y="780"/><di:waypoint x="1820" y="780"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_FromIT_di" bpmnElement="Flow_FromIT"><di:waypoint x="1875" y="740"/><di:waypoint x="1875" y="145"/><di:waypoint x="1830" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToEnd_Approved_di" bpmnElement="Flow_ToEnd_Approved"><di:waypoint x="1830" y="145"/><di:waypoint x="1862" y="145"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToArchive_di" bpmnElement="Flow_ToArchive"><di:waypoint x="1470" y="215"/><di:waypoint x="1510" y="215"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_ToEnd_Rejected_di" bpmnElement="Flow_ToEnd_Rejected"><di:waypoint x="1610" y="215"/><di:waypoint x="1650" y="215"/></bpmndi:BPMNEdge>
|
||||||
|
|
||||||
|
<!-- MESSAGE FLOWS -->
|
||||||
|
<bpmndi:BPMNEdge id="MF_1_di" bpmnElement="MF_1"><di:waypoint x="230" y="940"/><di:waypoint x="230" y="163"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="MF_2_di" bpmnElement="MF_2"><di:waypoint x="1780" y="185"/><di:waypoint x="1780" y="940"/></bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="MF_3_di" bpmnElement="MF_3"><di:waypoint x="1420" y="245"/><di:waypoint x="1420" y="940"/></bpmndi:BPMNEdge>
|
||||||
|
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn:definitions>
|
||||||
226
vendor-risk-scoring.dmn.xml
Normal file
226
vendor-risk-scoring.dmn.xml
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/"
|
||||||
|
xmlns:dmndi="https://www.omg.org/spec/DMN/20191111/DMNDI/"
|
||||||
|
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
|
||||||
|
id="VendorRiskScoring"
|
||||||
|
name="Vendor Risk Scoring"
|
||||||
|
namespace="https://processgit.org/heliosgroup/vendor-risk-scoring">
|
||||||
|
|
||||||
|
<!-- ── VENDOR RISK TIER (composite decision) ── -->
|
||||||
|
<decision id="Decision_VendorRiskTier" name="Vendor Risk Tier">
|
||||||
|
<informationRequirement id="IR_Country"><requiredDecision href="#Decision_CountryRisk"/></informationRequirement>
|
||||||
|
<informationRequirement id="IR_Financial"><requiredDecision href="#Decision_FinancialRisk"/></informationRequirement>
|
||||||
|
<informationRequirement id="IR_Ownership"><requiredInput href="#Input_OwnershipStructure"/></informationRequirement>
|
||||||
|
<decisionTable id="DT_VendorRiskTier" hitPolicy="FIRST">
|
||||||
|
<input id="In_CountryRisk" label="Country Risk Score">
|
||||||
|
<inputExpression typeRef="string"><text>countryRiskLevel</text></inputExpression>
|
||||||
|
<inputValues><text>"HIGH","MEDIUM","LOW"</text></inputValues>
|
||||||
|
</input>
|
||||||
|
<input id="In_FinancialRisk" label="Financial Risk Score">
|
||||||
|
<inputExpression typeRef="string"><text>financialRiskLevel</text></inputExpression>
|
||||||
|
<inputValues><text>"HIGH","MEDIUM","LOW"</text></inputValues>
|
||||||
|
</input>
|
||||||
|
<input id="In_Ownership" label="Ownership Structure">
|
||||||
|
<inputExpression typeRef="string"><text>ownershipStructure</text></inputExpression>
|
||||||
|
<inputValues><text>"COMPLEX","SIMPLE","PUBLIC"</text></inputValues>
|
||||||
|
</input>
|
||||||
|
<output id="Out_Tier" name="riskTier" typeRef="string" label="Risk Tier"/>
|
||||||
|
<output id="Out_DDLevel" name="dueDiligenceLevel" typeRef="string" label="Due Diligence Level"/>
|
||||||
|
<output id="Out_ApprovalAuthority" name="approvalAuthority" typeRef="string" label="Approval Authority"/>
|
||||||
|
<output id="Out_ReviewDays" name="reviewDays" typeRef="number" label="Max Review Days"/>
|
||||||
|
<!-- Tier 1: Any HIGH + Complex -->
|
||||||
|
<rule id="R1">
|
||||||
|
<inputEntry><text>"HIGH"</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_1_HIGH_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"ENHANCED"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Chief Procurement Officer + Legal Counsel"</text></outputEntry>
|
||||||
|
<outputEntry><text>30</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Tier 1: Complex ownership + Medium financial -->
|
||||||
|
<rule id="R2">
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>"HIGH"</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_1_HIGH_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"ENHANCED"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Chief Procurement Officer + CFO"</text></outputEntry>
|
||||||
|
<outputEntry><text>30</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Tier 1: Complex ownership regardless -->
|
||||||
|
<rule id="R3">
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>"COMPLEX"</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_1_HIGH_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"ENHANCED"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Chief Procurement Officer + Legal Counsel"</text></outputEntry>
|
||||||
|
<outputEntry><text>30</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Tier 2: Medium country + Medium financial -->
|
||||||
|
<rule id="R4">
|
||||||
|
<inputEntry><text>"MEDIUM"</text></inputEntry>
|
||||||
|
<inputEntry><text>"MEDIUM"</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_2_MEDIUM_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"STANDARD"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Procurement Director"</text></outputEntry>
|
||||||
|
<outputEntry><text>14</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Tier 2: Medium country + Low financial -->
|
||||||
|
<rule id="R5">
|
||||||
|
<inputEntry><text>"MEDIUM"</text></inputEntry>
|
||||||
|
<inputEntry><text>"LOW"</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_2_MEDIUM_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"STANDARD"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Procurement Manager"</text></outputEntry>
|
||||||
|
<outputEntry><text>10</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Tier 3: All LOW, Public company -->
|
||||||
|
<rule id="R6">
|
||||||
|
<inputEntry><text>"LOW"</text></inputEntry>
|
||||||
|
<inputEntry><text>"LOW"</text></inputEntry>
|
||||||
|
<inputEntry><text>"PUBLIC"</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_3_LOW_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"SIMPLIFIED"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Procurement Officer"</text></outputEntry>
|
||||||
|
<outputEntry><text>5</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Tier 3: Default LOW -->
|
||||||
|
<rule id="R7">
|
||||||
|
<inputEntry><text>"LOW"</text></inputEntry>
|
||||||
|
<inputEntry><text>"LOW"</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"TIER_3_LOW_RISK"</text></outputEntry>
|
||||||
|
<outputEntry><text>"SIMPLIFIED"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Procurement Officer"</text></outputEntry>
|
||||||
|
<outputEntry><text>7</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
</decisionTable>
|
||||||
|
</decision>
|
||||||
|
|
||||||
|
<!-- ── COUNTRY RISK CLASSIFICATION ── -->
|
||||||
|
<decision id="Decision_CountryRisk" name="Country Risk Level">
|
||||||
|
<informationRequirement id="IR_Country2"><requiredInput href="#Input_CountryCode"/></informationRequirement>
|
||||||
|
<decisionTable id="DT_CountryRisk" hitPolicy="FIRST">
|
||||||
|
<input id="In_CountryCode" label="Country Code (ISO 3166)">
|
||||||
|
<inputExpression typeRef="string"><text>countryCode</text></inputExpression>
|
||||||
|
</input>
|
||||||
|
<input id="In_FATFList" label="FATF Grey/Black List">
|
||||||
|
<inputExpression typeRef="boolean"><text>onFATFList</text></inputExpression>
|
||||||
|
</input>
|
||||||
|
<output id="Out_CountryRisk" name="countryRiskLevel" typeRef="string" label="Country Risk Level"/>
|
||||||
|
<output id="Out_CountryReason" name="countryRiskReason" typeRef="string" label="Reason"/>
|
||||||
|
<!-- FATF blacklist -->
|
||||||
|
<rule id="CR1">
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>true</text></inputEntry>
|
||||||
|
<outputEntry><text>"HIGH"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Country on FATF grey or black list"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Sanctioned jurisdictions -->
|
||||||
|
<rule id="CR2">
|
||||||
|
<inputEntry><text>"RU","BY","IR","KP","CU","SY","VE"</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"HIGH"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Sanctioned jurisdiction — EU/OFAC restrictions apply"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Medium risk — emerging markets with AML concerns -->
|
||||||
|
<rule id="CR3">
|
||||||
|
<inputEntry><text>"CN","AE","TR","PK","NG","KZ"</text></inputEntry>
|
||||||
|
<inputEntry><text>false</text></inputEntry>
|
||||||
|
<outputEntry><text>"MEDIUM"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Elevated AML/corruption risk jurisdiction"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- EU + trusted jurisdictions -->
|
||||||
|
<rule id="CR4">
|
||||||
|
<inputEntry><text>"DE","FR","US","GB","JP","AU","CA","NL","SE","DK","NO","FI","CH"</text></inputEntry>
|
||||||
|
<inputEntry><text>false</text></inputEntry>
|
||||||
|
<outputEntry><text>"LOW"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Low-risk jurisdiction with strong AML framework"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Default -->
|
||||||
|
<rule id="CR5">
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>false</text></inputEntry>
|
||||||
|
<outputEntry><text>"MEDIUM"</text></outputEntry>
|
||||||
|
<outputEntry><text>"Standard risk — insufficient data for low classification"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
</decisionTable>
|
||||||
|
</decision>
|
||||||
|
|
||||||
|
<!-- ── FINANCIAL RISK CLASSIFICATION ── -->
|
||||||
|
<decision id="Decision_FinancialRisk" name="Financial Risk Level">
|
||||||
|
<informationRequirement id="IR_Financial2"><requiredInput href="#Input_CreditScore"/></informationRequirement>
|
||||||
|
<decisionTable id="DT_FinancialRisk" hitPolicy="FIRST">
|
||||||
|
<input id="In_CreditScore" label="Credit Score (0–100)">
|
||||||
|
<inputExpression typeRef="number"><text>creditScore</text></inputExpression>
|
||||||
|
</input>
|
||||||
|
<input id="In_YearsTrading" label="Years in Business">
|
||||||
|
<inputExpression typeRef="number"><text>yearsTrading</text></inputExpression>
|
||||||
|
</input>
|
||||||
|
<input id="In_ContractValue" label="Annual Contract Value (EUR)">
|
||||||
|
<inputExpression typeRef="number"><text>annualContractValue</text></inputExpression>
|
||||||
|
</input>
|
||||||
|
<output id="Out_FinancialRisk" name="financialRiskLevel" typeRef="string" label="Financial Risk Level"/>
|
||||||
|
<!-- High: Low credit + Large contract -->
|
||||||
|
<rule id="FR1">
|
||||||
|
<inputEntry><text>< 40</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"HIGH"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- High: New company + Large contract -->
|
||||||
|
<rule id="FR2">
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>< 2</text></inputEntry>
|
||||||
|
<inputEntry><text>>= 500000</text></inputEntry>
|
||||||
|
<outputEntry><text>"HIGH"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Medium: Moderate credit -->
|
||||||
|
<rule id="FR3">
|
||||||
|
<inputEntry><text>[40..70)</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<outputEntry><text>"MEDIUM"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Medium: Large contract regardless of credit -->
|
||||||
|
<rule id="FR4">
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>-</text></inputEntry>
|
||||||
|
<inputEntry><text>>= 1000000</text></inputEntry>
|
||||||
|
<outputEntry><text>"MEDIUM"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
<!-- Low: Strong credit, established company -->
|
||||||
|
<rule id="FR5">
|
||||||
|
<inputEntry><text>>= 70</text></inputEntry>
|
||||||
|
<inputEntry><text>>= 3</text></inputEntry>
|
||||||
|
<inputEntry><text>< 1000000</text></inputEntry>
|
||||||
|
<outputEntry><text>"LOW"</text></outputEntry>
|
||||||
|
</rule>
|
||||||
|
</decisionTable>
|
||||||
|
</decision>
|
||||||
|
|
||||||
|
<!-- INPUT DATA DEFINITIONS -->
|
||||||
|
<inputData id="Input_CountryCode" name="Country Code"/>
|
||||||
|
<inputData id="Input_OwnershipStructure" name="Ownership Structure"/>
|
||||||
|
<inputData id="Input_CreditScore" name="Credit Score"/>
|
||||||
|
|
||||||
|
<dmndi:DMNDI>
|
||||||
|
<dmndi:DMNDiagram id="DMNDiagram_1">
|
||||||
|
<dmndi:DMNShape id="S_VendorRiskTier" dmnElementRef="Decision_VendorRiskTier"><dc:Bounds x="350" y="80" width="200" height="80"/></dmndi:DMNShape>
|
||||||
|
<dmndi:DMNShape id="S_CountryRisk" dmnElementRef="Decision_CountryRisk"><dc:Bounds x="150" y="240" width="180" height="80"/></dmndi:DMNShape>
|
||||||
|
<dmndi:DMNShape id="S_FinancialRisk" dmnElementRef="Decision_FinancialRisk"><dc:Bounds x="380" y="240" width="180" height="80"/></dmndi:DMNShape>
|
||||||
|
<dmndi:DMNShape id="S_CountryCode" dmnElementRef="Input_CountryCode"><dc:Bounds x="150" y="390" width="125" height="45"/></dmndi:DMNShape>
|
||||||
|
<dmndi:DMNShape id="S_Ownership" dmnElementRef="Input_OwnershipStructure"><dc:Bounds x="610" y="150" width="125" height="45"/></dmndi:DMNShape>
|
||||||
|
<dmndi:DMNShape id="S_CreditScore" dmnElementRef="Input_CreditScore"><dc:Bounds x="380" y="390" width="125" height="45"/></dmndi:DMNShape>
|
||||||
|
<dmndi:DMNEdge id="E_CR" dmnElementRef="IR_Country"><di:waypoint x="240" y="240"/><di:waypoint x="400" y="160"/></dmndi:DMNEdge>
|
||||||
|
<dmndi:DMNEdge id="E_FR" dmnElementRef="IR_Financial"><di:waypoint x="470" y="240"/><di:waypoint x="450" y="160"/></dmndi:DMNEdge>
|
||||||
|
<dmndi:DMNEdge id="E_OW" dmnElementRef="IR_Ownership"><di:waypoint x="610" y="172"/><di:waypoint x="550" y="120"/></dmndi:DMNEdge>
|
||||||
|
<dmndi:DMNEdge id="E_CC" dmnElementRef="IR_Country2"><di:waypoint x="212" y="390"/><di:waypoint x="240" y="320"/></dmndi:DMNEdge>
|
||||||
|
<dmndi:DMNEdge id="E_CS" dmnElementRef="IR_Financial2"><di:waypoint x="442" y="390"/><di:waypoint x="470" y="320"/></dmndi:DMNEdge>
|
||||||
|
</dmndi:DMNDiagram>
|
||||||
|
</dmndi:DMNDI>
|
||||||
|
</definitions>
|
||||||
Reference in New Issue
Block a user