Creating a method in a method to use multiple times in a same method (AX 2012/Ax7/D365)

Hi All, We saw many scenario's where in STD code method is written inside(child) the method of parent method, And inner method will be used multiple scenario's .

Take a quick example in the below code:


public static MDLDocuRefCopy(docuRef docuRef) 
{
 
      void copyDocuRef(DocuRef _docuRef,DocuRef _docuRefCopy)
      {
           if (_docuRefCopy)
           {
                ttsbegin;
                _docuRefCopy.selectForUpdate(true);
                _docuRefCopy.initValue();
                _docuRefCopy.ValueRecId          = _docuRef.ValueRecId;
                _docuRefCopy.Name                = _docuRef.Name;
                _docuRefCopy.TypeId              = _docuRef.TypeId;
                _docuRefCopy.Notes               = _docuRef.Notes;
                _docuRefCopy.RefCompanyId        = _docuRef.ActualCompanyId;
                _docuRefCopy.Restriction         = _docuRef.Restriction;
                _docuRefCopy.ContactPersonId     = _docuRef.ContactPersonId;
                _docuRefCopy.Party               = _docuRef.Party;
                _docuRefCopy.Author              = _docuRef.Author;
                _docuRefCopy.update();
                 ttscommit;
            }
        }
        switch (docuRef.RefTableId)
        {
            case tableNum(LedgerJournalTrans) :

                 select docuRefCopy
                     where docuRefCopy.MDLLedgerRefRecId == docuRef.RefRecId &&
                           docuRefCopy.MDLDocuRefRecId == docuRef.RecId &&
                        docuRefCopy.reftableID == tableNum(generalJournalAccountEntry) ;
                {
                    copyDocuRef(docuRefCopy,docuRef);
                }
                break;
            case tableNum(generalJournalAccountEntry) :

                select firstonly docuRefCopy
                    where docuRefCopy.MDLLedgerRefRecId == docuRef.RefRecId &&
                           docuRefCopy.MDLDocuRefRecId == docuRef.RecId &&
                    docuRefCopy.reftableID == tableNum(LedgerJournalTrans) ;

                  copyDocuRef(docuRefCopy,docuRef);
                break;

            default:
        }
        
}

No comments:

Post a Comment