Overview



CSDR Cost and Hour Report (Flex File)Version 1.0File Format SpecificationDraft – January 5, 2018 TOC \o "1-2" \h \z \u 1Overview PAGEREF _Toc501102126 \h 22Data Model PAGEREF _Toc501102127 \h 22.1Data Model Conventions PAGEREF _Toc501102128 \h 22.2Tables PAGEREF _Toc501102129 \h 42.3Primitive Data Types PAGEREF _Toc501102130 \h 162.4Enumerations PAGEREF _Toc501102131 \h 173File Format PAGEREF _Toc501102132 \h 223.1File Conventions PAGEREF _Toc501102133 \h 223.2File Contents PAGEREF _Toc501102134 \h 233.3File Type/Version PAGEREF _Toc501102135 \h 234Representation in JSON PAGEREF _Toc501102136 \h 244.1JSON Conventions PAGEREF _Toc501102137 \h 244.2JSON Schema Sample PAGEREF _Toc501102138 \h 244.3JSON Data Sample PAGEREF _Toc501102139 \h 255References PAGEREF _Toc501102140 \h 25OverviewThis document is intended as a technical reference for computer programmers implementing software to support the exchange of data composing the CSDR Cost and Hour Report (Flex File).Data ModelData in a CSDR Cost and Hour Report (Flex File) are modeled as a collection of tables related by primary and foreign key constraints.Data Model ConventionsTablesA table has a collection of fields and a collection of records. Each field has a name and a primitive data type. Each record has a collection of field values. Each field value must be consistent with the data type of the corresponding field. Records have an implicit sequence.Nullable FieldsRecords may omit values for fields that are nullable but must include values for fields that are not nullable. Unless otherwise noted, omitted field values may be interpreted as null, undefined, or “not applicable”. All of these interpretations are considered equivalent.Key ConstraintsA primary key constraint defines a collection of fields for a table such that the corresponding field values uniquely identify each record. No two records may have the same collection of corresponding field values.A foreign key constraint defines a correspondence between a field in one table and a field in another table such that the field value for each record in the former must match the field value for some record in the latter.EnumerationsEnumerations are implicit lookup tables available for use with foreign key constraints.SingletonsSingletons are tables with exactly one record.StringsStrings are sequences are of text characters defined by the Unicode standard.Strings used as ID’s are limited to a subset of Unicode consistent with the printable characters in the ASCII standard (U+0020–U+007E). The following control characters are prohibited in all string values: (U+0000–U+0008), (U+000B–U+000C), (U+000E–U+001F), (U+007F).String values must be normalized as follows: whitespace characters must be removed from the beginning and end of the string, each whitespace character must be replaced by a space character (U+0020), and each sequence of space characters must be replaced by a single space character. Whitespace normalization is not required in certain cases when string values are used for remarks or other expository parison of string values for the purpose of verifying key constraints is not case sensitive.Empty strings are interpreted as equivalent to null values. Records must include non-empty strings for fields that are not nullable.WBS Hierarchical StructureThe hierarchical structure of the WBS is determined based on the level and sequence of the elements reported. Specifically, elements must be sorted in a manner consistent with a depth-first search of the element hierarchy, such that the parent element of a given element must be the nearest preceding element with a reported level less than that of the given element. Each element that succeeds another must have a level that is no more than 1 greater than the level of the preceding element. The minimum level is 1.TablesReportConfigurationTableReportConfigurationEntityReportConfigurationFieldsNameData TypeNullableDetailedStandardCategoryBooleanNoGA_AsStandardCategoryBooleanNoFCCM_AsStandardCategoryBooleanNoForecastAtCompletion_ByNonrecurringOrRecurringBooleanNoForecastAtCompletion_ByStandardCategoryBooleanNoPrimary Key[N/A]Foreign Keys[N/A]Use ConstraintsReportConfiguration is a singleton.ReportMetadataTableReportMetadataEntityReportMetadataFieldsNameData TypeNullableSecurityClassificationStringNoProprietaryStatementStringYesProgramNameStringYesPhaseOrMilestoneIDStringIDYesPrimeMissionProductStringYesCommodityTypeStringYesReportingOrganization_OrganizationNameStringYesReportingOrganization_DivisionNameStringYesReportingOrganization_CageCodeStringYesReportingOrganization_Location_StreetTextYesReportingOrganization_Location_CityStringYesReportingOrganization_Location_StateStringYesReportingOrganization_Location_ZipCodeStringYesReportingOrganization_Location_CountryStringYesApprovedPlanNumberStringYesApprovedPlanRevisionNumberStringYesCustomerNameStringYesContractTypeIDStringIDYesContractPriceDecimalYesContractCeilingDecimalYesContractNumberStringYesPeriodOfPerformance_StartDateDateYesPeriodOfPerformance_EndDateDateYesReportCycleIDStringIDYesSubmissionEvent_NumberIntegerYesSubmissionEvent_NameStringYesSubmissionEvent_IsWildcardBooleanYesResubmissionNumberIntegerYesReportAsOfDateYesPointOfContact_NameStringYesPointOfContact_DepartmentStringYesPointOfContact_TelephoneNumberStringYesPointOfContact_EmailAddressStringYesDatePreparedDateYesReportingPeriodIDIntegerNoPrimary Key[N/A]Foreign KeysPhaseOrMilestoneID: PhaseOrMilestoneEnum(ID)ContractTypeID: ContractTypeEnum(ID)ReportCycleID: ReportCycleEnum(ID)ReportingPeriodID: ReportingPeriod(ID)Use ConstraintsReportMetadata is a singleton.OrdersOrLotsTableOrdersOrLotsEntityOrderOrLotFieldsNameData TypeNullableIDStringIDNoNameStringNoPhaseOrMilestoneIDStringIDYesCustomerNameStringYesContractTypeIDStringIDYesContractPriceDecimalYesContractCeilingDecimalYesPeriodOfPerformance_StartDateDateYesPeriodOfPerformance_EndDateDateYesAppropriationTypeIDStringIDYesPrimary KeyIDForeign KeysPhaseOrMilestoneID: PhaseOrMilestoneEnum(ID)ContractTypeID: ContractTypeEnum(ID)AppropriationTypeID: AppropriationTypeEnum(ID)Use ConstraintsCLINsTableCLINsEntityCLINFieldsNameData TypeNullableIDStringIDNoNameStringNoContractTypeIDStringIDYesPrimary KeyIDForeign KeysContractTypeID: ContractTypeEnum(ID)Use ConstraintsEndItemsTableEndItemsEntityEndItemFieldsNameData TypeNullableIDStringIDNoNameStringNoPrimary KeyIDForeign Keys[N/A]Use ConstraintsWBSTableWBSEntityWBSElementFieldsNameData TypeNullableLevelIntegerNoIDStringIDNoNameStringNoParentIDStringIDConditionalPrimary KeyIDForeign KeysParentID: WBSElement(ID)Use ConstraintsOrder of records is significant. In particular, hierarchical structure is determined based on level and sequence of records. See above. The first record must have Level equal to 1. All other records must have Level greater than 1.The first record must have a null ParentID. All other records must have a ParentID equal to the ID of the parent record determined by the hierarchical structure.AccountsTableAccountsEntityAccountFieldsNameData TypeNullableIDStringIDNoNameStringNoPrimary KeyIDForeign Keys[N/A]Use ConstraintsFunctionalCategoriesTableFunctionalCategoriesEntityFunctionalCategoryFieldsNameData TypeNullableIDStringIDNoNameStringNoPrimary KeyIDForeign Keys[N/A]Use ConstraintsFunctionalOverheadCategoriesTableFunctionalOverheadCategoriesEntityFunctionalOverheadCategoryFieldsNameData TypeNullableIDStringIDNoNameStringNoPrimary KeyIDForeign Keys[N/A]Use ConstraintsUnitsOrSublotsTableUnitsOrSublotsEntityUnitOrSublotFieldsNameData TypeNullableIDStringIDNoEndItemIDStringIDNoFirstUnitNumberIntegerNoLastUnitNumberIntegerNoOrderOrLotIDStringIDNoPrimary KeyIDForeign KeysEndItemID: EndItem(ID)OrderOrLotID: OrderOrLot(ID)Use ConstraintsCostHourDefinitionsTableCostHourDefinitionsEntityCostHourDefinitionFieldsNameData TypeNullableIDStringIDNoOrderOrLotIDStringIDConditionalOrderOrLotAllocationMethodIDStringIDConditionalCLIN_IDStringIDNoEndItemIDStringIDConditionalEndItemAllocationMethodIDStringIDConditionalWBSElementIDStringIDConditionalWBSAllocationMethodIDStringIDConditionalAccountIDStringIDNoNonrecurringOrRecurringIDStringIDNoFunctionalCategoryIDStringIDNoFunctionalOverheadCategoryIDStringIDNoStandardCategoryIDStringIDConditionalDetailedStandardCategoryIDStringIDConditionalUnitOrSublotIDStringIDConditionalUnitOrSublotAllocationMethodIDStringIDConditionalTag1StringYesTag2StringYesTag3StringYesTag4StringYesTag5StringYesTag6StringYesTag7StringYesTag8StringYesTag9StringYesTag10StringYesTag11StringYesTag12StringYesPrimary KeyIDForeign KeysOrderOrLotID: OrderOrLot(ID)OrderOrLotAllocationMethodID: OrderOrLotAllocationMethod(ID)CLIN_ID: CLIN(ID)EndItemID: EndItem(ID)EndItemAllocationMethodID: EndItemAllocationMethod(ID)WBSElementID: WBSElement(ID)WBSAllocationMethodID: WBSAllocationMethod(ID)AccountID: Account(ID)NonrecurringOrRecurringID: NonrecurringOrRecurringEnum(ID)FunctionalCategoryID: FunctionalCategory(ID) FunctionalOverheadCategoryID: FunctionalOverheadCategory(ID)StandardCategoryID: StandardCategoryEnum(ID) DetailedStandardCategoryID: DetailedStandardCategoryEnum(ID)UnitOrSublotID: UnitOrSublot(ID)UnitOrSublotAllocationMethodID: UnitOrSublotAllocationComponent(ID)Use ConstraintsUnless either UnitOrSublotID or UnitOrSublotAllocationMethodID is not null, then exactly one of either OrderOrLotID or OrderOrLotAllocationMethodID must not be null, and exactly one of either EndItemID or EndItemAllocationMethodID must not be null.If either UnitOrSublotID or UnitOrSublotAllocationMethodID is not null, then OrderOrLotID, OrderOrLotAllocationMethodID, EndItemID, and EndItemAllocationMethodID must all be null.Exactly one of either WBSElementID or WBSAllocationMethodID must not be null. If not null, WBSElementID must refer to an element with no child elements (i.e. a terminal or leaf node in the hierarchical structure).If either UnitOrSublotID or UnitOrSublotAllocationMethodID is not null, then the other must be null.Some constraints for this table depend on field values reported in ReportConfiguration:If DetailedStandardCategory has a value of true, DetailedStandardCategoryID must not be null and StandardCategoryID must be null; otherwise, StandardCategoryID must not be null and DetailedStandardCategoryID must be null.ReportingCalendarTableReportingCalendarEntityReportingPeriodFieldsNameData TypeNullableIDIntegerNoStartDateDateNoEndDateDateNoPrimary KeyIDForeign Keys[N/A]Use ConstraintsOrder of records is significant. Records must have contiguous, sequential ID values starting at 1 (i.e. 1, 2, 3, etc.). StartDate must be 1 day later than EndDate of the previous record, if any, and on or before EndDate of the current record.SummaryCostDataTableSummaryCostDataEntitySummaryCostDataRecordFieldsNameData TypeNullableOrderOrLotIDStringIDNoSubtotal_TDDecimalNoSubtotal_ACDecimalNoGA_TDDecimalNoGA_ACDecimalNoUBDecimalNoMRDecimalNoFCCM_TDDecimalNoFCCM_ACDecimalNoFee_TDDecimalNoFee_ACDecimalNoPrice_TDDecimalNoPrice_ACDecimalNoPrimary KeyOrderOrLotIDForeign KeysOrderOrLotID: OrderOrLot(ID)Use ConstraintsActualCostHourDataTableActualCostHourDataEntityActualCostHourDatumFieldsNameData TypeNullableCostHourDefinitionIDStringIDNoReportingPeriodIDIntegerNoValue_DollarsDecimalYesValue_HoursDecimalYesPrimary KeyCostHourDefinitionID, ReportingPeriodIDForeign KeysCostHourDefinitionID: CostHourDefinition(ID)ReportingPeriodID: ReportingPeriod(ID)Use ConstraintsReportingPeriodID must have a value that is less than or equal to the value of ReportingPeriodID in ReportMetadata.If omitted, Value_Dollars and Value_Hours each have a default value of zero.ForecastAtCompletionCostHourDataTableForecastAtCompletionCostHourDataEntityForecastAtCompletionCostHourDatumFieldsNameData TypeNullableOrderOrLotIDStringIDNoWBSElementIDStringIDNoNonrecurringOrRecurringIDStringIDConditionalStandardCategoryIDStringIDConditionalDetailedStandardCategoryIDStringIDConditionalValue_DollarsDecimalYesValue_HoursDecimalYesPrimary KeyOrderOrLotID, WBSElementID, NonrecurringOrRecurringID, StandardCategoryID, DetailedStandardCategoryIDForeign KeysOrderOrLotID: OrderOrLot(ID)WBSElementID: WBSElement(ID)NonrecurringOrRecurringID: NonrecurringOrRecurringEnum(ID)StandardCategoryID: StandardCategoryEnum(ID)DetailedStandardCategoryID: DetailedStandardCategoryEnum(ID)Use ConstraintsConstraints for this table depend on field values reported in ReportConfiguration:If ForecastAtCompletion_ByNonrecurringOrRecurring has a value of true, NonrecurringOrRecurringID must not be null; otherwise, NonrecurringOrRecurringID must be null.If ForecastAtCompletion_ByStandardCategory has a value of true, exactly one of either StandardCategoryID or DetailedStandardCategoryID must not be null; otherwise, both must be null. In the former case, if DetailedStandardCategory has a value of true, DetailedStandardCategoryID must not be null and StandardCategoryID must be null; otherwise, StandardCategoryID must not be null and DetailedStandardCategoryID must be null.OrderOrLotAllocationMethodsTableOrderOrLotAllocationMethodsEntityOrderOrLotAllocationMethodFieldsNameData TypeNullableIDStringIDNoAllocationMethodTypeIDStringIDNoNameStringYesPrimary KeyIDForeign KeysAllocationMethodTypeID: AllocationMethodTypeEnum(ID)Use ConstraintsEach OrderOrLotAllocationMethod must have at least one associated OrderOrLotAllocationComponent.OrderOrLotAllocationComponentsTableOrderOrLotAllocationComponentsEntityOrderOrLotAllocationComponentFieldsNameData TypeNullableOrderOrLotAllocationMethodIDStringIDNoOrderOrLotIDStringIDNoPercentValueDecimalConditionalPrimary KeyOrderOrLotAllocationMethodID, OrderOrLotIDForeign KeysOrderOrLotAllocationMethodID: OrderOrLotAllocationMethod(ID)OrderOrLotID: OrderOrLot(ID)Use ConstraintsIf the AllocationMethodTypeID of the associated OrderOrLotAllocationMethod has a value of PERCENT, then PercentValue must be non-null and greater than zero. Otherwise, PercentValue must be null.EndItemAllocationMethodsTableEndItemAllocationMethodsEntityEndItemAllocationMethodFieldsNameData TypeNullableIDStringIDNoAllocationMethodTypeIDStringIDNoNameStringYesPrimary KeyIDForeign KeysAllocationMethodTypeID: AllocationMethodTypeEnum(ID)Use ConstraintsEach EndItemAllocationMethod must have at least one associated EndItemAllocationComponent.EndItemAllocationComponentsTableEndItemAllocationComponentsEntityEndItemAllocationComponentFieldsNameData TypeNullableEndItemAllocationMethodIDStringIDNoEndItemIDStringIDNoPercentValueDecimalConditionalPrimary KeyEndItemAllocationMethodID, EndItemIDForeign KeysEndItemAllocationMethodID: EndItemAllocationMethod(ID)EndItemID: EndItem(ID)Use ConstraintsIf the AllocationMethodTypeID of the associated EndItemAllocationMethod has a value of PERCENT, then PercentValue must be non-null and greater than zero. Otherwise, PercentValue must be null.WBSAllocationMethodsTableWBSAllocationMethodsEntityWBSAllocationMethodFieldsNameData TypeNullableIDStringIDNoAllocationMethodTypeIDStringIDNoNameStringYesPrimary KeyIDForeign KeysAllocationMethodTypeID: AllocationMethodTypeEnum(ID)Use ConstraintsEach WBSAllocationMethod must have at least one associated WBSAllocationComponent.WBSAllocationComponentsTableWBSAllocationComponentsEntityWBSAllocationComponentFieldsNameData TypeNullableWBSAllocationMethodIDStringIDNoWBSElementIDStringIDNoPercentValueDecimalConditionalPrimary KeyWBSAllocationMethodID, WBSElementIDForeign KeysWBSAllocationMethodID: WBSAllocationMethod(ID)WBSElementID: WBSElement(ID)Use ConstraintsIf the AllocationMethodTypeID of the associated WBSAllocationMethod has a value of PERCENT, then PercentValue must be non-null and greater than zero. Otherwise, PercentValue must be null.WBSElementID must refer to an element with no child elements (i.e. a terminal or leaf node in the hierarchical structure).UnitOrSublotAllocationMethodsTableUnitOrSublotAllocationMethodsEntityUnitOrSublotAllocationMethodFieldsNameData TypeNullableIDStringIDNoAllocationMethodTypeIDStringIDNoNameStringYesPrimary KeyIDForeign KeysAllocationMethodTypeID: AllocationMethodTypeEnum(ID)Use ConstraintsEach UnitOrSublotAllocationMethod must have at least one associated UnitOrSublotAllocationComponent.UnitOrSublotAllocationComponentsTableUnitOrSublotAllocationComponentsEntityUnitOrSublotAllocationComponentFieldsNameData TypeNullableUnitOrSublotAllocationMethodIDStringIDNoUnitOrSublotIDStringIDNoPercentValueDecimalConditionalPrimary KeyUnitOrSublotAllocationMethodID, UnitOrSublotIDForeign KeysUnitOrSublotAllocationMethodID: UnitOrSublotAllocationMethod(ID)UnitOrSublotID: UnitOrSublot(ID)Use ConstraintsIf the AllocationMethodTypeID of the associated UnitOrSublotAllocationMethod has a value of PERCENT, then PercentValue must be non-null and greater than zero. Otherwise, PercentValue must be null.SummaryRemarksTableSummaryRemarksEntitySummaryRemarkFieldsNameData TypeNullableOrderOrLotIDStringIDNoTextTextNoPrimary KeyOrderOrLotIDForeign KeysOrderOrLotID: OrderOrLot(ID)Use ConstraintsWBSElementRemarksTableWBSElementRemarksEntityWBSElementRemarkFieldsNameData TypeNullableOrderOrLotIDStringIDNoWBSElementIDStringIDNoTextTextNoPrimary KeyOrderOrLotID, WBSElementIDForeign KeysOrderOrLotID: OrderOrLot(ID)WBSElementID: WBSElement(ID)Use ConstraintsWBSDictionaryDefinitionsTableWBSDictionaryDefinitionsEntityWBSDictionaryDefinitionFieldsNameData TypeNullableWBSElementIDStringIDNoTextTextNoPrimary KeyWBSElementIDForeign KeysWBSElementID: WBSElement(ID)Use ConstraintsCostHourTagDefinitionsTableCostHourTagDefinitionsEntityCostHourTagDefinitionFieldsNameData TypeNullableCostHourTagIDStringIDNoNameStringNoTextTextYesPrimary KeyCostHourTagIDForeign KeysCostHourTagID: CostHourTagEnum(ID)Use ConstraintsPrimitive Data TypesPrimitive Data TypesBooleanValues of two-valued logic (i.e. “true” and “false”).DateYear, month, and day, without reference to the time of day or a specific time zone.DecimalNumber that can be represented with decimal digits, with possible integral and/or fractional component.IntegerNumber that can be represented with decimal digits, with no fractional component.StringA sequence of Unicode characters, with normalized whitespace.StringIDA sequence of Unicode characters, with normalized whitespace and limited character set.TextA sequence of Unicode characters intended for remarks or other expository text.EnumerationsPhaseOrMilestoneEnumEnumerationPhaseOrMilestoneEnumValuesIDNamePRE_APre-AAABBC_LRIPC-LRIPC_FRPC-FRPO_AND_SO&SMULTIPLEMultipleUse ConstraintsContractTypeEnumEnumerationContractTypeEnumValuesIDNameCSCost SharingCPAFCost Plus Award FeeCPFFCost Plus Fixed FeeCPIFCost Plus Incentive FeeCPIF_PICost Plus Incentive Fee (with Performance Incentives)FFPFirm Fixed PriceFPIFFixed Price Incentive, Firm TargetFPISTFixed Price Incentive, Successive TargetsFPIST_PIFixed Price Incentive, Successive Targets (with Performance Incentives)FPIFT_PIFixed Price Incentive, Firm Targets (with Performance Incentives)FPAFFixed Price Award FeeFP_EPAFixed Price with Economic Price AdjustmentFP_PPRFixed Price with Prospective Price RedeterminationFCP_RPRFixed Ceiling Price with Retroactive Price RedeterminationFFP_LOETFirm Fixed Price, Level of Effort TermIDIQIndefinite Delivery Indefinite QuantityLCLetter Contract and Undefinitized Contractual Action (UCA)TMTime and MaterialsOTHEROtherMULTIPLEMultipleUse ConstraintsAppropriationTypeEnumEnumerationAppropriationTypeEnumValuesIDNameRDTERDT&EPROCUREMENTProcurementO_AND_MO&MUse ConstraintsReportCycleEnumEnumerationReportCycleEnumValuesIDNameINITIALInitialINTERIMInterimFINALFinalUse ConstraintsNonrecurringOrRecurringEnumEnumerationNonrecurringOrRecurringEnumValuesIDNameNONRECURRINGNonrecurringRECURRINGRecurringUse ConstraintsStandardCategoryEnumEnumerationStandardCategoryEnumValuesIDNameDIRECT_ENGINEERING_LABORDirect Engineering LaborENGINEERING_LABOR_OVERHEADEngineering Labor OverheadDIRECT_MANUFACTURING_TOUCH_LABORDirect Manufacturing Touch LaborDIRECT_MANUFACTURING_OTHER_LABORDirect Manufacturing Other LaborMANUFACTURING_OPERATIONS_LABOR_OVERHEADManufacturing Operations Labor OverheadDIRECT_MAINTENANCE_TOUCH_LABORDirect Maintenance Touch LaborDIRECT_MAINTENANCE_OTHER_LABORDirect Maintenance Other LaborMAINTENANCE_OPERATIONS_LABOR_OVERHEADMaintenance Operations Labor OverheadOTHER_DIRECT_COSTSOther Direct CostsOTHER_OVERHEADOther OverheadDIRECT_MATERIALSDirect MaterialsMATERIAL_OVERHEADMaterial OverheadGENERAL_AND_ADMINISTRATIVEGeneral & AdministrativeFACILITIES_CAPITAL_COST_OF_MONEYFacilities Capital Cost of MoneyUse ConstraintsDetailedStandardCategoryEnumEnumerationDetailedStandardCategoryEnumValuesIDNameDIRECT_ENGINEERING_LABORDirect Engineering LaborENGINEERING_LABOR_OVERHEADEngineering Labor OverheadDIRECT_MANUFACTURING_TOUCH_LABORDirect Manufacturing Touch LaborDIRECT_MANUFACTURING_SUPPORT_LABORDirect Manufacturing Support LaborDIRECT_MANUFACTURING_TOOLING_LABORDirect Manufacturing Tooling LaborDIRECT_MANUFACTURING_OTHER_LABORDirect Manufacturing Other LaborMANUFACTURING_OPERATIONS_LABOR_OVERHEADManufacturing Operations Labor OverheadDIRECT_MAINTENANCE_TOUCH_LABORDirect Maintenance Touch LaborDIRECT_MAINTENANCE_SUPPORT_LABORDirect Maintenance Support LaborDIRECT_MAINTENANCE_OTHER_LABORDirect Maintenance Other LaborMAINTENANCE_OPERATIONS_LABOR_OVERHEADMaintenance Operations Labor OverheadDIRECT_PROGRAM_MANAGEMENT_LABORDirect Program Management LaborDIRECT_OTHER_LABORDirect Other LaborDIRECT_SERVICESDirect ServicesOTHER_DIRECT_NON_LABOROther Direct Non-LaborOTHER_OVERHEADOther OverheadDIRECT_REPORTING_SUBCONTRACTORDirect-Reporting SubcontractorINTERCOMPANY_WORK_ORDERSIntercompany Work OrdersPURCHASED_PARTSPurchased PartsPURCHASED_EQUIPMENTPurchased EquipmentRAW_MATERIALSRaw MaterialsDIRECT_TOOLING_AND_EQUIPMENTDirect Tooling and EquipmentOTHER_MATERIALOther MaterialMATERIAL_OVERHEADMaterial OverheadGENERAL_AND_ADMINISTRATIVEGeneral & AdministrativeFACILITIES_CAPITAL_COST_OF_MONEYFacilities Capital Cost of MoneyUse ConstraintsAllocationMethodTypeEnumEnumerationAllocationMethodTypeEnumValuesIDNamePERCENTPercentPRORATEProrateUse ConstraintsCostHourTagEnumEnumerationCostHourTagEnumValuesIDNameTAG1Tag 1TAG2Tag 2TAG3Tag 3TAG4Tag 4TAG5Tag 5TAG6Tag 6TAG7Tag 7TAG8Tag 8TAG9Tag 9TAG10Tag 10TAG11Tag 11TAG12Tag 12Use ConstraintsFile FormatThe file format for a CSDR Cost and Hour Report (Flex File) is a ZIP file containing multiple text file entries. One text file entry conveys type and version information. All other text file entries convey data represented in JSON. Each JSON file entry corresponds to a single data table.File ConventionsText file entries must be encoded in UTF-8. Compressed file entries must be compressed using the DEFLATE compression method. File entries must not be encrypted. The file entry for a table may be omitted if the table has no records. The file entry for a singleton may be omitted if all its fields are null. The file entry for type/version information must always be included.File ContentsZIP File EntriesNameTableFileType.txt[N/A]ReportConfiguration.jsonReportConfigurationReportMetadata.jsonReportMetadataOrdersOrLots.jsonOrdersOrLotsCLINs.jsonCLINsEndItems.jsonEndItemsWBS.jsonWBSAccounts.jsonAccountsFunctionalCategories.jsonFunctionalCategoriesFunctionalOverheadCategories.jsonFunctionalOverheadCategoriesUnitsOrSublots.jsonUnitsOrSublotsCostHourDefinitions.jsonCostHourDefinitionsReportingCalendar.jsonReportingCalendarSummaryCostData.jsonSummaryCostDataActualCostHourData.jsonActualCostHourDataForecastAtCompletionCostHourData.jsonForecastAtCompletionCostHourDataOrderOrLotAllocationMethods.jsonOrderOrLotAllocationMethodsOrderOrLotAllocationComponents.jsonOrderOrLotAllocationComponentsEndItemAllocationMethods.jsonEndItemAllocationMethodsEndItemAllocationComponents.jsonEndItemAllocationComponentsWBSAllocationMethods.jsonWBSAllocationMethodsWBSAllocationComponents.jsonWBSAllocationComponentsUnitOrSublotAllocationMethods.jsonUnitOrSublotAllocationMethodsUnitOrSublotAllocationComponents.jsonUnitOrSublotAllocationComponentsSummaryRemarks.jsonSummaryRemarksWBSElementRemarks.jsonWBSElementRemarksWBSDictionaryDefinitions.jsonWBSDictionaryDefinitionsCostHourTagDefinitions.jsonCostHourTagDefinitionsFile Type/VersionThe ‘FileType.txt’ file entry specifies the type and version of the CSDR Cost and Hour Report (Flex File). This file entry must contain the following exact text string (excluding quotation marks): “CSDR_COST_HOUR_REPORT/1.0_DRAFT20180105”.Representation in JSONJSON ConventionsEach table is represented in JSON as an array of objects. Singletons are an exception. They are represented directly as a single object. Objects correspond to records, and the sequence of objects in JSON represents the implicit sequence of records in the table.Each record is represented in JSON as an object with name/value pairs corresponding to field values. The name of each pair must exactly match the name of the corresponding field, and the value of each pair must follow the conventions below for representing the corresponding primitive data type in JSON. Names must be unique within the scope of each object and each name must correspond to a field defined for the table.Objects must include name/value pairs for fields that are not null, and these pairs must not have a JSON value of null. Conversely, objects may or may not include name/value pairs for fields that are null. If included, these pairs may have a JSON value of null.Primitive data types are represented as follows:Representation of Primitive Data TypesBooleanJSON value of true or false.DateJSON string encoding a valid date, without time zone, formatted as follows: “yyyy-mm-dd” (e.g. “2016-01-31”).DecimalJSON number.IntegerJSON number with fractional component equal to zero.StringJSON string, with normalized whitespace.StringIDJSON string, with normalized whitespace and limited character set.TextJSON string.JSON Schema SampleSchemaWBS.json{ "$schema": "", "type": "array", "items": { "type": "object", "properties": { "Level": {"type": "number"}, "ID": {"type": "string"}, "Name": {"type": "string"}, "ParentID": {"type": ["string", "null"]} }, "required": ["Level", "ID", "Name"] }}JSON Data SampleDataWBS.json[ { "Level": 1, "ID": "1.0", "Name": "Total" }, { "Level": 2, "ID": "1.1", "Name": "Subsystem 1.1", "ParentID": "1.0" }, { "Level": 2, "ID": "1.2", "Name": "Subsystem 1.2", "ParentID": "1.0" }]ReferencesJSON - The JSON Data Interchange Format, ECMA-404. 2013.JSON Schema - json-Unicode - The Unicode Standard, Version 9.0. 2016.UTF-8 - “UTF-8 encoding scheme,” The Unicode Standard, Version 9.0, §3.10 D95. 2016.ZIP File Format - .ZIP File Format Specification, Version 6.3.4. 2014. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download