compilation error in job using SCD stage having dbsequence

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
Puli
Participant
Posts: 53
Joined: Mon May 26, 2008 2:59 am
Location: Australia

compilation error in job using SCD stage having dbsequence

Post by Puli »

Hi,
Following is the error we get during compilation of job with SCD stage using DB Sequence for surrogate key generation.Please help on the same.


Output from transformer compilation follows:

##I IIS-DSEE-TFCN-00001 18:36:51(000) <main_program>
IBM WebSphere DataStage Enterprise Edition 8.0.1.4458
Copyright (c) 2001, 2005-2007 IBM Corporation. All rights reserved



##I IIS-DSEE-TUTL-00031 18:36:51(001) <main_program> The open files limit is 2000; raising to 2147483647.
##I IIS-DSEE-TOSH-00002 18:36:51(002) <main_program> orchgeneral: loaded
##I IIS-DSEE-TOSH-00002 18:36:51(003) <main_program> orchsort: loaded
##I IIS-DSEE-TOSH-00002 18:36:51(004) <main_program> orchstats: loaded
##W IIS-DSEE-TOSH-00049 18:36:51(007) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##E IIS-DSEE-TBLD-00076 18:36:52(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 256.
##E IIS-DSEE-TFSR-00019 18:36:52(001) <main_program> Could not check all operators because of previous error(s)
##W IIS-DSEE-TFTM-00012 18:36:52(002) <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-00023 18:36:52(003) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "UString".
##W IIS-DSEE-TFEV-00023 18:36:52(004) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "UString".
##W IIS-DSEE-TFEV-00023 18:36:52(005) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "UString".
##W IIS-DSEE-TFEV-00023 18:36:52(006) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "UString".
##W IIS-DSEE-TFEV-00025 18:36:52(007) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(008) <transform> Error when checking composite operator: Implicit conversion from source type "UInt64" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 18:36:52(009) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(010) <transform> Error when checking composite operator: Implicit conversion from source type "UInt64" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 18:36:52(011) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(012) <transform> Error when checking composite operator: Implicit conversion from source type "UInt64" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 18:36:52(013) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(014) <transform> Error when checking composite operator: Implicit conversion from source type "UInt64" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 18:36:52(015) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(016) <transform> Error when checking composite operator: Implicit conversion from source type "Decimal" to result type "UInt64".
##W IIS-DSEE-TFEV-00025 18:36:52(017) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(018) <transform> Error when checking composite operator: Implicit conversion from source type "UInt64" to result type "Decimal".
##W IIS-DSEE-TFEV-00025 18:36:52(019) <transform> Error when checking composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 18:36:52(020) <transform> Error when checking composite operator: Implicit conversion from source type "Decimal" to result type "UInt64".
##W IIS-DSEE-TBLD-00000 18:36:52(021) <main_program> Error when checking composite operator: Output from subprocess: "/opt/IBM/InformationServer/Server/Projects/TMobile/RT_BP75.O/V0S5_SCD_TYPE2_File_DB2_DBSEQ_SCD_Trans.C", line 1946.26: 1540-0256 (S) A parameter of type "const APT_String &" cannot be initialized with an expression of type "APT_UString".

##W IIS-DSEE-TBLD-00000 18:36:52(022) <main_program> Error when checking composite operator: Output from subprocess: "/opt/IBM/InformationServer/Server/Projects/TMobile/RT_BP75.O/V0S5_SCD_TYPE2_File_DB2_DBSEQ_SCD_Trans.C", line 1946.26: 1540-1205 (I) The error occurred while converting to parameter 1 of "APT_SKSource::setDBType(const APT_String &)".

##I IIS-DSEE-TBLD-00079 18:36:52(023) <transform> Error when checking composite operator: /usr/vacpp/bin/xlC_r -O -I/opt/IBM/InformationServer/Server/PXEngine/include -O -c /opt/IBM/InformationServer/Server/Projects/TMobile/RT_BP75.O/V0S5_SCD_TYPE2_File_DB2_DBSEQ_SCD_Trans.C -o /opt/IBM/InformationServer/Server/Projects/TMobile/RT_BP75.O/V0S5_SCD_TYPE2_File_DB2_DBSEQ_SCD_Trans.tmp.o.
##E IIS-DSEE-TCOS-00029 18:36:52(024) <main_program> Creation of a step finished with status = FAILED. (SCD_TYPE2_File_DB2_DBSEQ.SCD_Trans)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S5_SCD_TYPE2_File_DB2_DBSEQ_SCD_Trans transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 InputData_EMP_2;
0007: tablename 0 Tgt_Lkp;
0008: outputname 0 Dim_Upd_Ins;
0009: outputname 1 Fact_Out;
0010:
0011: initialize {
0012: // define our row rejected variable
0013: int8 RowRejected0;
0014:
0015: // define our null set variable
0016: int8 NullSetVar0;
0017:
0018: // define our force_error call variables
0019: ustring FErrorMsg0;
0020: ustring FErrorLink0;
0021:
0022: // define our SCD surrogate key variables
0023: ustring SurrKey_id0;
0024: int32 SurrKey_rc0;
0025: int32 SeedValue0;
0026: uint64 surrKey0;
0027: ustring db_type0;
0028: ustring db_options0;
0029:
0030: // declare our intermediate variables for this section
0031: date InterVar0_0;
0032:
0033: // initialise constant values which require conversion
0034: InterVar0_0 = date_from_ustring("2099-01-01");
0035:
0036: // initialise surrogate key
0037: SurrKey_id0 = "EMPKEY";
0038: db_type0 = "db2";
0039: db_options0 = "-server ctsinaixbng6 -dbname bingofwk -client_instance db2inst1 -user dsadm -password password-1";
0040: SurrKey_rc0 = surrogatekey_init_db(SurrKey_id0, db_type0, db_options0);
0041: if (SurrKey_rc0 != 0)
0042: {
0043: FErrorMsg0 = "Error in initializing surrogate key!";
0044: u_force_error(FErrorMsg0);
0045: }
0046: }
0047:
0048: mainloop {
0049: // initialise our row rejected variable
0050: RowRejected0 = 1;
0051:
0052: // no condition for lookup link: Tgt_Lkp
0053: lookup(Tgt_Lkp);
0054: if (!is_match(Tgt_Lkp))
0055: {
0056: surrKey0 = surrogatekey_generate();
0057: // In memory list
0058: Tgt_Lkp.EMPNO = InputData_EMP_2.EMPNO;
0059: Tgt_Lkp.ENAME = InputData_EMP_2.ENAME;
0060: Tgt_Lkp.JOB = InputData_EMP_2.JOB;
0061: Tgt_Lkp.MGR = InputData_EMP_2.MGR;
0062: Tgt_Lkp.HIREDATE = InputData_EMP_2.HIREDATE;
0063: Tgt_Lkp.SAL = InputData_EMP_2.SAL;
0064: Tgt_Lkp.COMM = InputData_EMP_2.COMM;
0065: Tgt_Lkp.DEPTNO = InputData_EMP_2.DEPTNO;
0066: Tgt_Lkp.END_DATE = InterVar0_0;
0067: Tgt_Lkp.EMPKEY = surrKey0;
0068:
0069: insert_record (Tgt_Lkp);
0070:
0071: // Update list
0072: Dim_Upd_Ins.EMPNO = InputData_EMP_2.EMPNO;
0073: Dim_Upd_Ins.ENAME = InputData_EMP_2.ENAME;
0074: Dim_Upd_Ins.JOB = InputData_EMP_2.JOB;
0075: Dim_Upd_Ins.MGR = InputData_EMP_2.MGR;
0076: Dim_Upd_Ins.HIREDATE = InputData_EMP_2.HIREDATE;
0077: Dim_Upd_Ins.SAL = InputData_EMP_2.SAL;
0078: Dim_Upd_Ins.COMM = InputData_EMP_2.COMM;
0079: Dim_Upd_Ins.DEPTNO = InputData_EMP_2.DEPTNO;
0080: Dim_Upd_Ins.END_DATE = InterVar0_0;
0081: Dim_Upd_Ins.EMPKEY = surrKey0;
0082:
0083: writerecord 0;
0084:
0085: }
0086: else
0087: {
0088: //If there are SCD type 2 columns and values have changed
0089: if (Tgt_Lkp.DEPTNO != InputData_EMP_2.DEPTNO)
0090: {
0091: // Update existing dimension table row
0092: surrKey0 = surrogatekey_generate();
0093: Dim_Upd_Ins.ENAME = Tgt_Lkp.ENAME;
0094: Dim_Upd_Ins.JOB = Tgt_Lkp.JOB;
0095: Dim_Upd_Ins.MGR = Tgt_Lkp.MGR;
0096: Dim_Upd_Ins.SAL = Tgt_Lkp.SAL;
0097: Dim_Upd_Ins.COMM = Tgt_Lkp.COMM;
0098: Dim_Upd_Ins.EMPKEY = Tgt_Lkp.EMPKEY;
0099: // Update expire list
0100: Dim_Upd_Ins.END_DATE = InputData_EMP_2.HIREDATE;
0101:
0102: writerecord 0;
0103:
0104:
0105: fill_update_record(Tgt_Lkp);
0106:
0107: // Update inmemory table
0108: Tgt_Lkp.ENAME = InputData_EMP_2.ENAME;
0109: Tgt_Lkp.JOB = InputData_EMP_2.JOB;
0110: Tgt_Lkp.MGR = InputData_EMP_2.MGR;
0111: Tgt_Lkp.SAL = InputData_EMP_2.SAL;
0112: Tgt_Lkp.COMM = InputData_EMP_2.COMM;
0113: Tgt_Lkp.DEPTNO = InputData_EMP_2.DEPTNO;
0114: Tgt_Lkp.EMPKEY = surrKey0;
0115:
0116: update_record (Tgt_Lkp);
0117:
0118: // Write new dimension table row
0119: Dim_Upd_Ins.EMPNO = InputData_EMP_2.EMPNO;
0120: Dim_Upd_Ins.ENAME = InputData_EMP_2.ENAME;
0121: Dim_Upd_Ins.JOB = InputData_EMP_2.JOB;
0122: Dim_Upd_Ins.MGR = InputData_EMP_2.MGR;
0123: Dim_Upd_Ins.HIREDATE = InputData_EMP_2.HIREDATE;
0124: Dim_Upd_Ins.SAL = InputData_EMP_2.SAL;
0125: Dim_Upd_Ins.COMM = InputData_EMP_2.COMM;
0126: Dim_Upd_Ins.DEPTNO = InputData_EMP_2.DEPTNO;
0127: Dim_Upd_Ins.END_DATE = InterVar0_0;
0128: Dim_Upd_Ins.EMPKEY = surrKey0;
0129:
0130: writerecord 0;
0131:
0132: }
0133: else
0134: {
0135: //If there are SCD type 1 columns and their values have changed
0136: if (((((Tgt_Lkp.ENAME != InputData_EMP_2.ENAME) || (Tgt_Lkp.JOB != InputData_EMP_2.JOB)) || (Tgt_Lkp.MGR != InputData_EMP_2.MGR)) || (Tgt_Lkp.SAL != InputData_EMP_2.SAL)) || (Tgt_Lkp.COMM != InputData_EMP_2.COMM))
0137: {
0138: // Update inmemory table
0139:
0140: fill_update_record(Tgt_Lkp);
0141:
0142: surrKey0 = Tgt_Lkp.EMPKEY;
0143: // In memory list type 1 only
0144: Tgt_Lkp.ENAME = InputData_EMP_2.ENAME;
0145: Tgt_Lkp.JOB = InputData_EMP_2.JOB;
0146: Tgt_Lkp.MGR = InputData_EMP_2.MGR;
0147: Tgt_Lkp.SAL = InputData_EMP_2.SAL;
0148: Tgt_Lkp.COMM = InputData_EMP_2.COMM;
0149:
0150: update_record (Tgt_Lkp);
0151:
0152: // Update dimension table row
0153: Dim_Upd_Ins.ENAME = InputData_EMP_2.ENAME;
0154: Dim_Upd_Ins.JOB = InputData_EMP_2.JOB;
0155: Dim_Upd_Ins.MGR = InputData_EMP_2.MGR;
0156: Dim_Upd_Ins.SAL = InputData_EMP_2.SAL;
0157: Dim_Upd_Ins.COMM = InputData_EMP_2.COMM;
0158: Dim_Upd_Ins.EMPKEY = surrKey0;
0159: // Update expire list type 2 only
0160: Dim_Upd_Ins.END_DATE = Tgt_Lkp.END_DATE;
0161:
0162: writerecord 0;
0163:
0164: }
0165: else
0166: {
0167: // Update Surrogate key list
0168: surrKey0 = Tgt_Lkp.EMPKEY;
0169: }
0170: }
0171: }
0172: Fact_Out.EMPNO = InputData_EMP_2.EMPNO;
0173: Fact_Out.ENAME = InputData_EMP_2.ENAME;
0174: Fact_Out.JOB = InputData_EMP_2.JOB;
0175: Fact_Out.MGR = InputData_EMP_2.MGR;
0176: Fact_Out.HIREDATE = InputData_EMP_2.HIREDATE;
0177: Fact_Out.SAL = InputData_EMP_2.SAL;
0178: Fact_Out.COMM = InputData_EMP_2.COMM;
0179: Fact_Out.DEPTNO = InputData_EMP_2.DEPTNO;
0180: Fact_Out.END_DATE = Tgt_Lkp.END_DATE;
0181: Fact_Out.EMPKEY = Tgt_Lkp.EMPKEY;
0182: writerecord 1;
0183: }
0184:
0185: finish {
0186: }
0187:
*** End of Internal Generated Transformer Code
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Search DSXchange for The number of reject datasets "0" is less than the number of input datasets "1". Others have posted about this message.

Is your compiler licence valid (not expired)?
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Vkharia
Participant
Posts: 9
Joined: Thu Sep 04, 2008 4:56 am

Post by Vkharia »

Hi,

In the transformer stage where the error is occuring, check the level number column. The level number for all the rows should be present. This resolves the error : The number of reject datasets "0" is less than the number of input datasets "1"

Hope you find the solution in above information!!!!
algfr
Participant
Posts: 106
Joined: Fri Sep 09, 2005 7:42 am

Try this

Post by algfr »

I had the same problem with the SCD stage.

In the step 2 out of 5, check the map. You should not have any derivation coming from the input flow except the business key !

Doing so removed the error for me.

Tell me if that works
Post Reply