P6 and Microsoft Project
P6 UDF ≠ MSP Custom Field Slot
UDFTYPE/UDFVALUE ≠ MSP slot; formula is P6 web only

What each actually is
P6: a dictionary (UDFTYPE) plus values (UDFVALUE) on Projects, WBS, Activities, Steps, Expenses, Issues, Resources, Assignments, Risks, Documents. Types: Text, Start/Finish Date, Cost, Indicator, Number, Integer (API also Code, issues only). Formula UDFs are P6 web only on EPPM; not visible in Professional. No formula on Indicator. UDFVALUE.fk_id is the object the field sits on (Oracle label says “Activity Step Item” — do not read that as always a step). See UDFs Are Typed Extra Fields, Not Activity Codes.
MSP: fixed numbered slots on Task / Resource / Assignment (Text1–30, Number, Date, Cost, Flag, Outline Code). Optional value list, formula (then read-only), graphical indicators. Enterprise slots are a separate set.
Same idea (extra typed column). Not the same object. Types and tables do not line up 1:1.
What Do not treat as the same
- Do not map one P6 UDF type onto Text1 and call them the same field. Slots run out; P6 types do not.
- Do not treat a UDF as an activity code or map it to Outline Code. Outline Code is the closer analogue of ACTVTYPE, not of UDFTYPE.
- Do not treat
fk_idas always a step. - Do not invent
logical_data_type/table_nametokens or assume a formula UDF has a Professional-visible value in XER. - Do not put a formula on an Indicator type when writing toward P6.
- Do not collapse many UDFVALUE rows into one MSP Notes field without saying values were lost.