Exporting the data from data entities through X++ code – Murali Ravkanti
Mon Oct 14 2024 16:56:21 GMT+0000 (Coordinated Universal Time)
Saved by @pavankkm
public static void main(Args _args)
{
#DMF
Query query;
DMFEntityName entityName = "Inventory movement journal headers and lines";
SharedServiceUnitFileID fileId;
List xsltFileList = new List(Types::String);
boolean isGenerated = false;
VLSAzureSMBFileStorageHandler azureFileStorageProcessor;
CustParameters custParameters = CustParameters::find();
// Update query
query = new query(dmfutil::getdefaultqueryforentity(entityname));
querybuilddatasource qbds = query.datasourcetable(tableNum(InventInventoryMovementJournalEntryEntity));
// Export file
// Definition group will be created if it is not existed
DMFDefinitionGroupName definitionGroupName = 'Invent journal entity';
try
{
DMFEntityExporter exporter = new DMFEntityExporter();
//There are optional parameters also added
fileId = exporter.exportToFile(
entityName,//Entity label
definitionGroupName,//Definition group to reuse
'',//ExecutionId group to reuse,
'CSV',//Source format to export in
'VLSInventJournal',//Specify the field group fields to include in export.
query.pack(),//Query criteria to export records
curExt(),//Default curExt()
null,//List of XSLT files
true,//showErrorMessages
false);//showSuccessMessages
if (fileId != '')
{
//Get Azure blob url from guid
str downloadUrl = DMFDataPopulation::getAzureBlobReadUrl(str2Guid(fileId));
System.Uri uri = new System.Uri(downloadUrl);
str fileExt;
//Get file extension
if (uri != null)
{
fileExt = System.IO.Path::GetExtension(uri.LocalPath);
}
Filename filename = strFmt('InventJournal%1',fileExt);
System.IO.Stream stream = File::UseFileFromURL(downloadUrl);
//Send the file to user
//File::SendFileToUser(stream, filename);
DMFDefinitionGroup::find(definitionGroupName, true).delete();
isGenerated = true;
azureFileStorageProcessor = new VLSAzureSMBFileStorageHandler();
azureFileStorageProcessor.parmAccountName(custParameters.VLSOutboundAccountName);
azureFileStorageProcessor.parmAccountKey(custParameters.VLSOutboundAccessKey);
azureFileStorageProcessor.parmFileShareName(custParameters.VLSOutboundFileShareName);
azureFileStorageProcessor.parmDestinationFileShareName(custParameters.VLSOutboundFileShareName);
azureFileStorageProcessor.parmErrorFileShareName(custParameters.VLSOutboundFileShareName);
azureFileStorageProcessor.openConnection();
azureFileStorageProcessor.resetToRootDirectory();
azureFileStorageProcessor.setDirectory(custParameters.VLSOutboundInProcess);
azureFileStorageProcessor.uploadFromStream(stream, filename);
info(strFmt("File %1 has been moved to Azure storage folder", filename));
}
else
{
throw error("The file was not generated succefully.");
}
}
catch
{
throw error("Data export execution failed.");
}
}



Comments