static void
GetAxdClassNameByServiceName(Args _args)
{
   
#avifiles
   
str                     mySearchAxdName = "AxdCountingJournal"; //Change this to your Axd class name
   
List                    list;
   
ListEnumerator         
listEnumerator;
   
SysDictClass           
sysDictClass, serviceDictClass;
   
AxdWizardParameters    
axdWizardParameters;
   
int                     progressTotal,
progressCount;
   
SysOperationProgress   
progressBar;
   
sysDictClass = new
SysDictClass(classnum(AifDocumentService));
   
list = sysDictClass.extendedBy();
   
progressTotal = list.elements();
   
progressBar   =
SysOperationProgress::newGeneral(#aviUpdate, 'Axd/service
class search', progressTotal);
   
listEnumerator = list.getEnumerator();
   
while
(listEnumerator.moveNext())
   
{
        serviceDictClass = new SysDictClass(listEnumerator.current());
        progressCount++;
        progressBar.incCount();
        progressBar.setText(strfmt("Searching:
%1 of %2 (%3)", progressCount, progressTotal,
serviceDictClass.name()));        
        progressBar.update(true);
        if
(serviceDictClass.id() != classNum(AifGenericDocumentService))
        {
            axdWizardParameters =
AifServiceClassGenerator::getServiceParameters(serviceDictClass.name());
            if(axdWizardParameters
&& axdWizardParameters.parmName() == mySearchAxdName)
            {
                info(strFmt("Aif service class
name: %1", axdWizardParameters.parmAifServiceClassName()));
                info(strFmt("Document name:
%1", axdWizardParameters.parmAifEntityClassName()));
                info(strFmt("Axd name:
%1", axdWizardParameters.parmName()));
                info(strFmt("Query name: %1",
axdWizardParameters.parmQueryName()));
                break;
            }
        }
   
}
   
/*
    //Use this if you know the Document class
name and wanted to find the Axd class name
    str                     documentClassName =
"LedgerGeneralJournal";
    SysDictClass            documentDictClass;
    AifDocument             documentInstance;
    AxdBase                 axdBase;
    documentDictClass = new
SysDictClass(className2Id(documentClassName));
    documentInstance =
documentDictClass.makeObject();
    axdBase =
documentInstance.getAxdInstance();
    info(strFmt("Document name: %1",
documentClassName));
    info(strFmt("Axd name: %1",
classId2Name(classIdGet(axdBase))));
    info(strFmt("Query name: %1",
axdBase.getQueryName()));
    */
} 
No comments:
Post a Comment