Maybe I should clarify a bit.
Most all of it can be pulled in one way or another, but sometimes significant research
must be done to figure it out.
I don’t usually work with reports, as I have someone else that does that, so I couldn’t answer
that off the top of my head, I’d have to look into it.
Some of it can be pulled as rows. And their relations.
Like make a baq, pull the rows out, and they can be reimported with DMT or a dashboard.
Some things can be pulled as datasets. Say BAQs, you can pull the BAQ Designer Dataset,
the Query Diagram, the attached BPMethods, and those can be reimported relatively easy.
Some stuff they are already working on moving the export to the cloud.
Let’s take a look at BAQs for example again.
They aren’t done with it yet, so it doesn’t work for Updateable BAQs with BPM Methods yet,
but this function exist: BAQDesignerSvcContract - ExportBaq
and here is an example of how it could be leveraged to get actual .baq files:
//Snippet from a BAQ custom action
using (BAQDesignerSvcContract baqDesigner = ServiceRenderer.GetService<BAQDesignerSvcContract>(Db))
{
List<ResultsUbaqRow> selectedRowsList = queryResultDataset.Results.Where(row => row.Calculated_Export == true && row.RowMod == "U").ToList();
queryResultDataset.Results.Clear();
Dictionary<string, string> options = new Dictionary<string, string>();
foreach(ResultsUbaqRow row in selectedRowsList)
{
if(row.QueryHdr_Updatable == false)
{
List<string> logText = new List<string>();
string queryID = row.QueryHdr_QueryID;
//Does not yet work with updateable BAQs (YET). Have to code it yourself and looks like a pain in the ass. So I didn't do it (yet).
byte[] baqFile = baqDesigner.ExportBaq(queryID, ref options, out logText);
ResultsUbaqRow newRow = new ResultsUbaqRow();
BufferCopy.Copy(row, newRow);
newRow.Calculated_LogText = String.Join(Environment.NewLine, logText);
newRow.Calculated_Export = false;
newRow.Calculated_ExportedData = Convert.ToBase64String(baqFile); //Base64 Encoded ".BAQ" file data (Convert to Bytes before writing)
newRow.RowMod = "";
queryResultDataset.Results.Add(newRow);
}
}
}
So no, unfortunately my statements aren’t going to be magic for you.
We need the tools, whether we build it ourselves, or wait and hope.
Tooling like this comes at a significant time cost.
I’m just saying it can be done with the tools we’ve got.
I just want people to know that, not so we don’t push for the tool, but so
we know what’s possible in case we need it NOW.