Quantcast
Viewing all 10657 articles
Browse latest View live

The Mandate For Intelligent Customer Service Whitepaper

Learn How Exceptional Customer Interactions Deliver Quantifiable Value Companies nowadays work diligently to interact, communicate, and engage with their customers in new and different ways. However...(read more)Image may be NSFW.
Clik here to view.

Boston Roadshow: First Look at Microsoft Dynamics 365 and Rapid365

Is your organization considering a new ERP solution in 2017? Are you located in the New England area?

If so, we invite you to join us on April 10th from 1pm – 5pm EST for our executive lunch and learn at the Microsoft Technology Center in Burlington – Digital Transformation for Growth: A First Look at Microsoft Dynamics 365 and Rapid365.

Space is limited – so reserve your spot today!

During this event you will:

  • See live demonstrations of Microsoft’s next generation digital platform – Microsoft Dynamics 365 – which combines traditional ERP, CRM, BI, and IoT applications into one integrated, cost-effective, scalable, and easy-to-use enterprise solution.
  • Discover how the Rapid365 implementation methodology enables organizations to implement Microsoft Dynamics 365 with less time, spend, and risk.
  • Learn why Microsoft Dynamics 365 is a great solution for rapidly growing organizations – enabling companies to scale into their system rather than outgrowing them in 3 to 5 years.
  • See how the Microsoft Cloud enables companies to turn complex data – both from internal and external sources – into actionable intelligence that can be easily understood, shared, and used to make critical business decisions.
  • Learn why Microsoft Azure is the best cloud platform to run your enterprise systems – from having more compliance certifications than any other cloud provider, to having more data centers in more geographies than Google and AWS.

Register now to reserve your spot! Or, contact Nick Sarno for more information.

The post Boston Roadshow: First Look at Microsoft Dynamics 365 and Rapid365 appeared first on Merit Solutions.

Image may be NSFW.
Clik here to view.

Microsoft Dynamics 365 for Operations - Selecting a correct form pattern - A another benchmark!!!

Simply about applyTimeZoneOffset and removeTimeZoneOffset methods of DateTimeUtil

In this post I want to describe simple rules of working with an unbound UtcDateTimeEdit control in a form: 1) from the database to the user -> applyTimeZoneOffset 2) from the user to the database ->...(read more)Image may be NSFW.
Clik here to view.

Switching to the Cloud – Changing the Focus from Operational to Strategic

According to Accenture , 67% of CIO’s want to position Information Technology (IT) as a strategic asset that will help the business grow through the use of innovative technology, products, or processes...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Parameters

There are a few parameters that you can leverage to enable functionality for sending and archive of the purchase order request. Here is a quick overview of the existing parameters. AX2012 R3 ...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Vendor Setup

If you are looking to use the cXML Purchase Order send then you will need to enable a parameter on the vendor which will default to the purchase order for it to be picked up. This parameter is assessed...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Batch Job

The purchase order send makes use of a batch job so the user isn’t waiting when they confirmation the purchase order. The batch job will update the status in the purchase request form so you can...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Stop and Re-Submit

When using the purchase send functionality there maybe times where an order is confirmed and you might want to stop it from being sent to the supplier. Or an order was return with an error message and...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Request Send – Download and setup notes

The pre-requisite to the cXML Purchase Request send capability is the cXML PurchOut Protocol Handler that you can find details here . You can find the code here https://ax2012r3cxml.codeplex.com/releases...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Generate cXML

When you are setting up the purchase send functionality you might want to test the generation of the XML documents before sending them to the suppliers. There is a function provided on the purchase request...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Purge

There is a purge function provided on the purchase request form that will allow you to remove the history. As the send status is a record of what you have communicated to a supplier you probably don’t...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Reviewing Data Errors

There are times where data might not be formatted correctly or wrong data provided that will cause a purchase to be returned from the supplier. The supplier will often return an message that will give...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Order Request Send AX2012 R3 V1

Working with a number of customers using both punchOut and having a need to send purchase orders I’m sharing some sample code that you can leverage to add automation to your AX2012 environment for...(read more)Image may be NSFW.
Clik here to view.

cXML Purchase Send – Merge objects overview

The following code changes are made in the merged objects. It’s probably more efficient to add these manually without going through the trouble of trying to merge into you environment and there are...(read more)Image may be NSFW.
Clik here to view.

SharePoint Online Integration with Dynamics 365 for Operation (D365FO) Upload File / Create Folder

This blog will explain how to create files and folders on SharePoint Online programmatically, using AX7 code (Dynamics 365 for Operations).

FILE CREATION:

  1. Library to use: Microsoft.Dynamics.AX.Framework.FileManagement
  2. To save file, SharePointDocumentStorageProvider class should be used:

    System.UriBuilder builder = new System.UriBuilder(SITE);
    str host = builder.Host;
    str extId = xUserInfo::getExternalId();
    
    SharePointDocumentStorageProvider storageProvider =
    new SharePointDocumentStorageProvider(host, SITE, FOLDER_PATH, extId);
    
    //Create MemoryStream object that will hold data to upload
    System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
    //Populate memoryStream with your file’s contents.
    //In the end set the position of the stream to 0
           memoryStream.Position = 0;
    
    //Method SaveFile is used to create the file on SharePoint online
    storageProvider.SaveFile(newGuid(), NAME_OF_FILE, MIME_TYPE, memoryStream);

FOLDER CREATION:

  1. Library to use (D365FO): Microsoft.Dynamics.Platform.Integration.SharePoint
  2. To create folders on SharePoint, we need access token. It can be obtained in the following way:

    System.UriBuilder builder = new System.UriBuilder(SITE_ADDRESS);
    str host = builder.Host;
    str extId = xUserInfo::getExternalId();
    ISharePointProxy proxy = SharePointHelper::CreateProxy(host, '/', extId);
    str token = proxy.AccessToken;
  3. Access token should be passed to the following C# method:

    public static ClientContext GetClientContextWithAccessToken(string targetUrl, string accessToken)
           {
             Uri targetUri = new Uri(targetUrl);
    
             ClientContext clientContext = new ClientContext(targetUrl);
    
             clientContext.AuthenticationMode = ClientAuthenticationMode.Anonymous;
             clientContext.FormDigestHandlingEnabled = false;
             clientContext.ExecutingWebRequest +=
             delegate (object oSender, WebRequestEventArgs webRequestEventArgs)
             {
        webRequestEventArgs.WebRequestExecutor.RequestHeaders["Authorization"] ="Bearer " + accessToken;
             };
    
             return clientContext;
    }

    Method is taken from:

    http://www.herlitz.nu/2012/12/30/sharepoint-2013-tokenhelper-cs-source-code/

    We don’t need the whole class, just this method.

Library to use (C#): Microsoft.SharePoint.Client

  • After getting the ClientContext object from GetClientContextWithAccessToken method, we can use it to create folders (purely C# code from now on, not explained in this blog).

The post SharePoint Online Integration with Dynamics 365 for Operation (D365FO) Upload File / Create Folder appeared first on Merit Solutions.

Image may be NSFW.
Clik here to view.

Experiences Developing SSRS Reports in Dynamics 365 for Operations

Render report to memory stream D365 (aka AX7)

Recently I was tasked with an upgrade of a functionality we have on AX2012 to Dynamics365, which includes running the report from the code and attaching it to the caller record. As you are probably aware of, this was very easy to accomplish in the earlier Microsoft Dynamics AX versions, where you could simply run the report to a file, save it locally and attach it to the record using the DocuActionArchive class.

Things are a bit more complicated when it comes to D365 in cloud. You are no longer able to save the file locally (for example using System.IO.Path::GetTempPath() + fileName) as storage is now moved to Azure and files are stored as a Blob. You may have also noticed that most of the classes that work with files now use stream objects with their content type instead.

In order to attach the report to a record I needed to provide a MemoryStream object which would represent my report. As I found no existing code that could provide me with the memory stream output of the report I created my own method to do this. Below is given a code (runnable class – job) to perform rendering of a report to a memory stream.

class RunReportToStream
{
    public static void main(Args _args)
    {
        DocuRef                         addedRecord;
        ProdTable                       prodTable = ProdTable::find('P000173');
        Filename                        fileName = "AbcTest.pdf";
        YourReportController 	controller = new YourReportController();
        YourReportContract   	contract = new YourReportContract();
        SRSPrintDestinationSettings     settings;
        Array                           arrayFiles;
        System.Byte[]                   reportBytes = new System.Byte[0]();
        SRSProxy                        srsProxy;
        SRSReportRunService             srsReportRunService = new SrsReportRunService();
        Microsoft.Dynamics.AX.Framework.Reporting.Shared.ReportingService.ParameterValue[]  parameterValueArray;
        Map reportParametersMap;
        SRSReportExecutionInfo executionInfo = new SRSReportExecutionInfo();
        ;

        _args = new Args();
        _args.record(prodTable);
        // Provide all the parameters to a contract
        contract.parmProdId('P000173');
        contract.parmNumberOfLabels(1);
	 // Provide details to controller and add contract
        controller.parmArgs(_args);
        controller.parmReportName(ssrsReportStr(YourReportName, DesignName));
        controller.parmShowDialog(false);
        controller.parmLoadFromSysLastValue(false);
        controller.parmReportContract().parmRdpContract(contract);
        // Provide printer settings
        settings = controller.parmReportContract().parmPrintSettings();
        settings.printMediumType(SRSPrintMediumType::File);
        settings.fileName(fileName);
        settings.fileFormat(SRSReportFileFormat::PDF);

        // Below is a part of code responsible for rendering the report
        controller.parmReportContract().parmReportServerConfig(SRSConfiguration::getDefaultServerConfiguration());
        controller.parmReportContract().parmReportExecutionInfo(executionInfo);

        srsReportRunService.getReportDataContract(controller.parmreportcontract().parmReportName());
        srsReportRunService.preRunReport(controller.parmreportcontract());
        reportParametersMap = srsReportRunService.createParamMapFromContract(controller.parmReportContract());
        parameterValueArray = SrsReportRunUtil::getParameterValueArray(reportParametersMap);

        srsProxy = SRSProxy::constructWithConfiguration(controller.parmReportContract().parmReportServerConfig());
	 // Actual rendering to byte array
        reportBytes = srsproxy.renderReportToByteArray(controller.parmreportcontract().parmreportpath(),
                                              parameterValueArray,
                                              settings.fileFormat(),
                                              settings.deviceinfo());

        if (reportBytes)
        {
		// Converting byte array to memory stream
            System.IO.MemoryStream stream = new System.IO.MemoryStream(reportBytes);

            // Upload file to temp storage and direct the browser to the file URL
            File::SendFileToUser(stream, settings.parmFileName());

            stream.Position = 0;
            str fileContentType = System.Web.MimeMapping::GetMimeMapping(fileName);
            // Attach the file to a record using stream object
            addedRecord = DocumentManagement::attachFile(prodTable.TableId,prodTable.RecId,prodTable.DataAreaId, 'File', stream, fileName, fileContentType,"PDF file attached");
        }


// You can also convert the report Bytes into an xpp BinData object if needed
        container binData;
        Binary binaryData;
        System.IO.MemoryStream mstream = new System.IO.MemoryStream(reportBytes);
        binaryData = Binary::constructFromMemoryStream(mstream);
        if(binaryData)
        {
            binData = binaryData.getContainer();
        }

    }

}

With the output found in the code above like reportBytes, stream and binData you can do many things, like sending the report to a certain SharePoint location from code, sending the report as an email attachment from code, attaching the report to a record as a document attachment from code and I am sure that you will find many other usages.

I hope that you will find this text helpful.

The post Render report to memory stream D365 (aka AX7) appeared first on Merit Solutions.

Image may be NSFW.
Clik here to view.

DAXDUTIL – AX7 Updated

Hi all,

Just started to developer into AX7. Hating and loving it. I`m keeping this subject to another post though.
For the moment, let’s talk about DAX Development Util repository.

The folder directory has been updated to hold also content for our fellow consultants.

There are 2 new folders:

  • Exams: Contains AX7 exams hints
  • Snippets: Contains snippets files to be used on VS during X++ development.

Obviously, you are more then welcome to contribute!
Just send a pull request or a message at anderson@joyle.com.br.

[]’s
Anderson Joyle

Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.

RFQ Scoring method

When working with suppliers sometimes you might want to value a relationship over price if the quality or the delivery performance is good. When setting up an RFQ you might want to setup a evaluation criteria...(read more)Image may be NSFW.
Clik here to view.
Viewing all 10657 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>