martedì 2 febbraio 2021

D365FFO: Export data entity by Code X++

A simple way to export a data entity, using the powerful data management framework.

You need a definition group, where the entity is mapped and all parameters are set, this script allow you to simple get an output file. You can set or not the pushing method, in my case i need an option to force full puch when a entity is mapped using incremental pushing.


DMFDefinitionGroupName definitionGroupName;
DMFEntityName entityName;
DMFSourceName sourceName;
DMFExecutionId executionid = "..."; //Your unique execution identifier
DMFDefinitionGroup definitionGroup = DMFDefinitionGroup::find(definitionGroupName, true);

DMFEntityExporter exporter = new DMFEntityExporter();
Description description = "..."

DMFDefinitionGroupEntity definitionGroupEntity = DMFDefinitionGroupEntity::find(
	definitionGroupName",
	entityName,
	true);
	
DMFDefinitionGroupExecution::serviceInsertOrDisplay(definitionGroup,
	executionid,
	definitionGroupEntity.Entity,
	definitionGroupEntity.SampleFilePath,
	definitionGroup.Description,
	'',
	'',
	'',
	NoYes::Yes,
	DMFFileType::File,
	1,
	'',
	false,
	curExt());

DMFDefinitionGroupExecution definitionGroupExecution = DMFDefinitionGroupExecution::find(
	definitionGroupName,
	entityName,
	executionid,
	true);

ttsBegin;
definitionGroupExecution.selectForUpdate(true);
definitionGroupExecution.ExecuteTargetStep = NoYes::Yes;
if (...) //Full push condition
{
	definitionGroupExecution.DefaultRefreshType = DMFRefreshType::FullPush;
}
definitionGroupExecution.Update();
ttsCommit;

DataImportFramework::MoveToStaging(executionid);

SharedServiceUnitFileID fileId = DMFPackageExporter::exportToFileV2(
	definitionGroupName,
	executionid,
	entityName,
	sourceName);

mercoledì 27 gennaio 2021

D365FFO: Start a Virtual Machine (Cloud hosted) using Powershell

The simplest way to wake up and start a cloud hosted virtual machine from your commmand line.

The authentication method is prompted login, but you can autheticate using another method as mentioned here: https://docs.microsoft.com/en-us/powershell/module/azurerm.profile/connect-azurermaccount?view=azurermps-6.13.0

1. Run powersheel

2. Connect-AzureRmAccount

3. Start-AzureRmVM -ResourceGroupName "yourresourcegroupname" -Name "maschineName"

More info here: https://docs.microsoft.com/en-us/powershell/module/azurerm.compute/?view=azurermps-6.13.0#virtual-machines

venerdì 22 gennaio 2021

D365FFO: Export data entity by code X++

 This is the code for exporting data entity using X++

Note: Export is done using batch job, consider it in case of used that on a performance requirement implementation

try
{
EntityName entityName = DMFEntity::findFirstByTableId(tableNum(VendVendorV2Entity)).EntityName;

Query query = new Query(DMFUtil::getDefaultQueryForEntity(entityName));
QueryBuildDataSource qbds = query.dataSourceTable(tableNum(BankPositivePayExportEntity));
DMFEntityExporter exporter = new DMFEntityExporter();
fileId = exporter.exportToFile(entityName,
definitionGroupName,
'', //Optional: ExecutionID
"CSV", //Optional::SourceName
#FieldGroupName_AllFields, //Optional field selection
query.pack(), //Optional: Filtered Query
curExt() //Optional: DataAReaId
);

if (fileId != '')
{
str downloadUrl = DMFDataPopulation::getAzureBlobReadUrl(str2Guid(fileId));

Filename filename = strFmt('export.csv');
System.IO.Stream stream = File::UseFileFromURL(downloadUrl);
File::SendFileToUser(stream, filename);
}
else
{
throw error("DMF execution failed and details were written to the execution log");
}
}
catch
{
error("error occurred while exporting");
}

AX 2012: The request was aborted: Could not create SSL/TLS secure channel

The error you're encountering, "The request was aborted: Could not create SSL/TLS secure channel," can occur due to various re...