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 RequestExtensionStatus and MaximumExtension.
  • 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_id not 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().

← Deep dives index