.check = TRUE
argument to create_flexfile_family()
to skip checking if the metadata matches between the reports. Added a thin wrapper force_flexfile_family()
which uses to .check = FALSE
read_flexfile()
to match that of the data model instead of a transformed snake_case representation. Since the first release of readflexfile, all tables and fields were renamed according to a file specification. This has ultimately led to confusion since users need to know both the original nomenclature from the "native" data model and the new names for use in readflexfile.read_flexfile()
now returns different results than it has in past versions. To maintain backwards compatibility, you can use the .data_case = "snake"
argument. This will return the old results. This can be used as a stop gap, but we strongly recommend rewriting old code to support the new names. We have done this on our own related tool set. While it a bit annoying, it does not take very long.costmisc::native_to_snake_case()
can also be used to convert from the native case to the legacy snake_case.read_maintrepair()
reads the M&R report from the Excel template into an object of class 'maintrepair'.read_techdatareport()
reads the M&R report from the Excel template into an object of class 'techdatareport'.normalize_units_or_sublots()
. This function will add the EndItemID and OrderOrLotID fields to actualcosthourdata
and forecastatcompletioncosthourdata
tables when the UnitOrSublotID is provided instead. This functionality always occurred when flattening the data using flatten_data()
, but is now exported as its own function to support other use cases.add_id_col()
and listindex_to_col()
re-exports from costmisc
which were required for the legacy workflow.data_model_to_snake()
and snake_to_data_model()
to costmisc
and re-exported. Added a more general change_case_from_spec()
to costmisc as well, also re-exported in readflexfile
.read_flexfile_3part()
.normalize_functional_categories()
. This function will add the standard functional categories to the actualcosthourdata
and forecastatcompletioncosthourdata
tables when the detailed functional categories are provided. This functionality always occurred when flattening the data using flatten_data()
, but is now exported as its own function to support other use cases.apply_flexfile()
. This function allows you to apply a function over a single or a list of flexfiles. This provides a convenient way to apply a function without knowing in advance whether the input is a single object of type 'flexfile' or a list of objects. The function is used internally with functions such as allocate_flexfile()
but is now exported to the user.write_flexfile()
. This function will write an object of class 'flexfile' or 'quantityreport' into the zipped collected of JSON files.data_model_to_snake()
and snake_to_data_model()
) to interchange between naming conventions (native data model notation and snake_case). Note that the formal S3 object at this time must still remain in snake_case or else the downstream functions will not know what to do. Future iterations may support either case.as_*()
functions so that missing fields and tables are added into the model during the coercion..drop_optional = TRUE
default in read_flexfile()
and the as_*()
functions.units_or_sublots
(#28).flatten_data()
generic to costmisc. This should have no impact on the user.flatten_ff()
is now deprecated and has been replaced with the generic function flatten_data()
. See the updated vignettes in browseVignettes(package = "readflexfile")
(#15). The generic may be relocated to another package in the costverse later, but there should not be a change to the user (#16).read_ff()
function has been superseded by read_flexfile()
to be less ambiguous in name.read_flexfile()
with zero rows of data. This ensures that a consistent result is returned (#17).period_of_performance_end_data
to period_of_performance_end_date
in the ordersorlots table
(#10).costmisc
. This should correct errors in tables with value 'null' in the raw file..coerce_spec
option to read_ff()
to coerce data types to those from the data model (#11).browseVignettes("readflexfile")
to get started!Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.