Path: servicenow-ai-workspace/hr-leave-sdk/src/fluent/tables.now.ts · Use referenceTable.
import {
Table,
StringColumn,
IntegerColumn,
ReferenceColumn,
DateColumn,
ChoiceColumn,
} from '@servicenow/sdk/core'
const leaveTypeChoices = {
annual: { label: 'Annual', sequence: 1 },
sick: { label: 'Sick', sequence: 2 },
unpaid: { label: 'Unpaid', sequence: 3 },
}
export const x_786686_hr_leave_employee_v2 = Table({
name: 'x_786686_hr_leave_employee_v2',
label: 'HR Employee',
schema: {
u_user: ReferenceColumn({ label: 'User', referenceTable: 'sys_user' }),
u_employee_id: StringColumn({ label: 'Employee ID', maxLength: 40 }),
u_department: StringColumn({ label: 'Department', maxLength: 100 }),
u_manager: ReferenceColumn({ label: 'Manager', referenceTable: 'sys_user' }),
u_join_date: DateColumn({ label: 'Join Date' }),
u_grade: StringColumn({ label: 'Grade', maxLength: 20 }),
},
})
export const x_786686_hr_leave_req_v2 = Table({
name: 'x_786686_hr_leave_req_v2',
label: 'Leave Request',
schema: {
u_number: StringColumn({ label: 'Number', maxLength: 40 }),
u_requested_for_user: ReferenceColumn({ label: 'Requested For', referenceTable: 'sys_user' }),
u_employee_ref: ReferenceColumn({
label: 'Employee',
referenceTable: 'x_786686_hr_leave_employee_v2',
}),
u_leave_type: ChoiceColumn({ label: 'Leave Type', choices: leaveTypeChoices }),
u_start_date: DateColumn({ label: 'Start Date' }),
u_end_date: DateColumn({ label: 'End Date' }),
u_days_count: IntegerColumn({ label: 'Days' }),
u_state: ChoiceColumn({
label: 'State',
choices: {
draft: { label: 'Draft', sequence: 1 },
submitted: { label: 'Submitted', sequence: 2 },
approved: { label: 'Approved', sequence: 3 },
rejected: { label: 'Rejected', sequence: 4 },
cancelled: { label: 'Cancelled', sequence: 5 },
},
}),
u_approver_user: ReferenceColumn({ label: 'Approver', referenceTable: 'sys_user' }),
u_reason: StringColumn({ label: 'Reason', maxLength: 1000 }),
},
})
export const x_786686_hr_leave_bal_v2 = Table({
name: 'x_786686_hr_leave_bal_v2',
label: 'Leave Balance',
schema: {
u_employee_ref: ReferenceColumn({
label: 'Employee',
referenceTable: 'x_786686_hr_leave_employee_v2',
}),
u_year: IntegerColumn({ label: 'Year' }),
u_leave_type: ChoiceColumn({ label: 'Leave Type', choices: leaveTypeChoices }),
u_entitled: IntegerColumn({ label: 'Entitled' }),
u_used: IntegerColumn({ label: 'Used' }),
u_remaining: IntegerColumn({ label: 'Remaining' }),
},
})
export const x_786686_hr_leave_audit_v2 = Table({
name: 'x_786686_hr_leave_audit_v2',
label: 'Leave Audit',
schema: {
u_leave_ref: ReferenceColumn({
label: 'Leave',
referenceTable: 'x_786686_hr_leave_req_v2',
}),
u_old_state: StringColumn({ label: 'Old State', maxLength: 40 }),
u_new_state: StringColumn({ label: 'New State', maxLength: 40 }),
u_event_type: StringColumn({ label: 'Event Type', maxLength: 60 }),
u_actor: ReferenceColumn({ label: 'Actor', referenceTable: 'sys_user' }),
},
})