Skip to main content

Electronic Reporting: Send vendor payments to external azure storage via X++

Electronic Reporting module in Microsoft Dynamics 365 Finance Operation lets you archive file generated by ER at SharePoint location and in Azure Storage as per this link Archive ER destination type - Finance & Operations | Dynamics 365 | Microsoft Learn. APIs can be used to check message status and read file from either location. Logic Apps or Power Automate can be used to make a call to APIs, read files, and perform required action. This post is not about how this can be done via integration :) It's been a while I haven't written a full code base post (no low code :))

To send ER generated files directly to your provided Azure Blob Container, below is the sample class.

using Microsoft.Azure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.File;
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage.Auth

class DAX_ERVendPaymOutFieUploadHelper
{

    /// <summary>
    /// Handles attachingFile event from Electronic reporting
    /// </summary>
    /// <param name = "_args">Event args for event handler</param>    [SubscribesTo(classStr(ERDocuManagementEvents), staticDelegateStr(ERDocuManagementEvents, attachingFile))]
    
public static void ERDocuManagementEvents_attachingFile(ERDocuManagementAttachingFileEventArgs _args)
    {
        
ERFormatMappingRunJobTable  ERFormatMappingRunJobTable;
        
Common                      common = _args.getOwner();

        if(common.tableid == tableNum(ERFormatMappingRunJobTable))
        {
            ERFormatMappingRunJobTable = 
ERFormatMappingRunJobTable::find(common.RecId);
        }   

        if (!_args.isHandled() && ERFormatMappingRunJobTable.Archived == noyes::No)
        {
            DAX_ERVendPaymOutFieUploadHelper uploadHandler = DAX_ERVendPaymOutFieUploadHelper::construct();

            uploadHandler.uploadFile(_args.getStream());
        }
    }

    /// <summary>
    /// Creates an object of DAX_ERVendPaymOutFieUploadHelper class
    /// </summary>
    /// <returns>DAX_ERVendPaymOutFieUploadHelper class object</returns>

    public static DAX_ERVendPaymOutFieUploadHelper construct()
    {
        return new DAX_ERVendPaymOutFieUploadHelper();
    }

 

    /// <summary>
    /// Uploads file to custom Azure blob container specified in parameters
    /// </summary>
    /// <param name = "_fileStream">File stream to be uploaded</param>
    /// <returns>True if file uploaded successfully</returns>

    private boolean uploadFile(System.IO.Stream _fileStream)
    {
        boolean ret = true; 

        // Custom parameters table to store Azure Storage and container info
        DAX_Parameters parameters = DAX_Parameters::find();

        try
        {
            StorageCredentials credentials = new StorageCredentials(parameters.StorageAccountName, parameters.Key);

            CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);

            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();          

            CloudBlobContainer rootContainer = blobClient.GetContainerReference(parameters.ContainerName);          

            if(!rootContainer.Exists(nullnull))
            {
                return Checkfailed('Azure storage parameters are not set up correctly.');
            }

            CloudBlobDirectory directory = rootContainer.GetDirectoryReference(parameters.BankOutPaymFolder);

            CloudBlockBlob blockBlob =                directory.GetBlockBlobReference(strFmt('VendOutPaym.xml'));

             if (_fileStream.CanSeek)
            {
                _fileStream.Seek(0, System.IO.SeekOrigin::Begin);
            }

            blockBlob.UploadFromStream(_fileStream, nullnullnull);
            Info('File uploaded');
        }

        catch(Exception::Error)
        {
            ret = checkFailed('Error occurred while uploading the file');
        }

        catch(Exception::CLRError)
        {
            ret = checkFailed('CLR Error occurred while uploading the file');
        }

        return ret;
    }
}


Comments

  1. QUICK EASY EMERGENCY URGENT LOANS LOAN OFFER EVERYONE APPLY NOW +918929509036 financialserviceoffer876@gmail.com Dr. James Eric

    ReplyDelete
  2. SELLING FULLZ SSN USA NIN UK SIN CANADA
    AUS SPAIN ITALY GERMANY Fullz available
    Fresh Stuff & Fresh Spammed
    Available in bulk quantity
    Valid & guaranteed info

    DL front back with selfie
    DL with issue & exp dates
    DL with ssn

    SSN DOB DL ADDRESS--> USA
    NIN DOB DL ADDRESS--> UK
    SIN DOB ADDRESS MMN--> CANADA

    Tax Return Filling Fullz & KYC Stuff
    HACKING & SPAMMING TOOTLS & TUTORIALS
    COMPLETE PACKAGES WITH ALL TOOLS & TUTORIALS INCLUDED
    SCAM PAGES|SCRIPTING

    CASH OUT & CARDING STUFF
    LOAN METHODS & CARDING METHODS

    Many Other stuff for cashing out|filling for loans|KYC
    All stuff will be 101% Genuine, nothing generated or edited

    Contact us here only (Be aware from scammers)
    Telegram - @ killhacks ' @ leadsupplier
    What's App - +1 7277..88..612..9
    TG Channel - t.me/ leadsproviderworldwide
    Email - hacksp007 at gmail dot com
    VK Messenger - @ leadsupplier

    USA STUFF:
    SSN DOB ADDRESS FULLZ
    SSN DOB DL ADDRESS FULLZ
    SSN DOB DL ADDRESS EMPLOYEMENT & BANK INFO FULLZ
    SSN DOB DL ADDRESS DL ISSUE & EXP INFO FULLZ
    FULLZ WITH MVR
    USA DL|ID FRONT BACK WITH SELFIE & SSN
    USA LLC DOCS
    USA W-2 FORMS
    USA Passport Photos
    High Credit Scores Pros
    SweepStakes & Dead Fullz
    Business EIN Company Pros|EIN Lookup
    Dumps & CC with CVV
    --------------------------------------------------

    UK (UNITED KINGDOM) STUFF:
    NIN DOB ADDRESS FULLZ
    NIN DOB DL ADDRESS FULLZ
    NIN DOB DL ADDRESS SORT CODE & ACCOUNT NUMBER FULLZ
    High Credit Scores Pros Fullz
    UK DL Front Back with Selfie
    UK Email & Phone number Leads
    UK Passports
    Consumer Leads UK
    Bank Leads with sort code & account number UK Fullz
    --------------------------------------------------

    CA (CANADA) STUFF:
    SIN DOB ADDRESS FULLZ
    SIN DOB ADDRESS MMN FULLZ
    SIN DOB ADDRESS MMN PHONE POST CODE FULLZ
    Canada DL Front Back with Selfie
    CA Email & Phone Number leads
    High Credit Score Fullz
    Canada Passports
    ---------------------------------------------------

    OTHER STUFF WE'RE PROVIDING WITH GUARANTEE:
    EMAIL LEADS (Crypto|Unemployement|Casino|Medical|Health|Office365)
    Car Database with Vehicle registration numbers
    Email Combos
    I.P & Proxies
    Different type of Docs available

    TOOLS AVAILABLE
    SMTP RDP SHELLS C-PANELS
    KALI LINUX
    RATS & VIRUSES
    Web-Mailers
    SMS & Email Senders
    Scam Pages & Scripting
    Office365 Spamming Stuff

    #FULLZ #TOOLS #TUTORIALS #EBOOKS #USAFULLZ #UKFULLZ #CAFULLZ #DLPHOTOS
    #HACKING #SPAMMING #CARDING #SPOOFING #LEADSUSA #COMBOS #CRYPTOLEADS
    #UKLEAD #CANADALEADS #HIGHCREDITSCOREPROS #CRYPTOPAYMENTS #PROS #OFFICE365
    #SENDERS #FULLZSHOP #DUMPSCVV #CCFULLZ #USACC #FULLZDUMPS #DUMPSID #DUMPSDL
    #EMAILLEADS

    Contact here only (Be aware from scammers)
    Telegram - @ killhacks ' @ leadsupplier
    What's App - +1 7277..88..612..9
    TG Channel - t.me/ leadsproviderworldwide
    Email - hacksp007 at gmail dot com
    VK Messenger - @ leadsupplier

    ReplyDelete

Post a Comment

I will appreciate your comments !