jsforce
Version:
Salesforce API Library for JavaScript
510 lines (509 loc) • 13.8 kB
TypeScript
export type ReportDescribeResult = {
attributes: ReportAttributes;
reportTypeMetadata: ReportTypeMetadata;
reportExtendedMetadata: ReportExtendedMetadata;
reportMetadata: ReportMetadata;
};
export type ReportTypeMetadata = {
categories: ReportTypeCategory[];
dataTypeFilterOperatorMap: {
[name: string]: Array<{
name: string;
label: string;
}>;
};
dateGranularityInfos: Array<{
name: string;
label: string;
}>;
divisionInfo: {
defaultValue: string;
values: Array<{
label: string;
value: string;
}>;
} | null;
scopeInfo: {
defaultValue: string;
values: Array<{
allowsDivision: boolean;
label: string;
value: string;
}>;
};
standardDateFilterDurationGroups: StandardDateFilterDurationGroup[];
standardFilterInfos: string[] | null;
supportsJoinedFormat: boolean;
};
type StandardDateFilterDurationGroup = {
label: string;
standardDateFilterDurations: StandardDateFilterDuration[];
};
type StandardDateFilterDuration = {
endDate: string;
label: string;
startDate: string;
value: string;
};
type ReportTypeCategory = {
label: string;
columns: {
[name: string]: ReportTypeColumn;
};
};
type ReportTypeColumn = {
allowedInCustomDetailFormula: boolean;
bucketable: boolean;
dataType: string;
entityColumnName: string;
fieldToFieldFilterable: boolean;
filterValues: Array<{
name: string;
label: string;
}>;
filterable: boolean;
isCustom: boolean;
isLookup: boolean;
label: string;
maxLength: number | null;
uniqueCountable: boolean;
};
type ReportAttributes = {
type: 'Report';
describeUrl: string;
instancesUrl: string;
reportName: string;
reportId: string;
};
type ReportInstanceAttributes = {
type: 'ReportInstance';
completionDate: string | null;
id: string;
ownerId: string;
reportId: string;
reportName: string;
requestDate: string;
status: 'New' | 'Success' | 'Running' | 'Error';
};
type ReportResult<Attributes> = {
attributes: Attributes;
allData: boolean;
factMap: {
[key: string]: FactMap;
};
groupingsAcross: {
groupings: Grouping[];
} | null;
groupingsDown: {
groupings: Grouping[];
} | null;
hasDetailRows: boolean;
reportExtendedMetadata: ReportExtendedMetadata;
reportMetadata: ReportMetadata;
};
export type ReportExecuteResult = ReportResult<ReportAttributes>;
export type ReportRetrieveResult = ReportResult<ReportInstanceAttributes>;
type FactMap = {
aggregates: Array<{
label: string;
value: number;
}>;
rows?: Array<{
dataCells: Array<{
label: string;
value: any;
}>;
}>;
};
type Grouping = {
key: string;
label: string;
value: null | string;
groupings: Grouping[];
dategroupings?: any[];
};
export type ReportAsyncResult = {
id: string;
status: 'New' | 'Success' | 'Running' | 'Error';
url: string;
ownerId: string;
completionDate: string;
hasDetailRows: boolean;
requestDate: string;
};
export type ReportExtendedMetadata = {
aggregateColumnInfo: {
[name: string]: AggregateColumnInfo;
};
detailColumnInfo: {
[name: string]: DetailColumnInfo;
};
groupingColumnInfo: {
[name: string]: GroupingColumnInfo;
};
historicalColumnInfo?: {
[name: string]: HistoricalColumnInfo;
};
};
type AggregateColumnInfo = {
dataType: string;
label: string;
downGroupingContext?: string | null;
acrossGroupingContext?: string | null;
};
type DetailColumnInfo = {
dataType: string;
entityColumnName: string;
filterValues: Array<{
label: string;
name: string;
}>;
filterable: boolean;
isLookup: boolean;
label: string;
uniqueCountable: boolean;
};
type GroupingColumnInfo = {
dataType: string;
groupingLevel: number;
label: string;
};
type HistoricalColumnInfo = {
baseField: string;
historicalColumn: string;
historicalSnapshotDate: string;
isHistoricalChange: boolean;
};
export type ReportMetadata = {
aggregates: string[];
buckets: Bucket[];
chart: Chart[] | null;
crossFilters: CrossFilter[];
customDetailFormula: CustomDetailFormula[];
customSummaryFormula: CustomSummaryFormula[];
currency: string | null;
dashboardSetting: {
[name: string]: string;
} | null;
description: string | null;
detailColumns: string[];
developerName: string;
division: string | null;
folderId: string | null;
groupingsAcross: GroupingsAcross[];
groupingsDown: GroupingsDownElement[];
hasDetailRows: boolean;
hasRecordCount: boolean;
historicalSnapshotDates: string[];
id: string;
name: string;
presentationOptions: {
hasStackedSummaries: boolean;
historicalColumns: {
[name: string]: {
decreaseIsPositive: boolean;
showChanges: boolean;
};
};
};
reportBooleanFilter: string | null;
reportFilters: ReportFilterDetail[];
reportFormat: 'TABULAR' | 'SUMMARY' | 'MATRIX' | 'MULTI_BLOCK';
reportType: {
label: string;
type: string;
};
scope: string;
showGrandTotal: boolean;
showSubtotals: boolean;
sortBy: Array<{
sortColumn: string;
sortOrder: string;
}>;
standardDateFilter: StandardDateFilter;
standardFilters: StandardFilter[];
supportsRoleHierarchy: boolean;
topRows?: {
rowLimit: number;
direction: string;
} | null;
userOrHierarchyFilterId: string | null;
};
type Bucket = {
bucketType: string;
devloperName: string;
label: string;
nullTreatedAsZero: boolean;
otherBucketLabel: string | null;
sourceColumnName: string;
values: BucketFieldValue[];
};
type BucketFieldValue = {
label: string;
sourceDimensionValues: string[];
rangeUpperBound: number | null;
};
type CrossFilter = {
criteria: ReportFilterDetail[];
includesObject: boolean;
primaryEntityField: string;
relatedEntity: string;
relatedEntityJoinField: string;
};
type ReportFilterOperator = 'equals' | 'notEqual' | 'lessThan' | 'greaterThan' | 'lessOrEqual' | 'greaterOrEqual' | 'contains' | 'notContain' | 'startsWith' | 'includes' | 'excludes' | 'within';
type ReportFilterDetail = {
column: string;
filterType?: 'fieldToField' | 'fieldValue' | null;
isRunPageEditable?: boolean;
operator: ReportFilterOperator;
value: string;
};
type Chart = {
chartType: string;
groupings: string;
hasLegend: boolean;
showChartValues: boolean;
summaries: string[];
summaryAxisLocations: 'X' | 'Y';
title: string;
};
type CustomDetailFormula = {
decimalPlaces: number | null;
description: string | null;
formula: string;
formulaType: 'date' | 'datetime' | 'number' | 'text';
label: string;
};
type CustomSummaryFormula = {
label: string;
description: string | null;
formulaType: string;
decimalPlaces: number | null;
downGroup: string;
downGroupType: 'all' | 'custom' | 'grand_total';
acrossGroup: string;
acrossGroupType: 'all' | 'custom' | 'grand_total';
formula: string;
};
type GroupingsAcross = {
name: string;
sortOrder: string;
dateGranularity: string;
};
type GroupingsDownElement = {
dateGranularity: string;
name: string;
sortAggregate: string | null;
sortOrder: string;
};
type StandardDateFilter = {
column: string;
durationValue: string;
endDate: Date | null;
startDate: Date | null;
};
type StandardFilter = {
name: string;
value: string;
};
type ComponentStatus = {
dataStatus: 'NODATA' | 'DATA' | 'ERROR';
errorCode: string | null;
errorMessage: string | null;
errorSeverity: 'Error' | 'Warning' | null;
refreshDate: string | null;
refreshStatus: 'IDLE' | 'RUNNING';
};
export type ReportInfo = {
id: string;
name: string;
url: string;
describeUrl: string;
instancesUrl: string;
};
export type ReportInstanceInfo = {
id: string;
status: 'New' | 'Success' | 'Running' | 'Error';
url: string;
ownerId: string;
hasDetailRows: boolean;
completionDate: string;
requestDate: string;
};
export type DashboardMetadata = {
attributes: {
dashboardId: string;
dashboardName: string;
statusUrl: string;
type: string;
};
canChangeRunningUser?: boolean;
canUseStickyFilter?: boolean;
chartTheme?: 'light' | 'dark';
colorPalette?: string;
components: DashboardComponent[];
description: string | null;
developerName: string;
dashboardType?: 'SpecifiedUser' | 'LoggedInUser' | 'MyTeamUser';
filters: DashboardFilter[];
folderId: string;
id: string;
layout: DashboardLayout;
maxFilterOptions?: number;
name: string;
runningUser: {
displayName: string;
id: string;
};
};
type DashboardComponent = {
componentData: number;
footer: string | null;
header: string | null;
id: string;
properties: DashboardComponentProperties;
reportId: string;
title: null;
type: string;
};
type DashboardComponentProperties = ReportComponentProperties | VisualforceComponentProperties;
type ReportComponentVisualizationType = 'Bar' | 'Column' | 'Donut' | 'Funnel' | 'Gauge' | 'Line' | 'Metric' | 'Pie' | 'Scatter' | 'Table' | 'FlexTable';
type ReportComponentProperties = {
aggregates: GroupingElement[];
autoSelectColumns: boolean;
drillUrl?: string;
filterColumns: any[];
groupings: GroupingElement[] | null;
maxRows: number | null;
reportFormat?: string;
sort: SortElement | null;
useReportChart: boolean;
visualizationProperties: DashboardComponentVisualizationProperties;
visualizationType: ReportComponentVisualizationType;
};
type GroupingElement = {
inheritedReportSort?: string;
name: string;
sortAggregate?: string | null;
sortOrder?: string | null;
};
type SortElement = {
inheritedReportSort?: string;
column: string;
sortAggregate?: string | null;
sortOrder?: string | null;
};
type VisualforceComponentProperties = {
pageName: string;
height: number;
};
type DashboardComponentVisualizationProperties = ChartComponentVisualizationProperties | TableComponentVisualizationProperties | FlexTableComponentVisualizationProperties | MetricComponentVisualizationProperties | GaugeComponentVisualizationProperties;
type ChartComponentVisualizationProperties = {
axisRange: string;
decimalPrecision: number;
displayUnits: ComponentDisplayUnit | null;
drillURL: string | null;
groupByType: string;
legendPosition: 'bottom' | 'right' | 'none';
showValues: boolean;
};
type TableComponentVisualizationProperties = {
breakPoints: BreakPoint[];
displayUnits: ComponentDisplayUnit | null;
drillURL: string | null;
tableColumns: TableColumn[];
};
type FlexTableComponentVisualizationProperties = {
displayUnits: ComponentDisplayUnit | null;
drillURL: string | null;
flexTableType: 'tabular' | 'summary';
showChatterPhotos?: boolean;
tableColumns: TableColumn[];
};
type MetricComponentVisualizationProperties = {
breakPoints: BreakPoint[];
displayUnits: ComponentDisplayUnit | null;
drillURL: string | null;
metricLabel: string;
};
type GaugeComponentVisualizationProperties = {
breakPoints: BreakPoint[];
displayUnits: ComponentDisplayUnit | null;
drillURL: string | null;
showPercentages: boolean;
showTotal: boolean;
};
type ComponentDisplayUnit = 'whole' | 'auto' | 'hundreds' | 'thousands' | 'millions' | 'billions' | 'trillions';
type BreakPoint = {
aggregateName: string;
breaks: Array<{
color: string;
lowerBound: number;
upperBound: number;
}>;
};
type TableColumn = {
column: string;
isPercent: boolean;
scale: number | null;
showTotal: boolean;
type: 'detail' | 'aggregate' | 'grouping';
};
type DashboardLayout = {
gridLayout: true;
components: DashboardLayoutComponent[];
numColumns: number;
rowHeight: number;
} | {
gridLayout: false;
columns: Array<{
components: number[];
}>;
};
type DashboardLayoutComponent = {
colspan: number;
column: number;
row: number;
rowspan: number;
};
type DashboardFilter = {
errorMessage: string | null;
name: string;
options: DashboardFilterOption[];
selectedOption: null;
};
type DashboardFilterOperation = 'equals' | 'notEqual' | 'lessThan' | 'greaterThan' | 'lessOrEqual' | 'greaterOrEqual' | 'contains' | 'notContain' | 'startsWith' | 'includes' | 'excludes' | 'within' | 'between';
type DashboardFilterOption = {
alias: string | null;
id: string;
operation: DashboardFilterOperation;
value: string | null;
startValue: string | null;
endValue: string | null;
};
export type DashboardResult = {
componentData: ComponentData[];
dashboardMetadata: DashboardMetadata;
};
type ComponentData = {
componentId: string;
reportResult: ReportExecuteResult;
status: ComponentStatus;
};
export type DashboardStatusResult = {
componentStatus: Array<{
componentId: string;
refreshDate: string | null;
refreshStatus: string;
}>;
};
export type DashboardRefreshResult = {
statusUrl: string;
};
export type DashboardInfo = {
id: string;
name: string;
statusUrl: string;
url: string;
};
export {};