Page 1 of 1

compile transformer error when a constraint is used

Posted: Sat Jun 07, 2008 10:40 am
by kirankota79
Hi,

i am getting the compilation error when i use a constraint in the transformer .
The constraint is a null constraint and i am using the function Isnull or Isnotnull on a particular column. what could be the reason?


Thanks

Posted: Sat Jun 07, 2008 11:09 am
by chulett
Perhaps if you posted both the constraint and the compiler error it generates?

Posted: Sat Jun 07, 2008 12:02 pm
by kirankota79
the constraint is

isnotnull(trim(ToNullTransformer.STATE))


error is

Output from transformer compilation follows:

##I TFCN 000001 14:02:13(000) <main_program>
Ascential DataStage(tm) Enterprise Edition 7.5
Copyright (c) 2004, 1997-2004 Ascential Software Corporation.
All Rights Reserved


##I TOSH 000002 14:02:13(001) <main_program> orchgeneral: loaded
##I TOSH 000002 14:02:13(002) <main_program> orchsort: loaded
##I TOSH 000002 14:02:13(003) <main_program> orchstats: loaded
##W TFPA 000012 14:02:13(006) <main_program> Warning: the PWD environment variable is not defined. Remote process startup may be unsuccessful as a result.If your ORCHESTRATE job does not start up correctly, please set your PWD variable to a value that will work on all nodes of your system.
##F TFPM 000281 14:02:13(008) <main_program> Fatal Error: Caught unknown exception in main program: terminating.
(PS_BANK_BRANCH_TBL2.NullTransformer)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S1_repos_NullTransformer transform operator.
0003: //
0004:
0005: // define external functions used
0006: extern string convertaddress(string inaddress,string outaddress);
0007: extern string convertbank(string inbankcd,string outbankcd);
0008:
0009: // define our input/output link names
0010: inputname 0 ToNullTransformer;
0011: outputname 0 ToMaskState;
0012:
0013: initialize {
0014: // define our row rejected variable
0015: int8 RowRejected0;
0016:
0017: // define our null set variable
0018: int8 NullSetVar0;
0019:
0020: // Stage variable declaration and initialisation
0021: string StageVar0_Address1Convert;
0022: StageVar0_Address1Convert = "";
0023: string StageVar0_CityConvert;
0024: StageVar0_CityConvert = "";
0025: string StageVar0_CountyConvert;
0026: StageVar0_CountyConvert = "";
0027: string StageVar0_PostalConvert;
0028: StageVar0_PostalConvert = "";
0029: string StageVar0_BankConvert;
0030: StageVar0_BankConvert = "";
0031: string StageVar0_PhoneConvert;
0032: StageVar0_PhoneConvert = "";
0033: }
0034:
0035: mainloop {
0036: // initialise our row rejected variable
0037: RowRejected0 = 1;
0038:
0039: // declare our intermediate variables for this section
0040: string InterVar0_0;
0041:
0042: // evaluate the stage variables first
0043: InterVar0_0 = convertaddress(ToNullTransformer.ADDRESS1 , StageVar0_Address1Convert);
0044: StageVar0_Address1Convert = InterVar0_0;
0045: InterVar0_0 = convertaddress(ToNullTransformer.CITY , StageVar0_CityConvert);
0046: StageVar0_CityConvert = InterVar0_0;
0047: InterVar0_0 = convertaddress(ToNullTransformer.COUNTY , StageVar0_CountyConvert);
0048: StageVar0_CountyConvert = InterVar0_0;
0049: InterVar0_0 = convertaddress(ToNullTransformer.POSTAL , StageVar0_PostalConvert);
0050: StageVar0_PostalConvert = InterVar0_0;
0051: InterVar0_0 = convertbank(ToNullTransformer.BANK_CD , StageVar0_BankConvert);
0052: StageVar0_BankConvert = InterVar0_0;
0053: InterVar0_0 = convertaddress(ToNullTransformer.PHONE , StageVar0_PhoneConvert);
0054: StageVar0_PhoneConvert = InterVar0_0;
0055:
0056: // evaluate constraint and columns for link: ToMaskState
0057: if (notnull(trimc_string(ToNullTransformer.STATE)))
0058: {
0059: ToMaskState.BANK_CD = StageVar0_BankConvert;
0060: ToMaskState.ADDRESS1 = StageVar0_Address1Convert;
0061: ToMaskState.CITY = StageVar0_CityConvert;
0062: ToMaskState.COUNTY = StageVar0_CountyConvert;
0063: ToMaskState.STATE = trimc_string(ToNullTransformer.STATE);
0064: ToMaskState.POSTAL = StageVar0_PostalConvert;
0065: ToMaskState.PHONE = StageVar0_PhoneConvert;
0066: writerecord 0;
0067: RowRejected0 = 0;
0068: }
0069: }
0070:
0071: finish {
0072: }
0073:
*** End of Internal Generated Transformer Code

Posted: Sat Jun 07, 2008 12:44 pm
by Minhajuddin
Do a Trim(IsNotNull()) instead of a IsNotNull(Trim())

Posted: Sat Jun 07, 2008 6:31 pm
by keshav0307
because you can not trim a null value