problem loading a parallel routine in the transfomer

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
kirankota79
Premium Member
Premium Member
Posts: 315
Joined: Tue Oct 31, 2006 3:38 pm

problem loading a parallel routine in the transfomer

Post by kirankota79 »

Hi,

I have written a c++ routine and i added it as a parallel routine to the datastage palette under the category routines. When i try to load the routine for a particular operation in the transformer stage, i am not able to see the routine in the list.....but iam able to see all the previous routines in the drop down list. i have given the path of the object file correctly in the newly created parallel routine. Can someone tell me the reason why iam not able to see this particular routine?

Thanks in advance.
jhmckeever
Premium Member
Premium Member
Posts: 301
Joined: Thu Jul 14, 2005 10:27 am
Location: Melbourne, Australia
Contact:

Post by jhmckeever »

Does your transformer compile if you enter the name of the parallel routine into your transformer derivation manually? If not, what error message do you receive?

John.
<b>John McKeever</b>
Data Migrators
<b><a href="https://www.mettleci.com">MettleCI</a> - DevOps for DataStage</b>
<a href="http://www.datamigrators.com/"><img src="https://www.datamigrators.com/assets/im ... l.png"></a>
kirankota79
Premium Member
Premium Member
Posts: 315
Joined: Tue Oct 31, 2006 3:38 pm

Post by kirankota79 »

it is accepting if i enter the routine manually ( i mean it is able to link the input column)......but still it is in red color and when i validate the derivation...it says , it does not have enough arguments.

my routine looks like char convert(char *instr, char *outstr).

instr is the input value from the input file and outstr is the stagevariable that i use in the transformer.
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

Since "convert" is already a function, perhaps choosing another name might help.
kirankota79
Premium Member
Premium Member
Posts: 315
Joined: Tue Oct 31, 2006 3:38 pm

Post by kirankota79 »

Thanks....that was a silly mistake from myside. i have changed the function name and it is showing up in the transformer...however the job is not compiling . what could be the reason?

i am getting all this when i press the more button:

Output from transformer compilation follows:

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


##I TOSH 000002 11:54:22(001) <main_program> orchgeneral: loaded
##I TOSH 000002 11:54:22(002) <main_program> orchsort: loaded
##I TOSH 000002 11:54:22(003) <main_program> orchstats: loaded
##E TBLD 000000 11:54:25(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 24576
##E TFSR 000019 11:54:25(001) <main_program> Could not check all operators because of previous error(s)
##W TFCP 000000 11:54:25(002) <transform> Error when checking composite operator: The number of reject datasets "0"is less than the number of input datasets "1".
##I TBLD 000000 11:54:25(003) <main_program> Error when checking composite operator: Output from subprocess: D:\Ascential\DataStage\Projects\Awas_test_james\RT_BP14.O\V0S2_PAYROLL_TEST_Transformer_2.C(238) : warning C4244: '=' : conversion from 'APT_Int64' to 'int', possible loss of data

##I TFCP 000008 11:54:25(004) <transform> Error when checking composite operator: cxx -LD:/Ascential/DataStage/Projects/Awas_test_james/RT_BP14.O/ -LD:/Ascential/DataStage/PXEngine/lib -LD:/Ascential/DataStage/PXEngine/user_lib -W/TP -W/dll -W/base:0x50000000 -lliborchnt -lliborchcorent -lliborchbuildopnt D:\\DataMasking\\AWAS\\convertstring.o D:/Ascential/DataStage/Projects/Awas_test_james/RT_BP14.O/V0S2_PAYROLL_TEST_Transformer_2.tmp.o -o D:/Ascential/DataStage/Projects/Awas_test_james/RT_BP14.O/V0S2_PAYROLL_TEST_Transformer_2.dll
##I TBLD 000000 11:54:25(005) <main_program> Error when checking composite operator: Output from subprocess: LINK : warning LNK4224: /DEBUGTYPE:BOTH is no longer supported; ignored

##I TBLD 000000 11:54:25(006) <main_program> Error when checking composite operator: Output from subprocess: V0S2_PAYROLL_TEST_Transformer_2.tmp.o : error LNK2019: unresolved external symbol "char * __cdecl convertstring(char *,char *)" (?convertstring@@YAPADPAD0@Z) referenced in function "protected: virtual void __thiscall APT_TransformOperatorImplV0S2_PAYROLL_TEST_Transformer_2::processInputRecord(int)" (?processInputRecord@APT_TransformOperatorImplV0S2_PAYROLL_TEST_Transformer_2@@MAEXH@Z)
D:\Ascential\DataStage\Projects\Awas_test_james\RT_BP14.O\V0S2_PAYROLL_TEST_Transformer_2.dll : fatal error LNK1120: 1 unre
##I TBLD 000000 11:54:25(007) <main_program> Error when checking composite operator: Output from subprocess: solved externals

##E TCOS 000029 11:54:25(008) <main_program> Creation of step finished with status = FAILED (PAYROLL_TEST.Transformer_2)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S2_PAYROLL_TEST_Transformer_2 transform operator.
0003: //
0004:
0005: // define external functions used
0006: extern string convertstring(string instr,string outstr);
0007:
0008: // define our input/output link names
0009: inputname 0 DSLink3;
0010: outputname 0 DSLink4;
0011:
0012: initialize {
0013: // define our row rejected variable
0014: int8 RowRejected0;
0015:
0016: // define our null set variable
0017: int8 NullSetVar0;
0018:
0019: // Stage variable declaration and initialisation
0020: string StageVar0_StageVar;
0021: StageVar0_StageVar = "";
0022: }
0023:
0024: mainloop {
0025: // initialise our row rejected variable
0026: RowRejected0 = 1;
0027:
0028: // declare our intermediate variables for this section
0029: string InterVar0_0;
0030:
0031: // evaluate the stage variables first
0032: InterVar0_0 = convertstring(DSLink3.vzid , StageVar0_StageVar);
0033: StageVar0_StageVar = InterVar0_0;
0034:
0035: // evaluate columns (no constraints) for link: DSLink4
0036: DSLink4.vzid_out = StageVar0_StageVar;
0037: writerecord 0;
0038: RowRejected0 = 0;
0039: }
0040:
0041: finish {
0042: }
0043:
*** End of Internal Generated Transformer Code
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

New problem = new post.
-craig

"You can never have too many knives" -- Logan Nine Fingers
Post Reply