Internal Error: (nullFieldEntry) in Transformer

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
yogi_yogesh
Participant
Posts: 5
Joined: Wed Apr 27, 2005 1:13 pm

Internal Error: (nullFieldEntry) in Transformer

Post by yogi_yogesh »

I get the following error while compiling my job with only noticable error message being -- ##F TUXX 000001 13:24:57(002) <main_program> Internal Error: (nullFieldEntry): transform/evalexp.C: 5568

Any ideas when/why this is caused!!!

---------------------------------------------------------------------------------

Output from transformer compilation follows:

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


##I TUTL 000031 13:24:56(001) <main_program> The open files limit is 2000; raising to 2147483647.
##I TOSH 000002 13:24:56(002) <main_program> orchgeneral: loaded
##I TOSH 000002 13:24:56(003) <main_program> orchsort: loaded
##I TOSH 000002 13:24:56(004) <main_program> orchstats: loaded
##I TFSC 000001 13:24:56(007) <main_program> APT configuration file: /app/dstg/Ascential/DataStage/Configurations/PM_Config_PX.apt
##W TCOS 000049 13:24:57(000) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##F TUXX 000001 13:24:57(002) <main_program> Internal Error: (nullFieldEntry): transform/evalexp.C: 5568
Traceback: Could not obtain stack trace; check that 'dbx' and 'sed' are installed and on your PATH (jbPM_WINSHoldTransIHProcDet.lc_PROC_REC_TYPE1.xfm_NUMVAL)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the C5V0S75_repos_lc_PROC_REC_TYPE1_xfm_NUMVAL transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 lk_REC_TYPE1;
0007: outputname 0 lk_NUMVAL_PASS;
0008: outputname 1 lk_NUMVAL_FAIL;
0009:
0010: global {
0011: // Job parameter declaration
0012: string PM_SRC_FILE_PATH;
0013: string PM_SRC_FILE;
0014: string DSJobName;
0015: }
0016:
0017: initialize {
0018: // define our row rejected variable
0019: int8 RowRejected0;
0020:
0021: // define our null set variable
0022: int8 NullSetVar0;
0023:
0024: // declare our intermediate variables for this section
0025: string InterVar0_0;
0026: string InterVar0_1;
0027: string InterVar0_2;
0028: string InterVar0_3;
0029: string InterVar0_4;
0030: string InterVar0_5;
0031: string InterVar0_6;
0032: string InterVar0_7;
0033: string InterVar0_8;
0034: string InterVar0_9;
0035: string InterVar0_10;
0036: string InterVar0_11;
0037: string InterVar0_12;
0038: string InterVar0_13;
0039: string InterVar0_14;
0040: string InterVar0_18;
0041: string InterVar0_19;
0042: string InterVar0_35;
0043:
0044: // initialise constant values which require conversion
0045: InterVar0_0 = "Y";
0046: InterVar0_1 = "N";
0047: InterVar0_2 = "%2000yy%mm%dd";
0048: InterVar0_3 = "WINSHLD";
0049: InterVar0_4 = "ETL";
0050: InterVar0_5 = "PM-S1000";
0051: InterVar0_6 = "NUMERIC VALIDATION FAILED FOR";
0052: InterVar0_7 = " MARKET_VALUE";
0053: InterVar0_8 = " OR ACCRU_INCOME";
0054: InterVar0_9 = " OR CONTRACT_RECV";
0055: InterVar0_10 = " OR CONTRACT_PAYB";
0056: InterVar0_11 = " OR NET_CASH";
0057: InterVar0_12 = " OR ACCRUED_EXPENSE";
0058: InterVar0_13 = " OR OTHER_LIABILITIES";
0059: InterVar0_14 = " OR SHORT_SECURITIES_MKT";
0060: InterVar0_18 = "";
0061: InterVar0_19 = "|";
0062: InterVar0_35 = "SYSTEM";
0063: // Stage variable declaration and initialisation
0064: string[1] StageVar0_stgNumValidationPass;
0065: StageVar0_stgNumValidationPass = "";
0066: }
0067:
0068: mainloop {
0069: // initialise our row rejected variable
0070: RowRejected0 = 1;
0071:
0072: // declare our intermediate variables for this section
0073: dfloat InterVar0_15;
0074: dfloat InterVar0_16;
0075: string InterVar0_17;
0076: string InterVar0_20;
0077: string InterVar0_21;
0078: string InterVar0_22;
0079: string InterVar0_23;
0080: string InterVar0_24;
0081: string InterVar0_25;
0082: string InterVar0_26;
0083: string InterVar0_27;
0084: string InterVar0_28;
0085: string InterVar0_29;
0086: string InterVar0_30;
0087: string InterVar0_31;
0088: string InterVar0_32;
0089: string InterVar0_33;
0090: string InterVar0_34;
0091:
0092: // evaluate the stage variables first
0093: if ((((((((is_numeric(trimc_string(lk_REC_TYPE1.MARKET_VALUE)) && is_numeric(trimc_string(lk_REC_TYPE1.ACCRU_INCOME))) && is_numeric(trimc_string(lk_REC_TYPE1.CONTRACT_RECV))) && is_numeric(trimc_string(lk_REC_TYPE1.CONTRACT_PAYB))) && is_numeric(trimc_string(lk_REC_TYPE1.NET_CASH))) && is_numeric(trimc_string(lk_REC_TYPE1.ACCRUED_EXPENSE))) && is_numeric(trimc_string(lk_REC_TYPE1.OTHER_LIABILITIES))) && is_numeric(trimc_string(lk_REC_TYPE1.SHORT_SECURITIES_MKT)))) {
0094: StageVar0_stgNumValidationPass = InterVar0_0;
0095: } else {
0096: StageVar0_stgNumValidationPass = InterVar0_1;
0097: }
0098: //;
0099:
0100: // evaluate constraint and columns for link: lk_NUMVAL_PASS
0101: if ((StageVar0_stgNumValidationPass == InterVar0_0))
0102: {
0103: lk_NUMVAL_PASS.FILE_ID = trimc_string(lk_REC_TYPE1.FILE_ID);
0104: lk_NUMVAL_PASS.FILE_TYPE_IN = trimc_string(lk_REC_TYPE1.FILE_TYPE_IND);
0105: lk_NUMVAL_PASS.RECORD_CODE_ID = trimc_string(lk_REC_TYPE1.RECORD_CODE);
0106: lk_NUMVAL_PASS.RELATIONSHIP_NO = trimc_string(lk_REC_TYPE1.RELNO);
0107: lk_NUMVAL_PASS.ACCOUNT_NO = trimc_string(lk_REC_TYPE1.ACCTNO);
0108: lk_NUMVAL_PASS.ACCOUNT_ID = trimc_string(right_substring(lk_REC_TYPE1.ACCTNO , 8));
0109: NullSetVar0 = 0;
0110: if (null(trimc_string(lk_REC_TYPE1.REQUEST_DATE))) {
0111: NullSetVar0 = 1;
0112: } else {
0113: lk_NUMVAL_PASS.REQUEST_DT = date_from_string(lk_REC_TYPE1.REQUEST_DATE , InterVar0_2);
0114: }
0115: //;
0116: NullSetVar0 = 0;
0117: if (null(trimc_string(lk_REC_TYPE1.REQUEST_DATE2))) {
0118: NullSetVar0 = 1;
0119: } else {
0120: lk_NUMVAL_PASS.REQUEST_DT2 = date_from_string(lk_REC_TYPE1.REQUEST_DATE2 , InterVar0_2);
0121: }
0122: //;
0123: NullSetVar0 = 0;
0124: if (null(trimc_string(lk_REC_TYPE1.REQUEST_DATE3))) {
0125: NullSetVar0 = 1;
0126: } else {
0127: lk_NUMVAL_PASS.REQUEST_DT3 = date_from_string(lk_REC_TYPE1.REQUEST_DATE3 , InterVar0_2);
0128: }
0129: //;
0130: lk_NUMVAL_PASS.MARKET_VL = trimc_string(lk_REC_TYPE1.MARKET_VALUE);
0131: lk_NUMVAL_PASS.ACCRUED_INCOME_AM = trimc_string(lk_REC_TYPE1.ACCRU_INCOME);
0132: lk_NUMVAL_PASS.CONTRACT_RECEIVABLE_AM = trimc_string(lk_REC_TYPE1.CONTRACT_RECV);
0133: lk_NUMVAL_PASS.CONTRACT_PAYABLE_AM = trimc_string(lk_REC_TYPE1.CONTRACT_PAYB);
0134: lk_NUMVAL_PASS.NET_CASH_AM = trimc_string(lk_REC_TYPE1.NET_CASH);
0135: lk_NUMVAL_PASS.ACCRUED_EXPENSE_AM = trimc_string(lk_REC_TYPE1.ACCRUED_EXPENSE);
0136: lk_NUMVAL_PASS.OTHER_LIABILITIES_AM = trimc_string(lk_REC_TYPE1.OTHER_LIABILITIES);
0137: lk_NUMVAL_PASS.SHORT_SECURITIES_MARKET_VL = trimc_string(lk_REC_TYPE1.SHORT_SECURITIES_MKT);
0138: writerecord 0;
0139: RowRejected0 = 0;
0140: }
0141: // evaluate constraint and columns for link: lk_NUMVAL_FAIL
0142: if ((StageVar0_stgNumValidationPass == InterVar0_1))
0143: {
0144: lk_NUMVAL_FAIL.FEED_TYPE_ID = InterVar0_3;
0145: lk_NUMVAL_FAIL.BUSINESS_UNIT_ID = lk_REC_TYPE1.RELNO;
0146: lk_NUMVAL_FAIL.APPLICATION_TY = InterVar0_4;
0147: lk_NUMVAL_FAIL.JOB_NM = DSJobName;
0148: lk_NUMVAL_FAIL.ERROR_CD = InterVar0_5;
0149: lk_NUMVAL_FAIL.ERROR_DE = ((((((((InterVar0_6 + InterVar0_7) + InterVar0_8) + InterVar0_9) + InterVar0_10) + InterVar0_11) + InterVar0_12) + InterVar0_13) + InterVar0_14);
0150: InterVar0_15 = PM_SRC_FILE_PATH;
0151: InterVar0_16 = PM_SRC_FILE;
0152: lk_NUMVAL_FAIL.ERROR_SOURCE_TX = (InterVar0_15 / InterVar0_16);
0153: if (notnull(lk_REC_TYPE1.FILE_ID)) {
0154: InterVar0_17 = lk_REC_TYPE1.FILE_ID;
0155: } else {
0156: InterVar0_17 = InterVar0_18;
0157: }
0158: if (notnull(lk_REC_TYPE1.FILE_TYPE_IND)) {
0159: InterVar0_20 = lk_REC_TYPE1.FILE_TYPE_IND;
0160: } else {
0161: InterVar0_20 = InterVar0_18;
0162: }
0163: if (notnull(lk_REC_TYPE1.RECORD_CODE)) {
0164: InterVar0_21 = lk_REC_TYPE1.RECORD_CODE;
0165: } else {
0166: InterVar0_21 = InterVar0_18;
0167: }
0168: if (notnull(lk_REC_TYPE1.RELNO)) {
0169: InterVar0_22 = lk_REC_TYPE1.RELNO;
0170: } else {
0171: InterVar0_22 = InterVar0_18;
0172: }
0173: if (notnull(lk_REC_TYPE1.ACCTNO)) {
0174: InterVar0_23 = lk_REC_TYPE1.ACCTNO;
0175: } else {
0176: InterVar0_23 = InterVar0_18;
0177: }
0178: if (notnull(lk_REC_TYPE1.REQUEST_DATE)) {
0179: InterVar0_24 = lk_REC_TYPE1.REQUEST_DATE;
0180: } else {
0181: InterVar0_24 = InterVar0_18;
0182: }
0183: if (notnull(lk_REC_TYPE1.REQUEST_DATE2)) {
0184: InterVar0_25 = lk_REC_TYPE1.REQUEST_DATE2;
0185: } else {
0186: InterVar0_25 = InterVar0_18;
0187: }
0188: if (notnull(lk_REC_TYPE1.REQUEST_DATE3)) {
0189: InterVar0_26 = lk_REC_TYPE1.REQUEST_DATE3;
0190: } else {
0191: InterVar0_26 = InterVar0_18;
0192: }
0193: if (notnull(lk_REC_TYPE1.MARKET_VALUE)) {
0194: InterVar0_27 = lk_REC_TYPE1.MARKET_VALUE;
0195: } else {
0196: InterVar0_27 = InterVar0_18;
0197: }
0198: if (notnull(lk_REC_TYPE1.ACCRU_INCOME)) {
0199: InterVar0_28 = lk_REC_TYPE1.ACCRU_INCOME;
0200: } else {
0201: InterVar0_28 = InterVar0_18;
0202: }
0203: if (notnull(lk_REC_TYPE1.CONTRACT_RECV)) {
0204: InterVar0_29 = lk_REC_TYPE1.CONTRACT_RECV;
0205: } else {
0206: InterVar0_29 = InterVar0_18;
0207: }
0208: if (notnull(lk_REC_TYPE1.CONTRACT_PAYB)) {
0209: InterVar0_30 = lk_REC_TYPE1.CONTRACT_PAYB;
0210: } else {
0211: InterVar0_30 = InterVar0_18;
0212: }
0213: if (notnull(lk_REC_TYPE1.NET_CASH)) {
0214: InterVar0_31 = lk_REC_TYPE1.NET_CASH;
0215: } else {
0216: InterVar0_31 = InterVar0_18;
0217: }
0218: if (notnull(lk_REC_TYPE1.ACCRUED_EXPENSE)) {
0219: InterVar0_32 = lk_REC_TYPE1.ACCRUED_EXPENSE;
0220: } else {
0221: InterVar0_32 = InterVar0_18;
0222: }
0223: if (notnull(lk_REC_TYPE1.OTHER_LIABILITIES)) {
0224: InterVar0_33 = lk_REC_TYPE1.OTHER_LIABILITIES;
0225: } else {
0226: InterVar0_33 = InterVar0_18;
0227: }
0228: if (notnull(lk_REC_TYPE1.SHORT_SECURITIES_MKT)) {
0229: InterVar0_34 = lk_REC_TYPE1.SHORT_SECURITIES_MKT;
0230: } else {
0231: InterVar0_34 = InterVar0_18;
0232: }
0233: lk_NUMVAL_FAIL.ERROR_DATA_TX = ((((((((((((((((((((((((((((((InterVar0_17 + InterVar0_19) + InterVar0_20) + InterVar0_19) + InterVar0_21) + InterVar0_19) + InterVar0_22) + InterVar0_19) + InterVar0_23) + InterVar0_19) + InterVar0_24) + InterVar0_19) + InterVar0_25) + InterVar0_19) + InterVar0_26) + InterVar0_19) + InterVar0_27) + InterVar0_19) + InterVar0_28) + InterVar0_19) + InterVar0_29) + InterVar0_19) + InterVar0_30) + InterVar0_19) + InterVar0_31) + InterVar0_19) + InterVar0_32) + InterVar0_19) + InterVar0_33) + InterVar0_19) + InterVar0_34);
0234: lk_NUMVAL_FAIL.PROCESS_IN = InterVar0_1;
0235: lk_NUMVAL_FAIL.CREATE_UI = InterVar0_35;
0236: lk_NUMVAL_FAIL.CREATE_TS = current_timestamp();
0237: lk_NUMVAL_FAIL.UPDATE_UI = set_null();
0238: lk_NUMVAL_FAIL.UPDATE_TS = set_null();
0239: writerecord 1;
0240: RowRejected0 = 0;
0241: }
0242: }
0243:
0244: finish {
0245: }
0246:
*** End of Internal Generated Transformer Code
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

The error message seems to indicate that the compiler has trouble evaluating one of your expressions. If none of them show up red in the designer I would suggest you remove the more complicated ones one-by-one from a copy of your program until the compile error goes away; then you've identified the offending derivation and can try to analyze what is happening.
richdhan
Premium Member
Premium Member
Posts: 364
Joined: Thu Feb 12, 2004 12:24 am

Post by richdhan »

Hi Yogesh,

Most of the time this problem occurs because of invalid derivation for stage variables or because of improper use of Environmental variables.

HTH
--Rich
yogi_yogesh
Participant
Posts: 5
Joined: Wed Apr 27, 2005 1:13 pm

Post by yogi_yogesh »

Thanks a lot guys...

I followed the breaking down approach and found that it was being caused due to the use of Trim function with IsNull function on the same variable.

In fact, applying any Null handling function on a Trim result causes the error.... nothing shows in red in designer though.
pratyusha
Participant
Posts: 50
Joined: Wed Nov 22, 2006 4:58 am

Post by pratyusha »

I got this error for giving the following expression
NullToEmpty(TimeStampToString(Column Name))
I removed the null handling function and the job is compiled fine
Any idea why this happens?
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Because the input column might be null and the TimestampToString() function does not like null.
Try something like

Code: Select all

If IsNotNull(InLink.ColumnName) Then TimestampToString(InLink.ColumnName) Else ""
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply