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 !

Popular posts from this blog

D365O - How to add financial dimension in grid

This post outlines the steps; how to add financial dimensions (segmented control) in a grid in D365O. Let's assume we are adding new table and form for below explanation; New table contains two fields  AccountType and  LedgerDimension with relation to DimensionAttributeValueCombination table  Form looks like this; Set properties for segmented control under form design; - Auto declaration = Yes - Account type field = AccountType - Controller class = DimensionDynamicAccountController - Filter expression = %1 1. Override modified method for LedgerDimension field under form's datasource 2. Override lookup and checkUserCustomLookup method on ledger dimension segmented control in form desgin Datasource | D365O_FinancialDimension | LedgerDimension | modified [DataSource]     class D365O_FinancialDimension     { ...

The Dual Write implementation - Part 1 - Understand and Setup

What is Dual-write? Tightly couples – complete at one transaction level Near real time Bi-directional Master data and business documents – Customer records you are creating and modifying and at this document we are talking about sales orders or quotes and invoice. Master data could be reference data e.g. customer groups and tax information Why Dual-write and why not Data Integrator? Data Integrator is Manual or Scheduled One directional Now, Let's deep dive and understand what is required for Dual-write setup and from where to start. First thing first, check you have access to https://make.powerapps.com/ Choose right environment of CDS (CE) Make sure you have access to the environment too, click on gear icon and Admin Center  Look for required environment and Open it, you must have access as going forward you are going to configure dual write steps in the environment user the same user you are logged in now. Now, go back to power platform admin center and...

Another step closer - Finance Operations data in Power Platform - Virtual Entities

This post focuses on the integration technologies available to have the Microsoft Dynamics 365 Finance Operations data available in Dataverse/Common Data Services/CDS. What could be better then having The biggest ERP system's data in Power Platform. You can Power Portals, Power Apps, Power BI analytical reports, use power virtual agents for inventory closing and year end closing processes, manage expenses and employee/contractors time entry processes, most of these processes can be even without logging to MS ERP (Dynamics 365 Finance Operation) so can safe on license cost too.  Let's see what options are available to integrate F&O data with Power Platform however, this post is dedicated to Virtual Entities.  3 Options available out-the-box to integrate F&O data with Power Platform; 👉  Data Integrator  - Click on link to read more 👉  Dual-Write  -  Click on link to read more 👉  Virtual Entities - MS Tech Talk on Virtual entities   ...