JobCargaIndicesDiariosUF

Daily UF Index - Bloomberg to Geneva

Date27/01/2026
AuthorLeandro Crespo
Version1.0

Process Definition

It is a batch integration process that extracts financial index information from a Bloomberg CSV file stored on an SMB server, specifically filters records for the “CHUF Index” instrument (Chilean UF - Unit of Development), transforms them, and generates two output files with different formats for internal systems (UF) and Geneva, depositing them in specific folders on the same SMB server.

Scope

The process includes:

  • Reading a Bloomberg CSV file with a fixed name (dwBBG-BCentralindices.csv) from an input folder on SMB.
  • Validating the file format and structure (must contain START-OF-DATA and END-OF-DATA markers).
  • Filtering records for the “CHUF Index” instrument.
  • Data transformation: date conversion, price normalization, and mapping to output structure with fixed fields (Investment=“CLF”, Denomination=“CLP”, etc.).
  • Generation of two CSV output files with different formats (delimiters and header presence).
  • Deposit of files in configured output folders (SMB_OUT_PATH and SMB_OUT_PATH2).

Inputs

  • SMB File: dwBBG-BCentralindices.csv located in {{SMB_IN_PATH}} on server {{SMB_HOST}}.
  • Expected format: Bloomberg CSV with pipe-delimited structure (|) and START-OF-DATA / END-OF-DATA markers.
  • Target instrument: “CHUF Index” (Unit of Development).

Outputs

  • UF File: IndiceDiarioUF_<timestamp>.csv
    • Location: {{SMB_OUT_PATH}}
    • Format: CSV with header, comma delimiter (,)
    • Fields: LoaderType,LoaderAction,Investment,FechaCarga2,ListCharge,Denomination,Precio
  • Geneva File: IndiceDiarioUF_Geneva_<timestamp>.csv
    • Location: {{SMB_OUT_PATH2}}
    • Format: CSV without header, semicolon delimiter (;)
    • Fields: same structure as UF but without header line
  • Notification: Email via SMTP API with execution summary (success or error).

Process Flow in Sensedia

The flow is structured in the following stages:

  1. Trigger: Quartz Scheduler executes the process Monday through Friday at 06:50 AM.

  2. SMB Read: Connection to SMB server and file read by fixed name using pollEnrich with 15-second timeout.

  3. Validations:

    • Verification of file existence (body not null).
    • Conversion of content to UTF-8 String.
    • File signature validation (discards ZIP/XLSX with “PK” signature).
    • Bloomberg marker validation (START-OF-DATA / END-OF-DATA).
  4. Processing:

    • Extraction of lines between markers.
    • Filtering of records with “CHUF Index” instrument.
    • Date transformation (format MM/dd/yyyy → yyyy-MM-dd).
    • Price normalization (replacement of commas with periods).
    • Mapping to output structure with fixed and calculated values.
  5. Output Generation:

    • Construction of UF CSV (with header, comma delimiter).
    • Construction of Geneva CSV (without header, semicolon delimiter).
  6. SMB Write: Deposit of both files in their respective output folders.

  7. Notification: Sending email with execution result.

  8. Response: Generation of JSON with process status.

Sensedia Configuration

  • SMB Connector: Requires file server access configuration with properties:
    • SMB_HOST, SMB_USERNAME, SMB_PASSWORD, SMB_DIR_NAME
    • SMB_IN_PATH (input folder)
    • SMB_OUT_PATH (UF output folder)
    • SMB_OUT_PATH2 (Geneva output folder)
  • Notifications: NOTIFY_TO_EMAIL, PATRIA_NOTIFY_ENDPOINT
  • Input file: Fixed name dwBBG-BCentralindices.csv (hardcoded in flow).

Scheduling and Frequency

  • Active configuration: Monday through Friday at 3:50:00 AM

Notifications

  • OK: Email is sent with success summary indicating:

    • Execution ID
    • Name of processed file
    • Number of records generated
    • Names of output files
  • NOT OK: Email is sent with subject “ERROR in IndiceDiarioUF Processing” including:

    • Execution ID
    • File name
    • Captured error detail
  • Attachments: No attachments are included in notifications.

Logs and Monitoring

The following events are logged:

  • Execution start with exchangeId.
  • Attempt to read SMB file (full path and search pattern).
  • pollEnrich result (file name, body class).
  • Format validations (file signature, 120-character preview, marker presence).
  • Number of UF records generated after filtering.
  • Confirmation of write for each output file on SMB.
  • Start and content of notification payload.
  • Captured errors with full stacktrace.

Failure Behavior

The flow uses doTry-doCatch blocks at each critical stage:

  • File not found: Marks status as “ERROR”, logs detail, notifies and stops execution.
  • Empty file: Same behavior as file not found.
  • Invalid format (ZIP/XLSX or no Bloomberg markers): Marks error, notifies with specific detail and stops.
  • SMB read failure: Captures exception, logs stacktrace, notifies and stops.
  • Processing or write failure: Captures exception, marks status as “ERROR”, logs and continues to notification.

Recovery Process

  • Automatic recovery: As a daily scheduled process, the next execution will attempt to process the file again.
  • Manual recovery: If the error is due to file format or absence, you should:
    1. Verify availability and format of dwBBG-BCentralindices.csv file in SMB_IN_PATH.
    2. Validate that the file contains “CHUF Index” records.
    3. Review logs to identify the specific cause of failure.
    4. Manually execute the REST endpoint of the process if reprocessing is necessary.
  • No automatic retry: The flow does not implement retries in case of failure; each execution is independent.

Contacts

  • Technical Support: Sensedia Integrations / Middleware Team.
  • Data Provider: Bloomberg (source of input file).
  • Target Systems: Production/Business Continuity Team.

Publishing Checklist

  • Validate SMB server connectivity and access credentials from production environment.
  • Verify existence and read permissions in the {{SMB_IN_PATH}} folder.
  • Verify existence and write permissions in the {{SMB_OUT_PATH}} and {{SMB_OUT_PATH2}} folders.
  • Confirm that dwBBG-BCentralindices.csv file is deposited daily before 06:50 AM.
  • Validate input file format (must contain Bloomberg markers and CHUF Index records).
  • Configure notification environment variables (NOTIFY_TO_EMAIL, PATRIA_NOTIFY_ENDPOINT) with production values.
  • Validate that the notification endpoint is accessible and functional.
  • Adjust Cron schedule if necessary according to server timezone.
  • Perform end-to-end test in staging environment with real file.
  • Document expected format of output files for consuming teams (UF and Geneva).
  • Establish monitoring alerts for consecutive failed executions.

Diagrama detallado del flujo en Sensedia: