Request For Resources (RFR)
Business perspective: Request For Resources (RFR)
1. Business Summary
Workflow object representing a request to source resources for a job/task; orchestrates selection, candidate vetting, approvals, deliveries, extensions, reopens, and closure.
2. Business Value
Standardizes how PMs and VMs surface, fulfill, and audit resourcing needs.
3. Users / Stakeholders
PMs, VMs, AMs, opportunity owners.
4. Workflows
- RFR Created (Draft) → Validator review → Published → Selection runs (auto/cron) → Resources matched (Pending) → PM/VM approvals → Assigned + notify → Resource delivery → Closed.
- Extension via
RequestExtensionStatusandMaximumExtension. - Reopen via
RequestForResourceReopenReason. - Email-driven inline RFR via CommandController (
CreateRFR()).
5. Sub-Features
- RequestForResourcesTask (per-task breakdown).
- RequestForResourcesCandidates (candidate pool).
- RequestForResourcesResources (final assignments).
- RequestForResourceInformations (supplementary data, files).
- RequestForResourcesLogs (audit).
- Extensions, reopens.
6. Business Rules
- Validator approval gate.
- Status drives downstream actions.
- Email DSL parses commands (input not whitelisted — risk).
- VM group required for some flows (
vm_group_idnot null check in security cron).
7. Data Entities
RequestForResource, RequestForResourcesTask, RequestForResourcesCandidate, RequestForResourcesResource, RequestForResourcesLog, RequestForResourceInformation, RequestExtensionStatus, RequestForResourceReopenReason, ResourceRequestType.
8. Entry Points
resources/requestForResources,resources/requestForResourcesTasks,resources/requestForResourcesLogs,resources/requestForResourceInformations.command/mail_submit(email DSL).
9. Inputs & Outputs
- Inputs: account/job/task context, language/specs, validator decisions.
- Outputs: matched resources, logs, status changes, vendor invoices downstream.
10. Integrations
- Selection engine, Email, Vendor systems (Welocalize/Junction/Moravia), Finance (vendor invoices).
11. Calculations / Logic
- Time-share, deadline propagation, extension impact.
12. Status Lifecycle
- Draft → Published → Selected → Assigned → Delivered → Closed; can Reopen.
13. Permissions
- PM, VM, AM, validator, qualifier.
14. Reports & KPIs
- Time-to-fill, fill rate, extensions, reopen frequency.
15. Risks & Observations
- Email DSL injection risk if input not validated.
- Status transitions implicit; missing state-machine enforcement.
16. Source Code Evidence
app/Plugin/resources/Model/RequestForResource.php,RequestForResourcesTask.php,RequestForResourcesCandidate.php,RequestForResourcesResource.php,RequestForResourcesLog.php,RequestForResourceInformation.php,RequestForResourceReopenReason.php.app/Controller/CommandController.php::mail_submit().