Question

I've got a scripted Calculation View, which I am trying to activate, however, everytime that I attempt activation I get the error "Undefined typeCode: -1.

The code is as follows:

/********* Begin Procedure Script ************/ 
BEGIN 

  vins = CE_OLAP_VIEW("_SYS_BIC"."wepredict.martyn.indico.automotive/AN_VEHICLESALES",
  ["CarlineID", "ModelYearID", "ProfileAge", SUM("NoOfVINs") AS "NoOfVINs"]);

  vins_proj = CE_PROJECTION(:vins, 
  ["CarlineID", "ModelYearID", "ProfileAge" AS "Day", "NoOfVINs"]);

  profiles = CE_CALC_VIEW("_SYS_BIC"."wepredict.martyn.indico.automotive/CA_PROFILES_CARLINECATEGORY",
  ["CarlineID", "CategoryID", "Day", "SeverityPercent"]);

  vin_svy_pcs = CE_JOIN(:vins_proj, :profiles, ["CarlineID", "CategoryID", "Day"],
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "Day", "NoOfVINs", "SeverityPercent"]);


  vin_earned_pos = CE_PROJECTION(:vin_svy_pcs, 
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "Day", "NoOfVINs", 
  "SeverityPercent" AS "Maturity",
  CE_CALC('("NoOfVINs" * "Maturity")', double) AS "EarnedPolicies"]);


  results = CE_AGGREGATION(:vin_earned_pos, 
  [SUM("NoOfVINs") AS "NoOfVINs", SUM("Maturity") AS "Maturity", SUM("EarnedPolicies") AS "EarnedPolicies"],
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID"]);


  var_out = CE_PROJECTION(:results,
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "NoOfVINs", "EarnedPolicies", "Maturity"]);

END /********* End Procedure Script ************/

The activation error is as follows:

ERROR      wepredict/martyn/indico/automotive/CA_EARNINGS_CARLINEMODELYEARCATEGORY.calculationview
           Internal deployment of object failed;Repository: Encountered an error in repository runtime extension;Internal Error:Deploy Calculation View: SQL: transaction rolled back by an internal error: Join attributes not found in variable: CategoryID: line 13 col 61 (at pos 763)
Set Schema DDL statement: set schema "SYSTEM"
Type DDL: create type "_SYS_BIC"."wepredict.martyn.indico.automotive/CA_EARNINGS_CARLINEMODELYEARCATEGORY/proc/tabletype/VAR_OUT" as table ("ManufacturerID" INTEGER, "CarlineID" INTEGER, "ModelYearID" INTEGER, "CategoryID" INTEGER, "NoOfVINs" INTEGER, "EarnedPolicies" DOUBLE, "Maturity" DOUBLE)
Procedure DDL: create procedure "_SYS_BIC"."wepredict.martyn.indico.automotive/CA_EARNINGS_CARLINEMODELYEARCATEGORY/proc" ( OUT var_out "_SYS_BIC"."wepredict.martyn.indico.automotive/CA_EARNINGS_CARLINEMODELYEARCATEGORY/proc/tabletype/VAR_OUT" ) language sqlscript sql security definer reads sql data as /********* Begin Procedure Script ************/ 
BEGIN 

  vins = CE_OLAP_VIEW("_SYS_BIC"."wepredict.martyn.indico.automotive/AN_VEHICLESALES",
  ["CarlineID", "ModelYearID", "ProfileAge", SUM("NoOfVINs") AS "NoOfVINs"]);

  vins_proj = CE_PROJECTION(:vins, 
  ["CarlineID", "ModelYearID", "ProfileAge" AS "Day", "NoOfVINs"]);

  profiles = CE_CALC_VIEW("_SYS_BIC"."wepredict.martyn.indico.automotive/CA_PROFILES_CARLINECATEGORY",
  ["CarlineID", "CategoryID", "Day", "SeverityPercent"]);

  vin_svy_pcs = CE_JOIN(:vins_proj, :profiles, ["CarlineID", "CategoryID", "Day"],
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "Day", "NoOfVINs", "SeverityPercent"]);


  vin_earned_pos = CE_PROJECTION(:vin_svy_pcs, 
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "Day", "NoOfVINs", 
  "SeverityPercent" AS "Maturity",
  CE_CALC('("NoOfVINs" * "Maturity")', double) AS "EarnedPolicies"]);


  results = CE_AGGREGATION(:vin_earned_pos, 
  [SUM("NoOfVINs") AS "NoOfVINs", SUM("Maturity") AS "Maturity", SUM("EarnedPolicies") AS "EarnedPolicies"],
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID"]);


  var_out = CE_PROJECTION(:results,
  ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "NoOfVINs", "EarnedPolicies", "Maturity"]);

END /********* End Procedure Script ************/

Please can anyone help me with what might be the problem and how to fix it?

Thanks very much,

Martyn.

Was it helpful?

Solution

CategoryID is not in vins_proj, so it cannot be joined on CategoryID in statement

vin_svy_pcs = CE_JOIN(:vins_proj, :profiles, ["CarlineID", "CategoryID", "Day"],
   ["ManufacturerID", "CarlineID", "ModelYearID", "CategoryID", "Day", "NoOfVINs",
   "SeverityPercent"]); 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top