My code is taking the file that the Batch Payments.Export action has created and set it up for file synchronization.
The challenge is that my code isn’t waiting for the file to be generated. If I click the button again I am able to find the file and update it.
Is there a different way that I should wait for the Base.export.Press(adapter) process to finish before continuing on with the rest of the code?
PXOverride]
public virtual IEnumerable Export(PXAdapter adapter)
{
Base.export.Press(adapter);
PXLongOperation.WaitCompletion(Base.UID);
UploadFileMaintenance fm = PXGraph.CreateInstance<UploadFileMaintenance>();
var batchCache = Base.Cachesctypeof(CABatch)];
var fileNotes = PXNoteAttribute.GetFileNotes(batchCache, batchCache.Current);
UploadFile theFile = (UploadFile)PXSelect<UploadFile, Where<UploadFile.fileID, Equal<Required<UploadFile.fileID>>>>.Select(new PXGraph(), fileNote);
if (theFile == null)
{
return adapter.Get();
}
//Update the file record's fields
theFile.Synchronizable = true;
theFile.SourceType = "C";
theFile.SourceUri = "the url";
theFile = fm.Files.Update(theFile);
fm.Actions.PressSave();
return adapter.Get();
}