Difference between revisions of "ADE Server Class Reference"

 
Line 1: Line 1:
#REDIRECT [[Analytica Decision Engine (ADE) API]]
+
[[Category:ADE User Guide]]
 +
[[ADE User Guide]] >
 +
 
 +
The five ADE server classes are [[CAEngine]], [[CAObject]], [[CATable]], [[CAIndex]], and [[CARenderingStyle]]. They are listed below in that order, with a complete description of the properties and methods of each class.
 +
 
 +
=[[CAEngine]] =
 +
==Creation==
 +
 
 +
Use of ADE really starts with the creation of a [[CAEngine]] object, from which all else flows.  If you are using the ADEW.dll in-process server, you can only create and use one [[CAEngine]] instance.  If you are using the ADE.exe out-of-process server, you may create as many [[CAEngine]] instances as you desire, each one running as a separate process.  In web-based applications, a separate [[CAEngine]] instance is typically created for each user session.  Each [[CAEngine]] instance can have one model loaded at a time.
 +
 
 +
You can either create a [[CAEngine]] instance directly, or by calling [[CALicense::NewCAEngine]]().  The later method requires you to first create a [[CALicense]] instance, but has the advantage that you can obtain further information about the cause of failure when creation fails.  Direct creation of [[CAEngine]] will fail if the license to use ADE on the given computer is invalid, expired, etc.
 +
 
 +
See [[CAEngine]] for language-specific details.
 +
 
 +
==Properties==
 +
* {get,put} string [[CAEngine::Command|Command]]
 +
* {get,put} CAObject [[CAEngine::CurrentModule|CurrentModule]]
 +
* {get,put} [[CARenderingStyle]] [[CAEngine::DefaultDefTableRenderingStyle|DefaultDefTableRenderingStyle]]
 +
* {get,put} [[CARenderingStyle]] [[CAEngine::DefaultRenderingStyle|DefaultRenderingStyle]]
 +
* {get,put} long [[CAEngine::DefaultEvaluationTimeLimit|DefaultEvaluationTimeLimit]]
 +
* {get} short int [[CAEngine::ErrorCode|ErrorCode]]
 +
* {get} string [[CAEngine::ErrorText|ErrorText]]
 +
* {get,put} unsigned long [[CAEngine::Flags|Flags]]
 +
* {get} string [[CAEngine::Log|Log]]
 +
* {get} string [[CAEngine::OutputBuffer|OutputBuffer]]
 +
* {get,put} bool [[CAEngine::Photo|Photo]]
 +
 
 +
==Methods==
 +
* string [[CAEngine::AddModule|AddModule]](string filePath,bool Merge)
 +
* bool [[CAEngine::CloseModel|CloseModel]]()
 +
* [[CAObject]] [[CAEngine::CreateObject|CreateObject]](string objName, string objType)
 +
* bool [[CAEngine::CreateModel|CreateModel]](string newModelName)
 +
* bool [[CAEngine::DeleteObject|DeleteObject]]( [[CAObject]] aObject )
 +
* [[CAObject]] [[CAEngine::Get|Get]](string objName)
 +
* [[CAObject]] [[CAEngine::GetObjectByName|GetObjectByName]](string objName)
 +
* bool [[CAEngine::MonitorProcess|MonitorProcess]](long pid)
 +
* string [[CAEngine::OpenModel|OpenModel]](string filepath)
 +
* bool [[CAEngine::ReadScript|ReadScript]](string filePath)
 +
* void [[CAEngine::ResetError|ResetError]]()
 +
* bool [[CAEngine::SaveModel|SaveModel]](string filePath)
 +
* bool [[CAEngine::SaveModuleFile|SaveModuleFile]](string moduleName, string filePath)
 +
* bool [[CAEngine::Send|Send]]()
 +
* bool [[CAEngine::SendCommand|SendCommand]](string command)
 +
* bool [[CAEngine::SetCallbackObject|SetCallbackObject]](IUnknown* pObj)
 +
 
 +
= [[CAObject]] =
 +
==Creation==
 +
 
 +
A [[CAObject]] instances cannot be created directly.  You must obtain a [[CAObject]] as the return results of other methods.  The most common method used to obtain a [[CAObject]] is [[CAEngine::GetObjectByName]] (or its synonym, [[CAEngine::Get]]). 
 +
 
 +
==Properties==
 +
* {get,put} string [[CAObject::ClassType|ClassType]]
 +
* {get} short int [[CAObject::DefinitionType|DefinitionType]]
 +
* {get,put} long [[CAObject::MethodEvaluationTimeLimit|MethodEvaluationTimeLimit]]
 +
* {get,put} string [[CAObject::Name|Name]]
 +
* {get,put} [[CARenderingStyle]] [[CAObject::RenderingStyle|RenderingStyle]]
 +
* {get,put} short int [[CAObject::ResultType|ResultType]]
 +
 
 +
==Methods==
 +
 
 +
* bool [[CAObject::CreateDefTable|CreateDefTable]](SAFEARRAY indexArray)
 +
* [[CATable]] [[CAObject::DefTable|DefTable]]()
 +
* [[CATable]] [[CAObject::Evaluate|Evaluate]](string expression)
 +
* variant [[CAObject::GetAttribute|GetAttribute]](string attName)
 +
* bool [[CAObject::PictureToFile|PictureToFile]](string fileName, string mimeType)
 +
* bool [[CAObject::PictureToStream|PictureToStream]](IStream stream, string mimeType)
 +
* variant [[CAObject::Result|Result]]()
 +
* [[CATable]] [[CAObject::ResultTable|ResultTable]]()
 +
* bool [[CAObject::SetAttribute|SetAttribute]](string attName, variant attValue)
 +
 
 +
= [[CATable]] =
 +
==Creation==
 +
==Properties==
 +
* {get,put} int [[CATable::GraphHeight|GraphHeight]]
 +
* {get,put} int [[CATable::GraphWidth|GraphWidth]]
 +
* {get,put} bool [[CATable::GraphWithStoredPivot|GraphWithStoredPivot]]
 +
* {get} variant [[CATable::IndexNames|IndexNames]]
 +
* {get,put} string [[CATable::Name|Name]]
 +
* {get} short int [[CATable::NumDims|NumDims]]
 +
* {get,put} [[CARenderingStyle]] [[CATable::RenderingStyle|RenderingStyle]]
 +
* {get,put} short int [[CATable::ResultType|ResultType]]
 +
* {get,put} string [[CATable::TableType|TableType]]
 +
 
 +
==Methods==
 +
* variant [[CATable::AtomicValue|AtomicValue]]()
 +
* variant [[CATable::GetDataByElements|GetDataByElements]](variant indexPtrs)
 +
* variant [[CATable::GetDataByLabels|GetDataByLabels]](variant indexLabels)
 +
* [[CAIndex]] [[CATable::GetIndexObject|GetIndexObject]](string indexName)
 +
* variant [[CATable::GetSafeArray|GetSafeArray]]()
 +
* bool [[CATable::GraphToFile|GraphToFile]](string fileName, string mimeType)
 +
* bool [[CATable::GraphToStream|GraphToStream]](IStream stream, string mimeType)
 +
* string [[CATable::IndexName|IndexName]](short int indexNum)
 +
* bool [[CATable::ObtainTable|ObtainTable]]()
 +
* bool [[CATable::PutSafeArray|PutSafeArray]](variant theVal)
 +
* bool [[CATable::SetDataByElements|SetDataByElements]](variant elementValue, variant indexPtrs)
 +
* bool [[CATable::SetDataByLabels|SetDataByLabels]](variant elementValue, variant indexLabels)
 +
* bool [[CATable::SetIndexOrder|SetIndexOrder]](SAFEARRAY<string> indexArray)
 +
* [[CATable]] [[CATable::Slice|Slice]]([[CAIndex]] index, int i)
 +
* [[CATable]] [[CATable::Subscript|Subscript]]([[CAIndex]] index, variant label)
 +
* bool [[CATable::Update|Update]]()
 +
 
 +
= [[CAIndex]] =
 +
==Creation==
 +
==Properties==
 +
* {get} long [[CAIndex::IndexElements|IndexElements]]
 +
* {get,put} string [[CAIndex::Name|Name]]
 +
* {get,put} [[CARenderingStyle]] [[CAIndex::RenderingStyle|RenderingStyle]]
 +
 
 +
==Methods==
 +
* long [[CAIndex::GetNumberByValue|GetNumberByValue]](variant val)
 +
* variant [[CAIndex::GetValueByNumber|GetValueByNumber]](long i)
 +
* bool [[CAIndex::ObtainIndex|ObtainIndex]](string indName)
 +
 
 +
= [[CARenderingStyle]] =
 +
==Creation==
 +
==Properties==
 +
* {get,put} bool [[CARenderingStyle::FullPrecision|FullPrecision]]
 +
* {get,put} bool [[CARenderingStyle::GeneralExpression|GeneralExpression]]
 +
* {get,put} short [[CARenderingStyle::HandleFormat|HandleFormat]]
 +
* {get,put} bool [[CARenderingStyle::NewLineAsCRLF|NewLineAsCRLF]]
 +
* {get,put} variant [[CARenderingStyle::NullValue|NullValue]]
 +
* {get,put} bool [[CARenderingStyle::NumberAsText|NumberAsText]]
 +
* {get,put} bool [[CARenderingStyle::ReferenceAsText|ReferenceAsText]]
 +
* {get,put} long [[CARenderingStyle::SafeArrayLowerBound|SafeArrayLowerBound]]
 +
* {get,put} short [[CARenderingStyle::StringQuotes|StringQuotes]]
 +
* {get,put} variant [[CARenderingStyle::UndefValue|UndefValue]]
 +
* {get,put} short [[CARenderingStyle::VarTermFormat|VarTermFormat]]
 +
 
 +
==Methods==
 +
 
 +
''none''
 +
 
 +
= [[CALicense]] =
 +
==Creation==
 +
==Properties==
 +
* {get} long [[CALicense::AvailableLicenseInstances|AvailableLicenseInstances]]
 +
* {get} bool [[CALicense::CanUseOptimizer|CanUseOptimizer]]
 +
* {get} short int [[CALicense::ErrorCode|ErrorCode]]
 +
* {get} string [[CALicense::ErrorText|ErrorText]]
 +
* {get} long [[CALicense::MaxLicenseInstances|MaxLicenseInstances]]
 +
* {get} string [[CALicense::RlmHostId|RlmHostId]]
 +
* {get} string [[CALicense::RlmPath|RlmPath]]
 +
* {get} string [[CALicense::RlmUserId|RlmUserId]]
 +
 
 +
==Methods==
 +
* [[CAEngine]] [[CALicense::NewCAEngine|NewCAEngine]]()
 +
* void [[CALicense::SetApplicationLicenseCode|SetApplicationLicenseCode]](string)
 +
 
 +
= [[IAdeUICallbacks]] =
 +
 
 +
''New to [[Analytica 4.6|ADE 4.6]]''
 +
 
 +
This interface allows you to implement callbacks that are called when Analytica functions requiring user input are evaluated. You can implement these callbacks to support these user interface interactions in your own application. In many cases, the name of each method corresponds fairly directly with the name of the Analytica function that produces the user interaction.
 +
 
 +
When your application does not implement this interface, most of the functions requiring user interaction will do nothing when evaluated in ADE.
 +
 
 +
The "IAde" prefix stands for "Interface ADE".  Your own code can define a class that subclasses this interface and implements its method, and then pass it to [[CAEngine::SetCallbackObject]].
 +
 
 +
== Methods ==
 +
 
 +
* long [[IAdeUICallbacks::MsgBox|MsgBox]]([in] string title, [in] string text, [in] long buttons)
 +
* bool [[IAdeUICallbacks::ShowProgressBar|ShowProgressBar]]([in] string title, [in] string text, [in] double p)
 +
* void [[IAdeUICallbacks::HideProgressBar|HideProgressBar]]()
 +
* string [[IAdeUICallbacks::AskMsgText|AskMsgText]]([in] string question, [in] string title, [in] long maxText, [in] string defaultText, [in] bool bPassword, [out] bool* bCancel)
 +
* double [[IAdeUICallbacks::AskMsgNumber|AskMsgNumber]]([in] string question, [in] BSTR title, [in] bool bShowDefault, [in] double defaultNumber, [out] bool* bCancel)
 +
* long [[IAdeUICallbacks::AskMsgChoice|AskMsgChoice]](([in] string question, [in] BSTR title, [in] array<string> optionList, [in] long defaultPosition, [in] bool bShowAll, [out] bool* bCancel)
 +
* string [[IAdeUICallbacks::AskMsgComboBox|AskMsgComboBox]]([in] string question, [in] string title, [in] array<string> optionList, [in] string defaultText, [in] bool bShowAll, [out] bool* bCancel)
 +
* string [[IAdeUICallbacks::GetFilename|GetFilename]]([in] string function, [in] string defaultName, [in] string directory, [in] string extensions, [in] string caption, [in] [[CAObject]]* callingIdent)
 +
* void [[IAdeUICallbacks::FileOpenCompleted|FileOpenCompleted]]([in] string function, [in] string fullFilePath)
 +
* void [[IAdeUICallbacks::ShowPdfFile|ShowPdfFile]]([in] string filepath, [in] string bookmark, [in] bool bSearch, [in] bool bBookmarks)
 +
* void [[IAdeUICallbacks::OpenURL|OpenURL]]([in] string url, [in] string window, [in] string specs)
 +
 
 +
= Examples =
 +
 
 +
 
 +
== PHP ==
 +
 
 +
The attached PHP script:
 +
#Creates an instance of ADE.
 +
#Creates a new model.
 +
#Creates a Variable Object.
 +
#Modifies the definition of the created Variable to '4+1*7'.
 +
#Get the result back from the created object and prints it out.
 +
#Saves the created model to a file 'TestModel.ana' in the current directory.
 +
#Closes the model.
 +
 
 +
<?php
 +
    $currentPath = getcwd()."\\";
 +
    $ade = new COM("ADE4.CAEngine") or die("Unable to instantiate ADE");
 +
    echo "ADE successfully loaded.\n";
 +
    $modelCreated = $ade->CreateModel("MyNewModel");
 +
    if($modelCreated == true){
 +
        echo "Model successfully created.\n";
 +
 +
        $newObject = $ade->CreateObject("MyVariable", "Variable");
 +
        $newObject->SetAttribute("Definition", "4+1*7");
 +
 +
        $result = $newObject->Result();
 +
        echo "The new object's result is: ". $result .".\n";
 +
 +
        $ade->SaveModel($currentPath."TestModel.ana");
 +
        $ade->CloseModel();
 +
        echo "Model succussfully closed.\n\n";
 +
    }
 +
    else{
 +
        echo "Model creation failed.\n\n";
 +
    }
 +
?>
 +
 
 +
= See Also =
 +
 
 +
* [[:Category:ADE Classes]]
 +
* [[:Category:ADE Methods]]
 +
* [[:Category:Typescript Commands]]
 +
* [[Analytica Scripting Guide]]
 +
 
 +
 
 +
==See Also==
 +
{| style="margin: 1em auto 1em auto;width: 100%;border:0;table-layout: fixed;" cellpadding=5
 +
|- style="text-align: center"
 +
|  [[Working with Models, Modules, and Files in ADE]] <-  ||  [[Analytica Decision Engine (ADE) API | ADE Server Class Reference]] || ->

Revision as of 02:49, 2 June 2015

ADE User Guide >

The five ADE server classes are CAEngine, CAObject, CATable, CAIndex, and CARenderingStyle. They are listed below in that order, with a complete description of the properties and methods of each class.

CAEngine

Creation

Use of ADE really starts with the creation of a CAEngine object, from which all else flows. If you are using the ADEW.dll in-process server, you can only create and use one CAEngine instance. If you are using the ADE.exe out-of-process server, you may create as many CAEngine instances as you desire, each one running as a separate process. In web-based applications, a separate CAEngine instance is typically created for each user session. Each CAEngine instance can have one model loaded at a time.

You can either create a CAEngine instance directly, or by calling CALicense::NewCAEngine(). The later method requires you to first create a CALicense instance, but has the advantage that you can obtain further information about the cause of failure when creation fails. Direct creation of CAEngine will fail if the license to use ADE on the given computer is invalid, expired, etc.

See CAEngine for language-specific details.

Properties

Methods

CAObject

Creation

A CAObject instances cannot be created directly. You must obtain a CAObject as the return results of other methods. The most common method used to obtain a CAObject is CAEngine::GetObjectByName (or its synonym, CAEngine::Get).

Properties

Methods

CATable

Creation

Properties

Methods

CAIndex

Creation

Properties

Methods

CARenderingStyle

Creation

Properties

Methods

none

CALicense

Creation

Properties

Methods

IAdeUICallbacks

New to ADE 4.6

This interface allows you to implement callbacks that are called when Analytica functions requiring user input are evaluated. You can implement these callbacks to support these user interface interactions in your own application. In many cases, the name of each method corresponds fairly directly with the name of the Analytica function that produces the user interaction.

When your application does not implement this interface, most of the functions requiring user interaction will do nothing when evaluated in ADE.

The "IAde" prefix stands for "Interface ADE". Your own code can define a class that subclasses this interface and implements its method, and then pass it to CAEngine::SetCallbackObject.

Methods

  • long MsgBox([in] string title, [in] string text, [in] long buttons)
  • bool ShowProgressBar([in] string title, [in] string text, [in] double p)
  • void HideProgressBar()
  • string AskMsgText([in] string question, [in] string title, [in] long maxText, [in] string defaultText, [in] bool bPassword, [out] bool* bCancel)
  • double AskMsgNumber([in] string question, [in] BSTR title, [in] bool bShowDefault, [in] double defaultNumber, [out] bool* bCancel)
  • long AskMsgChoice(([in] string question, [in] BSTR title, [in] array<string> optionList, [in] long defaultPosition, [in] bool bShowAll, [out] bool* bCancel)
  • string AskMsgComboBox([in] string question, [in] string title, [in] array<string> optionList, [in] string defaultText, [in] bool bShowAll, [out] bool* bCancel)
  • string GetFilename([in] string function, [in] string defaultName, [in] string directory, [in] string extensions, [in] string caption, [in] CAObject* callingIdent)
  • void FileOpenCompleted([in] string function, [in] string fullFilePath)
  • void ShowPdfFile([in] string filepath, [in] string bookmark, [in] bool bSearch, [in] bool bBookmarks)
  • void OpenURL([in] string url, [in] string window, [in] string specs)

Examples

PHP

The attached PHP script:

  1. Creates an instance of ADE.
  2. Creates a new model.
  3. Creates a Variable Object.
  4. Modifies the definition of the created Variable to '4+1*7'.
  5. Get the result back from the created object and prints it out.
  6. Saves the created model to a file 'TestModel.ana' in the current directory.
  7. Closes the model.
<?php
    $currentPath = getcwd()."\\";
    $ade = new COM("ADE4.CAEngine") or die("Unable to instantiate ADE");
    echo "ADE successfully loaded.\n";
    $modelCreated = $ade->CreateModel("MyNewModel");
    if($modelCreated == true){
        echo "Model successfully created.\n";

        $newObject = $ade->CreateObject("MyVariable", "Variable");
        $newObject->SetAttribute("Definition", "4+1*7");

        $result = $newObject->Result();
        echo "The new object's result is: ". $result .".\n";

        $ade->SaveModel($currentPath."TestModel.ana");
        $ade->CloseModel();
        echo "Model succussfully closed.\n\n";
    }
    else{
        echo "Model creation failed.\n\n";
    }
?>

See Also


See Also

Working with Models, Modules, and Files in ADE <- ADE Server Class Reference ->
Comments


You are not allowed to post comments.