ferrero-opentext/Python-Version/config/field_mappings.yaml
DJP cdb839e3a8 Add --dryrun mode to A2→A3 and fix Agency name to Oliver
Adds debugging mode to A2→A3 workflow that builds full asset metadata
but doesn't upload to DAM, displaying complete JSON for field validation.

Changes to A2→A3 Script (a2_to_a3_upload_polling.py):

--dryrun Flag:
- New argument: --dryrun (build metadata but don't upload)
- Displays full asset representation as formatted JSON
- Shows field count
- Shows CreativeX lookup status
- Keeps file in Box (no deletion)
- Logs "DRYRUN MODE" clearly
- Returns success with 'DRYRUN_NO_UPLOAD' as asset_id

Dryrun Output Includes:
- Complete asset_representation JSON (all MVP fields)
- Field count (should be 27 fields)
- CreativeX status (found/missing)
- CreativeX score and URL values
- Clean separation with === lines

Usage:
python scripts/a2_to_a3_upload_polling.py --dryrun

Benefits:
- Debug metadata issues without DAM uploads
- Verify all fields present before going live
- Check CreativeX integration working
- Validate field values and formatting
- Safe testing with production data

Changes to Field Mappings (config/field_mappings.yaml):

Agency Name Fixed:
- Changed: FERRERO.MARKETING.FIELD.AGENCY NAME: "-"
- To: FERRERO.MARKETING.FIELD.AGENCY NAME: "Oliver"
- Exact case as required by DAM
- Comment updated to reflect this is final value

Impact:
- All A2→A3 uploads now have Agency Name = "Oliver"
- Not "Oliver Agency" (wrong)
- Not "-" placeholder (old)
- Exact case: "Oliver" (capital O, lowercase liver)

Use Case:
Run with --dryrun to see full JSON metadata, verify Agency name is
"Oliver", check all 27 MVP fields are present, then remove --dryrun
flag to perform actual uploads.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 11:59:55 -05:00

66 lines
1.9 KiB
YAML

# MVP Field IDs - Add or remove fields here (no code changes needed!)
mvp_fields:
# Asset Info Category
- FERRERO.FIELD.MKTG.ASSET TYPE
- FERRERO.FIELD.FISCAL YEAR
- MAIN_LANGUAGES
- FERRERO.FIELD.ASSETCOMPLIANCE
- ARTESIA.FIELD.ASSET DESCRIPTION
- FERRERO.FIELD.MARKETING.FLAVOUR
- FERRERO.FIELD.MARKETING.SIZE
- FERRERO.FIELD.STATE
- ARTESIA.FIELD.ASSET NAME
- FERRERO.FIELD.SUB BRAND
- FERRERO.FIELD.ASSET VALIDITY START PERIOD
- FERRERO.FIELD.ASSET VALIDITY END PERIOD
# Marketing Category
- MARKETING_TAG
- FERRERO.MARKETING.FIELD.AGENCY NAME
- FERRERO.MARKETING.FIELD.SPOT_VERSION
- FERRERO.MARKETING.FIELD.DIRECTOR_NAME
- FERRERO.MARKETING.FIELD.VIDEO_POST_PROD_COMPANY
- FERRERO.MARKETING.FIELD.VID_POST_PROD_CONTACT
- FERRERO.MARKETING.FIELD.AUDIO_POST_PROD_COMPANY
- FERRERO.MARKETING.FIELD.AUDIO_POST_PROD_CONTACT
# Market Category
- FERRERO.MARKET.FIELD.TYPE_VID
- FERRERO.MARKET.FIELD.IPRIGHT
- FERRERO.MARKET.PROD_COMPANY
- FERRERO.MARKET.FIELD.LICENSIN
- FERRERO.MARKET.FIELD.BUYOUT
- FERRERO.MARKET.FIELD.FERRERO PROPERTY
- FERRERO.MARKET.VID_N_STAT
- FERRERO.MARKET.FIELD.LICENSE
# CreativeX Category (from Box metadata template)
- FERRERO.TAB.FIELD.CREATIVEX # CreativeX Score (Platform > Rating %)
- FERRERO.FIELD.CREATIVEX LINK # CreativeX URL
# Fields to update from V2 filename
filename_updates:
ARTESIA.FIELD.ASSET NAME:
source: clean_filename
required: true
ARTESIA.FIELD.ASSET DESCRIPTION:
source: subject_title
required: false
MAIN_LANGUAGES:
source: language_code
transform: uppercase
required: true
# Fields to force to specific values
forced_values:
FERRERO.FIELD.STATE: Local
# Default values for missing fields
defaults:
FERRERO.FIELD.ASSETCOMPLIANCE: "-"
MARKETING_TAG: "Tag"
FERRERO.FIELD.FISCAL YEAR: "2025/2026"
FERRERO.MARKETING.FIELD.AGENCY NAME: "Oliver" # Agency name (exact case required)