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

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Suggested answer

Help me understand this Customized SSRS FreeTextInvoice. AOT objects and classes shared in post.

(0) ShareShare
ReportReport
Posted on by 197
Hello esteemed community members,
 
I have a request to restore FreeTextInvoice to the SSRS default.  I find the following evidence of customization, this is going to be VERY verbose, but I'm still not fully familiar with how this all works, and I figure this could be beneficial to others in the community. 
 
I want to know, how to I remove all WWIFreeTextInvoice functionality that has been customized?  
 
I get this sense of required extensions and classes, but I'm not 100% on how it all goes together at the moment.
 
Using the above as a guide, please see the screen captures below of what I found in my Code base, note our customizations have 'WWI' in their name.
 
Can I just delete all these AOT items?  I tried to find a 'delete' action for the User Interface > Menu Item Extensions > Output Extensions > *.WWIExtension
 
Overall AOT Objects:
 
Report Object:
 
Menu Item Extension:
 
Class: WWIFreeTextController
 
Data Model: Table Extensions: FreeTextInvoiceHeaderFooterTmp.Extension
 
 
I have the same question (0)
  • Suggested answer
    Martin Dráb Profile Picture
    236,958 Most Valuable Professional on at
    Remove Customized SSRS FreeTextInvoice by AOT objects on development system
    Yes, you can delete them, but "User Interface > Menu Item Extensions > Output Extensions" has nothing to do with F&O development.
     
    If you want to delete just some objects from WWIFinance module, you can delete them either from project or Source Control Explorer. If you want to use a project, create a new project for this model and add the objects there, or open the project where this feature was developed. Then simply highlight the objects, press Delete and then commit pending changes.
     
    If you want to delete the whole module, delete the folder from Source Control Explorer. (I'm assuming you're using TFVC for version control.)
  • jt1024 Profile Picture
    197 on at
    Remove Customized SSRS FreeTextInvoice by AOT objects on development system
    Hello Martin,
     
    Thanks again for your help, you're an asset to the community.
     
    I've been away from Visual Studio development work for a couple of months doing a system upgrade and testing, what you say reminded me of how to proceed, and reminded me of some bedrock basics ..
     
    I'll try that and report back.
  • jt1024 Profile Picture
    197 on at
    Help me understand this Customized SSRS FreeTextInvoice. AOT objects and classes shared in post.
    I've been back at this work for a couple of days now, and things are starting to make more sense, but I need help with a question:
     
    What is Class: WWIFreeTextController doing for the execution of the report.  I get it's testing for a couple negated conditions, but I do not know what it's doing here:
     
    public static void main(Args _args)
        {
            WWIFreeTextInvoiceController controller = new WWIFreeTextInvoiceController();
    
            if (!NonSSRSPrintMgmtAdapter::runPrintMgmtNonSSRS(PrintMgmtDocumentType::SalesFreeTextInvoice, _args))
            {
                return;
            }
    
            if (!CustInvoiceJourExtensionTH::canInvoiceBePrinted(_args))
            {
                return;
            }
    
            controller.parmReportName(PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesFreeTextInvoice).getDefaultReportFormat());
    
            controller.parmArgs(_args);
            controller.parmShowDialog(false);
            controller.startOperation();
        }
    Can anyone explain what is going on here:
    if (!NonSSRSPrintMgmtAdapter::runPrintMgmtNonSSRS(PrintMgmtDocumentType::SalesFreeTextInvoice, _args))
    and
    if (!CustInvoiceJourExtensionTH::canInvoiceBePrinted(_args))
     
    Thanks so much for any help anyone can provide.
  • Martin Dráb Profile Picture
    236,958 Most Valuable Professional on at
    Help me understand this Customized SSRS FreeTextInvoice. AOT objects and classes shared in post.
    The first one seems to check that print management is going to be used.
     
    The second is something from the Thai localization checking if the invoice can be printed. Open the method if you're interested in details; there you'll see documentation comments and the actual code.
  • jt1024 Profile Picture
    197 on at
    Help me understand this Customized SSRS FreeTextInvoice. AOT objects and classes shared in post.
    Hello Martin,
    Thanks again for your input.
     
    Question whyn you say open the method, how do I identify the model to find the method in this string of text?
    'if (!CustInvoiceJourExtensionTH::canInvoiceBePrinted(_args))'
     
    - Jim
  • Martin Dráb Profile Picture
    236,958 Most Valuable Professional on at
    Help me understand this Customized SSRS FreeTextInvoice. AOT objects and classes shared in post.
    Just highlight the method in the code editor and press F12 to navigate to its definition.
     
    If you're interested in the model, find the class in Application Explorer and notice the model name beside the object name. Note that you can use the search box on the top of Application Explorer. For example, CustInvoiceJourExtensionTH finds all objects containing CustInvoiceJourExtensionTH in the name. ^CustInvoiceJourExtensionTH$ will give you only objects that are called exactly CustInvoiceJourExtensionTH.

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…

Pallavi Phade – Community Spotlight

We are honored to recognize Pallavi Phade as our Community Spotlight honoree for…

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 724 Super User 2025 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 580 Most Valuable Professional

#3
CA Neeraj Kumar Profile Picture

CA Neeraj Kumar 554

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans