DS job compile error with transformer code

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
Developer9
Premium Member
Premium Member
Posts: 187
Joined: Thu Apr 14, 2011 5:10 pm

DS job compile error with transformer code

Post by Developer9 »

Hi ,

In my job I am using several lookups and Xfm stage

Please give me some idea on How to identify the issue ??
Thanks in Advance

Code: Select all

APT_CombinedOperatorController,0: Fatal Error: Null value on the accessor interfacing to field
Below is the compilation error message showing in transformer stage .



[Output from transformer compilation follows:

##I DSEE-OSHC0001 # <osh_conductor>Information: Dynamic Configuration (osh_conductor) Release 4.3.6 October 11, 2013
##I DSEE-OSHC0004 # <osh_conductor>Information: Checking Authorization...
##I DSEE-OSHC0006 # <osh_conductor>Information: Using dynamic configuration script: /opt/IBM/InformationServer/iis8_dev_gen/Server/PXEngine/grid_enabled.4.3.6/Dynamic_grid.sh
##I DSEE-OSHC0007 # <osh_conductor>Information: Authorized to proceed.
##I IIS-DSEE-TFCN-00001 16:06:04(000) <main_program>
IBM WebSphere DataStage Enterprise Edition 8.5.0.6474
Copyright (c) 2001, 2005-2008 IBM Corporation. All rights reserved



##I IIS-DSEE-TFCN-00006 16:06:04(001) <main_program> conductor uname: -s=Linux; -r=2.6.32-431.11.2.el6.x86_64; -v=#1 SMP Mon Mar 3 13:32:45 EST 2014; -n=mtetlhd01.ecorp.cat.com; -m=x86_64
##I IIS-DSEE-TOSH-00002 16:06:04(002) <main_program> orchgeneral: loaded
##I IIS-DSEE-TOSH-00002 16:06:04(003) <main_program> orchsort: loaded
##I IIS-DSEE-TOSH-00002 16:06:04(004) <main_program> orchstats: loaded
##W IIS-DSEE-TOSH-00049 16:06:04(007) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##W IIS-DSEE-TFTM-00012 16:06:04(009) <transform> Error when checking composite operator: The number of reject datasets "0" is less than the number of input datasets "1".
##W IIS-DSEE-TFEV-00025 16:06:04(010) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 16:06:04(011) <transform> Error when checking composite operator: Implicit conversion from source type "Int32" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 16:06:04(012) <transform> Error when checking composite operator: Converting string to number.
##W IIS-DSEE-TFEV-00023 16:06:04(013) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "Int8".
##W IIS-DSEE-TFEV-00025 16:06:04(014) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 16:06:04(015) <transform> Error when checking composite operator: Implicit conversion from source type "Int32" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 16:06:04(016) <transform> Error when checking composite operator: Converting string to number.
##W IIS-DSEE-TFEV-00023 16:06:04(017) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "Int8".
##W IIS-DSEE-TFEV-00025 16:06:04(018) <transform> Error when checking composite operator: Converting string to number.
##W IIS-DSEE-TFEV-00023 16:06:04(019) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "Int8".
##W IIS-DSEE-TFEV-00025 16:06:04(020) <transform> Error when checking composite operator: Converting number to string.
##W IIS-DSEE-TFEV-00023 16:06:04(021) <transform> Error when checking composite operator: Implicit conversion from source type "Int32" to result type "String".
##W IIS-DSEE-TFEV-00025 16:06:04(022) <transform> Error when checking composite operator: Converting number to string.
##W IIS-DSEE-TFEV-00023 16:06:04(023) <transform> Error when checking composite operator: Implicit conversion from source type "Int32" to result type "String".
##E IIS-DSEE-TFEV-00015 16:06:04(024) <transform> Error when checking composite operator: Only an input field can be "notnull" function argument: [line 74,character 14].
##E IIS-DSEE-TFEV-00015 16:06:04(025) <transform> Error when checking composite operator: Only an input field can be "notnull" function argument: [line 74,character 14].
##E IIS-DSEE-TFEV-00018 16:06:04(026) <transform> Error when checking composite operator: A composite call is not supported for function "notnull"; [line 74,character 14].
##E IIS-DSEE-TFSR-00019 16:06:04(027) <main_program> Could not check all operators because of previous error(s)
##E IIS-DSEE-TCOS-00029 16:06:04(028) <main_program> Creation of a step finished with status = FAILED. (ST001_VLD_OutOfBoxSA_File.Xfm_Vld_Rcds)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V505S2_ST001_VLD_OutOfBoxSA_File_Xfm_Vld_Rcds transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 Lnk_Lkp_Get_MatlGrp;
0007: outputname 0 Lnk_Vld_Recds;
0008:
0009: initialize {
0010: // define our control variables
0011: int8 RowRejected0;
0012: int8 NullSetVar0;
0013:
0014: // declare our intermediate variables for this section
0015: decimal InterVar0_0;
0016: string InterVar0_1;
0017: string InterVar0_2;
0018: string InterVar0_3;
0019: string InterVar0_4;
0020: int8 InterVar0_5;
0021: decimal InterVar0_6;
0022: int8 InterVar0_7;
0023: string InterVar0_8;
0024: string InterVar0_9;
0025: int8 InterVar0_12;
0026: string InterVar0_13;
0027: string InterVar0_14;
0028: string InterVar0_15;
0029: string InterVar0_16;
0030: string InterVar0_17;
0031: string InterVar0_18;
0032: string InterVar0_19;
0033: string InterVar0_20;
0034: string InterVar0_21;
0035:
0036: // initialise constant values which require conversion
0037: InterVar0_0 = 9999999;
0038: InterVar0_1 = "B";
0039: InterVar0_2 = "X";
0040: InterVar0_3 = "1";
0041: InterVar0_4 = "ZS";
0042: InterVar0_5 = "ZZIP";
0043: InterVar0_6 = 0;
0044: InterVar0_7 = "ZZPM";
0045: InterVar0_8 = "L5000S0";
0046: InterVar0_9 = "Z009";
0047: InterVar0_12 = "ZZIM";
0048: InterVar0_13 = "0002";
0049: InterVar0_14 = "Y";
0050: InterVar0_15 = 1;
0051: InterVar0_16 = "";
0052: InterVar0_17 = "L";
0053: InterVar0_18 = "ZZLU";
0054: InterVar0_19 = "ZZIC";
0055: InterVar0_20 = "%mm%dd%yyyy";
0056: InterVar0_21 = 1234;
0057: }
0058:
0059: mainloop {
0060:
0061: // declare our intermediate variables for this section
0062: dfloat InterVar0_10;
0063: dfloat InterVar0_11;
0064:
0065: // initialise the rejected row variable
0066: RowRejected0 = 1;
0067:
0068: // evaluate columns (no constraints) for link: Lnk_Vld_Recds
0069: Lnk_Vld_Recds.EKPO_KTMNG = InterVar0_0;
0070: Lnk_Vld_Recds.EKPO_SPINF = InterVar0_1;
0071: Lnk_Vld_Recds.EKPO_PRSDR = InterVar0_2;
0072: Lnk_Vld_Recds.EKPO_KZSTU = InterVar0_3;
0073: Lnk_Vld_Recds.EKPO_BSTAE = (InterVar0_4 + substring_1(trimc_string(Lnk_Lkp_Get_MatlGrp.EKPO_BSTAE) , 3 , 2));
0074: if ((notnull(trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) == InterVar0_5)) {
0075: Lnk_Vld_Recds.EKPO_NETPR = InterVar0_6;
0076: } else {
0077: if ((notnull(trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) == InterVar0_7)) {
0078: Lnk_Vld_Recds.EKPO_NETPR = Lnk_Lkp_Get_MatlGrp.EKPO_NETPR;
0079: } else {
0080: Lnk_Vld_Recds.EKPO_NETPR = InterVar0_6;
0081: }
0082: //;
0083: }
0084: //;
0085: if ((trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_LIFNR) == InterVar0_8)) {
0086: Lnk_Vld_Recds.EKPO_ABUEB = InterVar0_9;
0087: } else {
0088: Lnk_Vld_Recds.EKPO_ABUEB = Lnk_Lkp_Get_MatlGrp.EKPO_ABUEB;
0089: }
0090: //;
0091: InterVar0_10 = Lnk_Lkp_Get_MatlGrp.EKKO_ZZTRTIME;
0092: InterVar0_11 = Lnk_Lkp_Get_MatlGrp.EKKO_ZZTRTIME;
0093: Lnk_Vld_Recds.EKPO_PLIFZ = ((2 * (InterVar0_10 / 5)) + InterVar0_11);
0094: NullSetVar0 = 0;
0095: if ((notnull(trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) == InterVar0_5)) {
0096: NullSetVar0 = 1;
0097: } else {
0098: if ((notnull(trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) == InterVar0_12)) {
0099: Lnk_Vld_Recds.EKPO_BPRME = Lnk_Lkp_Get_MatlGrp.EKPO_BPRME;
0100: } else {
0101: NullSetVar0 = 1;
0102: }
0103: //;
0104: }
0105: Lnk_Vld_Recds.EKPO_BPRME = ((NullSetVar0 == 1) ? set_null() : Lnk_Vld_Recds.EKPO_BPRME);
0106: if ((trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_LIFNR) == InterVar0_8)) {
0107: Lnk_Vld_Recds.EKPO_BSTAEI = InterVar0_13;
0108: } else {
0109: Lnk_Vld_Recds.EKPO_BSTAEI = trimc_string(string_from_ustring(Lnk_Lkp_Get_MatlGrp.EKKO_LIFNR));
0110: }
0111: //;
0112: if ((trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_LIFNR) == InterVar0_8)) {
0113: Lnk_Vld_Recds.EKPO_KANBA = InterVar0_14;
0114: } else {
0115: Lnk_Vld_Recds.EKPO_KANBA = string_from_ustring(Lnk_Lkp_Get_MatlGrp.EKPO_KANBA);
0116: }
0117: //;
0118: if ((trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_LIFNR) == InterVar0_8)) {
0119: Lnk_Vld_Recds.EKPO_FABKZ = InterVar0_15;
0120: } else {
0121: Lnk_Vld_Recds.EKPO_FABKZ = string_from_ustring(Lnk_Lkp_Get_MatlGrp.EKPO_FABKZ);
0122: }
0123: //;
0124: if ((notnull(Lnk_Lkp_Get_MatlGrp.EKKO_BSART) == InterVar0_7)) {
0125: Lnk_Vld_Recds.EKKO_LIFNR = Lnk_Lkp_Get_MatlGrp.Vendor_No;
0126: } else {
0127: Lnk_Vld_Recds.EKKO_LIFNR = InterVar0_16;
0128: }
0129: //;
0130: Lnk_Vld_Recds.EKKO_BSTYP = InterVar0_17;
0131: Lnk_Vld_Recds.EKKO_EBELN = Lnk_Lkp_Get_MatlGrp.EKPO_EBELN;
0132: if ((notnull(Lnk_Lkp_Get_MatlGrp.EKKO_BSART) == InterVar0_5)) {
0133: Lnk_Vld_Recds.EKKO_BSART = InterVar0_18;
0134: } else {
0135: if ((notnull(Lnk_Lkp_Get_MatlGrp.EKKO_BSART) == InterVar0_7)) {
0136: Lnk_Vld_Recds.EKKO_BSART = InterVar0_19;
0137: } else {
0138: Lnk_Vld_Recds.EKKO_BSART = InterVar0_16;
0139: }
0140: //;
0141: }
0142: //;
0143: Lnk_Vld_Recds.EKKO_BEDAT = string_from_date(current_date() , InterVar0_20);
0144: Lnk_Vld_Recds.EKKO_KDATB = string_from_date(current_date() , InterVar0_20);
0145: if ((null(Lnk_Lkp_Get_MatlGrp.EKKO_RESWK) || (trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_RESWK) == InterVar0_16))) {
0146: Lnk_Vld_Recds.EKKO_RESWK = InterVar0_21;
0147: } else {
0148: Lnk_Vld_Recds.EKKO_RESWK = Lnk_Lkp_Get_MatlGrp.EKKO_RESWK;
0149: }
0150: //;
0151: NullSetVar0 = 0;
0152: if ((notnull(trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) == InterVar0_7)) {
0153: Lnk_Vld_Recds.EKPO_MWSKZ = Lnk_Lkp_Get_MatlGrp.EKPO_MWSKZ;
0154: } else {
0155: NullSetVar0 = 1;
0156: }
0157: Lnk_Vld_Recds.EKPO_MWSKZ = ((NullSetVar0 == 1) ? set_null() : Lnk_Vld_Recds.EKPO_MWSKZ);
0158: writerecord 0;
0159: RowRejected0 = 0;
0160: }
0161:
0162: finish {
0163: }
0164:
*** End of Internal Generated Transformer Code
e][/code]
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Re: DS job compile error with transformer code

Post by ArndW »

Developer9 wrote:...
##E IIS-DSEE-TFEV-00015 16:06:04(024) <transform> Error when checking composite operator: Only an input field can be "notnull" function argument: [line 74,character 14].
##E IIS-DSEE-TFEV-00015 16:06:04(025) <transform> Error when checking composite operator: Only an input field can be "notnull" function argument: [line 74,character 14].
##E IIS-DSEE-TFEV-00018 16:06:04(026) <transform> Error when checking composite operator: A composite call is not supported for function "notnull"; [line 74,character 14].
...
0074: if ((notnull(trimc_string(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) == InterVar0_5)) {
...
One cannot trim a null string, but it would be best if you posted your actual source code for this derivation. Are you using the IsNotNull() function?
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

What version did they start allowing stage variables to be nullable?
-craig

"You can never have too many knives" -- Logan Nine Fingers
MT
Premium Member
Premium Member
Posts: 198
Joined: Fri Mar 09, 2007 3:51 am

Post by MT »

Hi chulett

it was DataStage 8.5
regards

Michael
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

In other words, the version they are running. Thought perhaps the issue was related to the earlier behavior.
-craig

"You can never have too many knives" -- Logan Nine Fingers
Developer9
Premium Member
Premium Member
Posts: 187
Joined: Thu Apr 14, 2011 5:10 pm

Re: DS job compile error with transformer code

Post by Developer9 »

Hi ,

Code: Select all

If IsNotNull(Trim(Lnk_Lkp_Get_MatlGrp.EKKO_BSART)) = 'ZZPM' then Lnk_Lkp_Get_MatlGrp.EKPO_MWSKZ Else SetNull()
Above code I am using in the transformer derivation
I realized that this issue is with "handling nulls and trims together" and need to resolve this issue

Thanks everyone for input
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

That means that you can mark this thread as resolved, or are you still asking about the error?

Code: Select all

If Trim(NullToValue(Lnk_Lkp_Get_MatlGrp.EKKO_BSART,'')) = 'ZZPM' then Lnk_Lkp_Get_MatlGrp.EKPO_MWSKZ Else SetNull()
Post Reply