This topic includes examples of requests for listing, adding, deleting, and validating entities.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.endeca.com/endeca-server/sconfig/1/0"> <soapenv:Header/> <soapenv:Body> <ns:listEntities> </ns:listEntities> </soapenv:Body> </soapenv:Envelope>
The response to this request returns a list of entities that are already added, including the base entity added by the Oracle Endeca Server for each PDR describing an existing attribute in your data store.
<listEntitiesResponse xmlns="http://www.endeca.com/endeca-server/sconfig/1/0"> <semanticEntity key="Transactions" displayName="Transactions"> <definition>/*Calculate Total Sales respecting Navigation*/ DEFINE GlobalSales as select sum(FactSales_SalesAmount) AS TotalSales Group; DEFINE Transactions AS SELECT FactSales_SalesAmount AS "FactSales_SalesAmount", DimReseller_ProductLine AS "DimReseller_ProductLine", DimSalesTerritory_SalesTerritoryCountry AS "DimSalesTerritory_SalesTerritoryCountry", DimDate_FiscalYear AS "DimDate_FiscalYear", ProductSubcategoryName AS "ProductSubcategoryName", DimReseller_ResellerName AS "DimReseller_ResellerName", DimEmployee_FullName AS "DimEmployee_FullName", ProductCategoryName AS "ProductCategoryName", DimDate_FiscalSemester AS DimDate_FiscalSemester, DimDate_FiscalQuarter AS DimDate_FiscalQuarter, DimSalesTerritory_SalesTerritoryRegion AS DimSalesTerritory_SalesTerritoryRegion, DimDate_FiscalYear*100+DimDate_MonthNumberOfYear as "Year-Month" </definition><description>Sales Transaction Line Items</description> ... </semanticEntity>
<attributes> <semanticAttribute name="DimDate_FiscalQuarter" displayName="Fiscal Quarter" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="DimDate_FiscalSemester" displayName="Fiscal Semester" datatype="mdex:int" isDimension="true"/> <semanticAttribute name="DimDate_FiscalYear" displayName="Fiscal Year" datatype="mdex:int" isDimension="true"/> <semanticAttribute name="DimEmployee_FullName" displayName="Employee Name" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="DimReseller_ProductLine" displayName="Product Line" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="DimReseller_ResellerName" displayName="Reseller Name" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="DimSalesTerritory_SalesTerritoryCountry" displayName="Sale Country" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="DimSalesTerritory_SalesTerritoryRegion" displayName="Sales Region" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="FactSales_SalesAmount" displayName="Sales Amount" datatype="mdex:double" isDimension="false"/> <semanticAttribute name="ProductCategoryName" displayName="Product Category" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="ProductSubcategoryName" displayName="Product Subcategory" datatype="mdex:string" isDimension="true"/> <semanticAttribute name="Year-Month" displayName="Year - Month" datatype="mdex:long" isDimension="true"/> </attributes>
<metrics> <metric name="SalesShare" displayName="Sales Share" datatype="mdex:double" description="Ratio of Total Sales of the Group to Total Sales of All Groups"> <definition>sum(FactSales_SalesAmount)/GlobalSales[].TotalSales </definition> </metric> </metrics>
Before adding an entity, it is useful to validate the syntax of the EQL statements in the entity definition.
<ns:validateEntity> <ns:semanticEntity key="Sales" displayName="Sales"> ... </ns:semanticEntity> </ns:validateEntity>If the request validates successfully, validateEntityResponse does not contain errors.
You can add one entity using a putEntity operation, or add multiple entities using putEntities.
<ns:putEntities><ns:semanticEntity key="Sales" displayName="Sales"> <ns:definition> DEFINE Sales AS SELECT FactSales_SalesAmount AS SalesAmount, DimReseller_ProductLine AS ProductLine, DimSalesTerritory_SalesTerritoryCountry AS SalesTerritoryCountry, DimDate_FiscalYear AS FiscalYear, FactSales_SalesOrderNumber AS SaleOrderNumber </ns:definition> <ns:attributes> <ns:semanticAttribute name="SalesAmount" displayName="Sales Amount" datatype="mdex:double" isDimension="false"/> <ns:semanticAttribute name="ProductLine" displayName="Product Line" datatype="mdex:string" isDimension="true"/> <ns:semanticAttribute name="SalesTerritoryCountry" displayName="Sales Territory Country" datatype="mdex:string" isDimension="true"/> <ns:semanticAttribute name="FiscalYear" displayName="Year" datatype="mdex:int" isDimension="true" /> <ns:semanticAttribute name="SaleOrderNumber" displayName="Sale Order Number" datatype="mdex:string" isDimension="false"/> </ns:attributes> <ns:metrics> <ns:metric name="TotalSales" displayName="Total Sale" datatype="mdex:double"> <ns:definition>sum(SalesAmount)</ns:definition> </ns:metric> <ns:metric name="AvgSales" displayName="Average Sale" datatype="mdex:double"> <ns:definition>avg(SalesAmount)</ns:definition> </ns:metric> </ns:metrics> </ns:semanticEntity> </ns:putEntities>
<putEntitiesResponse xmlns="http://www.endeca.com/endeca-server/sconfig/1/0"> <entityAdditionInformation numEntitiesAdded="1" numEntitiesReplaced="0"/> </putEntitiesResponse>
You cannot add or replace the base entity.
<ns:deleteEntities> <ns:semanticEntityKey key="Sales"/> </ns:deleteEntities>The response indicates the number of entities deleted:
<deleteEntitiesResponse xmlns="http://www.endeca.com/endeca-server/sconfig/1/0"> <numEntitiesDeleted>1</numEntitiesDeleted> </deleteEntitiesResponse>
You cannot delete the base entity.