web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)

Printer change not picked up by override in AX Print Management

(0) ShareShare
ReportReport
Posted on by

Hi,

Current Environment = AX 2012 R2 CU8

I have Customer Invoices setup in AX Print Management to default to a specific printer for a specific user.  For example, the User is "AZ" and the destination printer is "Canon MF4800 AZ" thru ...../Accounts receivable/Setup/Forms/Form setup -> Print Management.  This is the "original".

 

However, we have an additional setting on some individual accounts to override this setting to have the destination set to send an email, then print a copy to the destination printer.  This is the "copy" and all of this worked as intended.

Recently, we have had to change the destination printer that the user "AZ" sends to to be "Arizona Reception - HP Color LaserJet Pro MFP M277".  This change was made thru ...../Accounts receivable/Setup/Forms/Form setup -> Print Management.

For those accounts without the override, this works as intended and we can see it has changed and the customer invoice prints to the new printer as intended.  However, for those accounts with the override for the email destination, it still shows the old destination printer "Canon MF4800 AZ" and fails when it tries to send to that no-longer-available printer.

We have discovered that, on and individual basis, we can resolve it as follows:

  1. Open the individual Customer record and go to Print Management
  2. Find the appropriate section with the original that has the override
  3. Right-click and Remove override
  4. View the destination printer for "AZ" and you will see it is now properly changed.
  5. Right-click again and add the Override
  6. View the destination printer for "AZ" and you will see it is still correct and all is well

Thanks for your patience so far, here are the questions:

  1. Is there a way to get all of the customer records that have the additional email setting that were not updated by the global change to do so?
  2. If not, is there a way in AX (query of some kind) to determine all of the customer records that have this situation (customer invoice with a copy (email) and original (printer) destinations) so that we can go thru the above process that we know will resolve it?

Any help with this matter would be greatly appreciated.

Thanks,

Shaun

*This post is locked for comments

I have the same question (0)
  • Sohaib Cheema Profile Picture
    49,443 User Group Leader on at

    There is possibility if you can do struggle

    Two tables have this information

    1. PrintMgmtDocInstance

    2. PrintMgmtSettings

       

      PrintMgmtDocInstance is kind of master table. Every time, you override print setting, it creates or modifies a record here in this table.

      Too find records of your interest you have to look at relationships of this tables. In your case as you are focused to Customers Printer Management setting so the record will be created here in this table with ReferenceTableId of CustTable and for each record of CustTable, you can filter it by RefernceRecId.

       

      Second Table actually contains the real destination settings.

      It has a field which is named as QueryPacked, which is container, this saves information of Print Management.

      Remove override, deletes record from both tables for specific record of customer.

       

       

      So, do courage and dive in to fix your issue, if you really have too many customer records in your system. Else go manually one by one.

       

  • Suggested answer
    Community Member Profile Picture
    on at

    This solution should help, Please see the Below reference URL: www.winfosoft.com/.../manipulating-printer-settings-with-x

  • sweigand Profile Picture
    on at

    Jason - Thank you for the reply, but I am looking to resolve it without code, for now.

    Sohaib - Thank you for the feedback.  i am close to understanding what you have said.  I am just struggling to see the join between the PRINTMGMTDOCINSTANCE table and the PRINTMGMTSETTINGS table?

    I have successfully joined the CustTable (RecID) to the PRINTMGMTDOCINSTANCE (REFERENCEDRECID).  How do I get to the PRINTMGMTSETTINGS  from there?

    Please advise,

    Shaun

  • Sohaib Cheema Profile Picture
    49,443 User Group Leader on at

    Relationships1.png

    PrintMgmtSettings.QueryPacked (which is a container) should be your target

  • sweigand Profile Picture
    on at

    HI Sohaib,

    Great!  I see my error as I was looking for the REFERENCEDRECID instead of the RECID.

    I now have the QueryPacked data, but it looks like a long string of characters (the container you referenced).  Is there a way (in SQL), translate it into usable data so I can see which of the results is the "bad" printer I am looking for (I have 10 results)?

    Much appreciated,

    Shaun

  • Sohaib Cheema Profile Picture
    49,443 User Group Leader on at

    To get  print setting you may do something as below

    FormLetterReport                formletterReport;
    PrintMgmtPrintSettingDetail     settingDetail;
    SRSPrintDestinationSettings     destination;
    CustConfirmJour                 jour;
        
    CustTable custTable;
    
    select jour where jour.RecId == 5637166349;
    select custTable where custTable.AccountNum == "SMCCust1";
    
    formLetterReport = FormLetterReport::Construct(PrintMgmtDocumentType::Confirmation);
    formLetterReport.parmPrintType(PrintCopyOriginal::Original);
    formLetterReport.loadPrintSettings(jour,custTable,jour.LanguageId);
        
        while(formletterReport.moveNextPrintSetting())
        {
            settingDetail = FormLetterReport.getCurrentPrintSetting();
            destination = settingDetail.parmPrintJobSettings();
            info(strFmt('printMediumType: %1',destination.printMediumType()));
            info(strFmt('numberOfCopies:  %1',destination.numberOfCopies()));
            info(strFmt('caption:  %1',destination.caption()));
            info(strFmt('deviceInfo:  %1',destination.deviceInfo()));
            info(strFmt('emailTo:  %1',destination.emailTo()));
            info(strFmt('fileFormat:  %1',destination.fileFormat()));
            info(strFmt('fileName:  %1',destination.fileName()));
            info(strFmt('printerName:  %1',destination.printerName()));
        }



    And to set print management you may use below for your inspiration

    http://axtricks.blogspot.com/2015/02/ax-2012-default-print-management.html

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Martin Dráb Profile Picture

Martin Dráb 4 Most Valuable Professional

#1
Priya_K Profile Picture

Priya_K 4

#3
MyDynamicsNAV Profile Picture

MyDynamicsNAV 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans