Skip to main content

Notifications

Announcements

No record found.

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 185
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
 
 
  • Martin Dráb Profile Picture
    Martin Dráb 230,433 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.
  • jt1024 Profile Picture
    jt1024 185 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
    Martin Dráb 230,433 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
    jt1024 185 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.
  • jt1024 Profile Picture
    jt1024 185 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.
  • Suggested answer
    Martin Dráb Profile Picture
    Martin Dráb 230,433 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.)

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

Congratulations 2024 Spotlight Honorees

Kudos to all of our 2024 community stars! 🎉

Meet the Top 10 leaders for December

Congratulations to our December super stars! 🥳

Start Your Super User Journey

Join the ranks of our community heros! 🦹

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,703 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,433 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans