Abnormal termination of stage
Moderators: chulett, rschirm, roy
-
- Participant
- Posts: 49
- Joined: Sat Mar 26, 2005 12:19 am
Abnormal termination of stage
Hi All,
We have extracting data from SAP-BW and Loading into a file.
Total no. of records are 32 millions. When i run my job it is extracting 31.9 millions after that i got this error. ( I ran this job twice it is aborting at same no of records).
Abnormal termination of stage BWDB2AR4Extract_FullLoad_File..Tranform_rules detected
Please suggest me.
Thanks & regards
venu
We have extracting data from SAP-BW and Loading into a file.
Total no. of records are 32 millions. When i run my job it is extracting 31.9 millions after that i got this error. ( I ran this job twice it is aborting at same no of records).
Abnormal termination of stage BWDB2AR4Extract_FullLoad_File..Tranform_rules detected
Please suggest me.
Thanks & regards
venu
Venu,
your question, if it were put into car terms, would be "I was driving home and, just as I was turning into the driveway the car stopped running. What is the cause?"
You might try to to a reset of your job and see if you have a log entry entitled "from previous run". What are you writing to? If it is a database, what have you set as your commit frequency?
your question, if it were put into car terms, would be "I was driving home and, just as I was turning into the driveway the car stopped running. What is the cause?"
You might try to to a reset of your job and see if you have a log entry entitled "from previous run". What are you writing to? If it is a database, what have you set as your commit frequency?
<a href=http://www.worldcommunitygrid.org/team/ ... TZ9H4CGVP1 target="WCGWin">
</a>
</a>
-
- Participant
- Posts: 49
- Joined: Sat Mar 26, 2005 12:19 am
From previous run
DataStage Job 802 Phantom 22346
kgefec: fatal error 0
********** Internal heap ERROR 17113 addr=0x0 *********
******************************************************
HEAP DUMP heap name="" desc=0x0
extent sz=0x0 alt=0 het=0 rec=0 flg=0 opc=0
parent=0 owner=0 nex=0 xsz=0x0
Hla: 0
**** Recursive heap error: 17113 addr=0x0,Abnormal termination of DataStage.
Fault type is 10. Layer type is BASIC run machine.
Fault occurred in BASIC program JOB.1617952052.DT.139397119.TRANS1 at address de. ds=0
DataStage Job 802 Phantom 22346
kgefec: fatal error 0
********** Internal heap ERROR 17113 addr=0x0 *********
******************************************************
HEAP DUMP heap name="" desc=0x0
extent sz=0x0 alt=0 het=0 rec=0 flg=0 opc=0
parent=0 owner=0 nex=0 xsz=0x0
Hla: 0
**** Recursive heap error: 17113 addr=0x0,Abnormal termination of DataStage.
Fault type is 10. Layer type is BASIC run machine.
Fault occurred in BASIC program JOB.1617952052.DT.139397119.TRANS1 at address de. ds=0
OK, now we know that the job has aborted due to some HEAP problem; most likely it is running out of space. Odd is that it seems to be happening in your TRANS1 stage {which I assume is a TRANsform stage}. This normal does not create any temporary storage - unless you are using stage variables that are getting longer each row, or you are calling routines which don't release their string space.
What are you doing in your transform stage that is not a 1-1 derivation? You stated that the job aborted on the same row twice, so perhaps it has something to do with your data in that row. Does it look "odd" at all?
What are you doing in your transform stage that is not a 1-1 derivation? You stated that the job aborted on the same row twice, so perhaps it has something to do with your data in that row. Does it look "odd" at all?
<a href=http://www.worldcommunitygrid.org/team/ ... TZ9H4CGVP1 target="WCGWin">
</a>
</a>
-
- Participant
- Posts: 49
- Joined: Sat Mar 26, 2005 12:19 am
The other questions are still unanswered, and I think they apply to solving your problem.
<a href=http://www.worldcommunitygrid.org/team/ ... TZ9H4CGVP1 target="WCGWin">
</a>
</a>
-
- Participant
- Posts: 49
- Joined: Sat Mar 26, 2005 12:19 am
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
Please post the output of the following command, executed at TCL:
Code: Select all
VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
-
- Participant
- Posts: 49
- Joined: Sat Mar 26, 2005 12:19 am
there is a big log followed by what are expecting from this:
TMT65_AUTO_EXTRACT..BeforeJob (ExecTCL): Executed command: VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1
*** Output from UniVerse command was: ***
Subroutine "RT_BP802.O/JOB.1617952052.DT.139397119.TRANS1"
Compiler Version: 7.5.1.1
Object Level : 5
Machine Type : 10
Local Variables : 59
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 2
Object Size : 1408
Source lines : 199
00001: * Tokens were replaced below as follows:
00002: * Pin%%V0S1P5.Column%%1 <= zoph_arde_out.OHREQUID
TMT65_AUTO_EXTRACT..BeforeJob (ExecTCL): Executed command: VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1
*** Output from UniVerse command was: ***
Subroutine "RT_BP802.O/JOB.1617952052.DT.139397119.TRANS1"
Compiler Version: 7.5.1.1
Object Level : 5
Machine Type : 10
Local Variables : 59
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 2
Object Size : 1408
Source lines : 199
00001: * Tokens were replaced below as follows:
00002: * Pin%%V0S1P5.Column%%1 <= zoph_arde_out.OHREQUID
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
-
- Participant
- Posts: 49
- Joined: Sat Mar 26, 2005 12:19 am
EXTRACT..BeforeJob (ExecTCL): Executed command: VLIST RT_BP802 JOB.1617952052.DT.139397119.TRANS1
*** Output from UniVerse command was: ***
Subroutine "RT_BP802.O/JOB.1617952052.DT.139397119.TRANS1"
Compiler Version: 7.5.1.1
Object Level : 5
Machine Type : 10
Local Variables : 59
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 2
Object Size : 1408
Source lines : 199
00001: * Tokens were replaced below as follows:
00002: * Pin%%V0S1P5.Column%%1 <= zoph_arde_out.OHREQUID
00003: * Pin%%V0S1P5.Column%%2 <= zoph_arde_out.DATAPAKID
00004: * Pin%%V0S1P5.Column%%3 <= zoph_arde_out.RECORD
00005: * Pin%%V0S1P5.Column%%4 <= zoph_arde_out.COMP_CODE
00006: * Pin%%V0S1P5.Column%%5 <= zoph_arde_out.DEBITOR
00007: * Pin%%V0S1P5.Column%%6 <= zoph_arde_out.AC_DOC_NO
00008: * Pin%%V0S1P5.Column%%7 <= zoph_arde_out.FISCPER
00009: * Pin%%V0S1P5.Column%%8 <= zoph_arde_out.ITEM_NUM
00010: * Pin%%V0S1P5.Column%%9 <= zoph_arde_out.REF_DOC_NO
00011: * Pin%%V0S1P5.Column%%10 <= zoph_arde_out.DOC_DATE
00012: * Pin%%V0S1P5.Column%%11 <= zoph_arde_out.REF_KEY2
00013: * Pin%%V0S1P5.Column%%12 <= zoph_arde_out.REF_KEY1
00014: * Pin%%V0S1P5.Column%%13 <= zoph_arde_out.PSTNG_DATE
00015: * Pin%%V0S1P5.Column%%14 <= zoph_arde_out.CREATEDON
00016: * Pin%%V0S1P5.Column%%15 <= zoph_arde_out.GL_ACCOUNT
00017: * Pin%%V0S1P5.Column%%16 <= zoph_arde_out.CLR_DOC_NO
00018: * Pin%%V0S1P5.Column%%17 <= zoph_arde_out.INV_DOC_NO
00019: * Pin%%V0S1P5.Column%%18 <= zoph_arde_out.CLEAR_DATE
00020: * Pin%%V0S1P5.Column%%19 <= zoph_arde_out.NETDUEDATE
00021: * Pin%%V0S1P5.Column%%20 <= zoph_arde_out.LOC_CURRCY
00022: * Pin%%V0S1P5.Column%%21 <= zoph_arde_out.DEB_CRE_LC
00023: * Pin%%V0S1P5.Column%%22 <= zoph_arde_out.FI_DOCSTAT
00024: * Pin%%V0S1P5.Column%%23 <= zoph_arde_out.AC_DOC_TYP
00025: * Pin%%V0S1P5.Column%%24 <= zoph_arde_out.ZI_REF_CD
00026: * Pin%%V0S1P5.Column%%25 <= zoph_arde_out.ZI_REASON
00027: * Pin%%V0S1P5.Column%%26 <= zoph_arde_out.REASON_CDE
00028: * Pin%%V0S1P5.Column%%27 <= zoph_arde_out.DUNN_BLOCK
00029: * Pin%%V0S1P5.Column%%28 <= zoph_arde_out.DUNN_LEVEL
00030: * Pin%%V0S1P5.Column%%29 <= zoph_arde_out.LAST_DUNN
00031: * Pin%%V0S1P5.Column%%30 <= zoph_arde_out.ZI_LTTEXT
00032: * Pin%%V0S1P5.Column%%31 <= zoph_arde_out.ZI_ZUONR
00033: * GET.Pin%%V0S1P5 <= GET.zoph_arde_out
00034: * Pin%%V0S1P5.REJECTEDCODE <= zoph_arde_out.REJECTEDCODE
00035: * Pin%%V0S1P7.Column%%1 <= DSLink18.CDE_COMPANY
00036: * Pin%%V0S1P7.Column%%2 <= DSLink18.IDT_SAP_CUSTOMER
00037: * Pin%%V0S1P7.Column%%3 <= DSLink18.NUM_SAP_ACCT_DOC
00038: * Pin%%V0S1P7.Column%%4 <= DSLink18.NUM_SAP_FISCPER
00039: * Pin%%V0S1P7.Column%%5 <= DSLink18.NUM_SAP_INVC_LINE
00040: * Pin%%V0S1P7.Column%%6 <= DSLink18.IDT_CUSTOMER
00041: * Pin%%V0S1P7.Column%%7 <= DSLink18.NUM_INVOICE
00042: * Pin%%V0S1P7.Column%%8 <= DSLink18.DTE_INVOICE
00043: * Pin%%V0S1P7.Column%%9 <= DSLink18.IDT_CUST_BILL
00044: * Pin%%V0S1P7.Column%%10 <= DSLink18.IDT_CUST_INSTALL
00045: * Pin%%V0S1P7.Column%%11 <= DSLink18.IDT_SAP_WRITE_OFF
00046: * Pin%%V0S1P7.Column%%12 <= DSLink18.DTE_EFFECTIVE
00047: * Pin%%V0S1P7.Column%%13 <= DSLink18.DTE_TRAN_CREATE
00048: * Pin%%V0S1P7.Column%%14 <= DSLink18.NUM_JOURNAL_VOUCH
00049: * Pin%%V0S1P7.Column%%15 <= DSLink18.NUM_BRANCH
00050: * Pin%%V0S1P7.Column%%16 <= DSLink18.NUM_GL_ACCOUNT
00051: * Pin%%V0S1P7.Column%%17 <= DSLink18.NUM_SAP_DOC_CLEAR
00052: * Pin%%V0S1P7.Column%%18 <= DSLink18.NUM_SAP_DOC_PT_PAY
00053: * Pin%%V0S1P7.Column%%19 <= DSLink18.DTE_INVC_CLEARED
00054: * Pin%%V0S1P7.Column%%20 <= DSLink18.DTE_SAP_NET_DUE
00055: * Pin%%V0S1P7.Column%%21 <= DSLink18.CDE_SAP_LOCL_CRNCY
00056: * Pin%%V0S1P7.Column%%22 <= DSLink18.AMT_SAP_DOCUMENT
00057: * Pin%%V0S1P7.Column%%23 <= DSLink18.CDE_SAP_DOC_STATUS
00058: * Pin%%V0S1P7.Column%%24 <= DSLink18.CDE_SAP_ACCT_DOC
00059: * Pin%%V0S1P7.Column%%25 <= DSLink18.CDE_SAP_REF_REAS
00060: * Pin%%V0S1P7.Column%%26 <= DSLink18.CDE_SAP_REVERSAL
00061: * Pin%%V0S1P7.Column%%27 <= DSLink18.CDE_SAP_WRITE_OFF
00062: * Pin%%V0S1P7.Column%%28 <= DSLink18.CDE_SAP_DUNN_BLOCK
00063: * Pin%%V0S1P7.Column%%29 <= DSLink18.CDE_SAP_DUNN_LEVEL
00064: * Pin%%V0S1P7.Column%%30 <= DSLink18.DTE_SAP_LAST_DUNN
00065: * Pin%%V0S1P7.Column%%31 <= DSLink18.TXT_SAP_LINE_DESC
00066: * Pin%%V0S1P7.Column%%32 <= DSLink18.NUM_SAP_ASSIGNMENT
00067: * PUT.Pin%%V0S1P7 <= PUT.DSLink18
00068: * Pin%%V0S1P7.REJECTED <= DSLink18.REJECTED
00069: * Pin%%V0S1P7.REJECTEDCODE <= DSLink18.REJECTEDCODE
00070: *
00071: * Subroutine for active stage BWDB2AR4Extract_FullLoad_File.Tranform_rules generated at 11:36:57 02 MAR 2006
00072: *
00073: SUBROUTINE DSTransformerStage(HANDLES,ERROR)
00074:
00075: $INCLUDE DSINCLUDE DSD_RTCONFIG.H
00076: $INCLUDE DSINCLUDE DSD_STAGE.H
00076 00000 : 058 dimcom STAGECOM.PIN 1024 => 1
00076 00008 : 058 dimcom STAGECOM.NUM.ROWS 1024 => 1
00076 00010 : 058 dimcom STAGECOM.ARR 8192 => 1
00077: $INCLUDE DSINCLUDE DSD_BCI.H
00077 00018 : 058 dimcom BCICOM.DSN 1024 => 1
00077 00020 : 058 dimcom BCICOM.HDBC 1024 => 1
00077 00028 : 058 dimcom BCICOM.NUM.STMTS 1024 => 1
00077 00030 : 102 mul 1024 2 => $R0
00077 00038 : 058 dimcom BCICOM.HSTMT $R0 => 1
00077 00040 : 058 dimcom BCICOM.TXROWS 1024 => 1
00077 00048 : 058 dimcom BCICOM.TXSIZE 1024 => 1
00077 00050 : 058 dimcom BCICOM.PRIVATE 1024 => 1
00077 00058 : 058 dimcom BCICOM.ARR.ROWS 1024 => 1
00077 00060 : 058 dimcom BCICOM.ARR.SIZE 1024 => 1
00077 00068 : 058 dimcom BCICOM.NLS.MAPNAME 1024 => 1
00077 00070 : 058 dimcom BCICOM.ARR 8192 => 1
00077 00078 : 058 dimcom BCICOM.MAP.ARR 8192 => 1
00077 00080 : 058 dimcom BCICOM.TXSTATE 1024 => 1
00077 00088 : 058 dimcom BCICOM.DO.REPREPARE 1024 => 1
00078:
00079: $INCLUDE DSINCLUDE JOBCONTROL.H
00080: DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'
00081: $DEFINE Pin%%V0S1P5.Column%%1 STAGECOM.ARR(1)
00082: $DEFINE Pin%%V0S1P5.Column%%2 STAGECOM.ARR(2)
00083: $DEFINE Pin%%V0S1P5.Column%%3 STAGECOM.ARR(3)
00084: $DEFINE Pin%%V0S1P5.Column%%4 STAGECOM.ARR(4)
00085: $DEFINE Pin%%V0S1P5.Column%%5 STAGECOM.ARR(5)
00086: $DEFINE Pin%%V0S1P5.Column%%6 STAGECOM.ARR(6)
00087: $DEFINE Pin%%V0S1P5.Column%%7 STAGECOM.ARR(7)
00088: $DEFINE Pin%%V0S1P5.Column%%8 STAGECOM.ARR(8)
00089: $DEFINE Pin%%V0S1P5.Column%%9 STAGECOM.ARR(9)
00090: $DEFINE Pin%%V0S1P5.Column%%10 STAGECOM.ARR(10)
00091: $DEFINE Pin%%V0S1P5.Column%%11 STAGECOM.ARR(11)
00092: $DEFINE Pin%%V0S1P5.Column%%12 STAGECOM.ARR(12)
00093: $DEFINE Pin%%V0S1P5.Column%%13 STAGECOM.ARR(13)
00094: $DEFINE Pin%%V0S1P5.Column%%14 STAGECOM.ARR(14)
00095: $DEFINE Pin%%V0S1P5.Column%%15 STAGECOM.ARR(15)
00096: $DEFINE Pin%%V0S1P5.Column%%16 STAGECOM.ARR(16)
00097: $DEFINE Pin%%V0S1P5.Column%%17 STAGECOM.ARR(17)
00098: $DEFINE Pin%%V0S1P5.Column%%18 STAGECOM.ARR(18)
00099: $DEFINE Pin%%V0S1P5.Column%%19 STAGECOM.ARR(19)
00100: $DEFINE Pin%%V0S1P5.Column%%20 STAGECOM.ARR(20)
00101: $DEFINE Pin%%V0S1P5.Column%%21 STAGECOM.ARR(21)
00102: $DEFINE Pin%%V0S1P5.Column%%22 STAGECOM.ARR(22)
00103: $DEFINE Pin%%V0S1P5.Column%%23 STAGECOM.ARR(23)
00104: $DEFINE Pin%%V0S1P5.Column%%24 STAGECOM.ARR(24)
00105: $DEFINE Pin%%V0S1P5.Column%%25 STAGECOM.ARR(25)
00106: $DEFINE Pin%%V0S1P5.Column%%26 STAGECOM.ARR(26)
00107: $DEFINE Pin%%V0S1P5.Column%%27 STAGECOM.ARR(27)
00108: $DEFINE Pin%%V0S1P5.Column%%28 STAGECOM.ARR(28)
00109: $DEFINE Pin%%V0S1P5.Column%%29 STAGECOM.ARR(29)
00110: $DEFINE Pin%%V0S1P5.Column%%30 STAGECOM.ARR(30)
00111: $DEFINE Pin%%V0S1P5.Column%%31 STAGECOM.ARR(31)
00112: $DEFINE GET.Pin%%V0S1P5 CALL $DSP.GetNext(1,Pin%%V0S1P5.REJECTEDCODE)
00113: IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'DSLink18.Derivation')
00113 00090 : 010 bitand STAGECOM.TRACEMODE 16 => $R0
00113 00098 : 106 ne $R0 0 => $R1
00113 000A0 : 2DE testfw $R1 000BE:
00113 000A8 : 0F8 move -2 => _T0000
00113 000AE : 0F8 move "DSLink18.Derivation" => _T0001
00113 000B4 : 01E call "$PERF.NAME" _T0000 _T0001
00114: $DEFINE Pin%%V0S1P7.Column%%1 STAGECOM.ARR(4)
00115: $DEFINE Pin%%V0S1P7.Column%%2 STAGECOM.ARR(5)
00116: $DEFINE Pin%%V0S1P7.Column%%3 STAGECOM.ARR(6)
00117: $DEFINE Pin%%V0S1P7.Column%%4 STAGECOM.ARR(7)
00118: $DEFINE Pin%%V0S1P7.Column%%5 STAGECOM.ARR(8)
00119: $DEFINE Pin%%V0S1P7.Column%%6 STAGECOM.ARR(32)
00120: $DEFINE Pin%%V0S1P7.Column%%7 STAGECOM.ARR(33)
00121: $DEFINE Pin%%V0S1P7.Column%%8 STAGECOM.ARR(34)
00122: $DEFINE Pin%%V0S1P7.Column%%9 STAGECOM.ARR(35)
00123: $DEFINE Pin%%V0S1P7.Column%%10 STAGECOM.ARR(36)
00124: $DEFINE Pin%%V0S1P7.Column%%11 STAGECOM.ARR(37)
00125: $DEFINE Pin%%V0S1P7.Column%%12 STAGECOM.ARR(38)
00126: $DEFINE Pin%%V0S1P7.Column%%13 STAGECOM.ARR(39)
00127: $DEFINE Pin%%V0S1P7.Column%%14 STAGECOM.ARR(40)
00128: $DEFINE Pin%%V0S1P7.Column%%15 STAGECOM.ARR(41)
00129: $DEFINE Pin%%V0S1P7.Column%%16 STAGECOM.ARR(15)
00130: $DEFINE Pin%%V0S1P7.Column%%17 STAGECOM.ARR(16)
00131: $DEFINE Pin%%V0S1P7.Column%%18 STAGECOM.ARR(17)
00132: $DEFINE Pin%%V0S1P7.Column%%19 STAGECOM.ARR(42)
00133: $DEFINE Pin%%V0S1P7.Column%%20 STAGECOM.ARR(43)
00134: $DEFINE Pin%%V0S1P7.Column%%21 STAGECOM.ARR(20)
00135: $DEFINE Pin%%V0S1P7.Column%%22 STAGECOM.ARR(44)
00136: $DEFINE Pin%%V0S1P7.Column%%23 STAGECOM.ARR(22)
00137: $DEFINE Pin%%V0S1P7.Column%%24 STAGECOM.ARR(23)
00138: $DEFINE Pin%%V0S1P7.Column%%25 STAGECOM.ARR(24)
00139: $DEFINE Pin%%V0S1P7.Column%%26 STAGECOM.ARR(25)
00140: $DEFINE Pin%%V0S1P7.Column%%27 STAGECOM.ARR(26)
00141: $DEFINE Pin%%V0S1P7.Column%%28 STAGECOM.ARR(27)
00142: $DEFINE Pin%%V0S1P7.Column%%29 STAGECOM.ARR(28)
00143: $DEFINE Pin%%V0S1P7.Column%%30 STAGECOM.ARR(45)
00144: $DEFINE Pin%%V0S1P7.Column%%31 STAGECOM.ARR(30)
00145: $DEFINE Pin%%V0S1P7.Column%%32 STAGECOM.ARR(31)
00146: $DEFINE PUT.Pin%%V0S1P7 CALL $DS.SEQPUT(2, Pin%%V0S1P7.REJECTEDCODE)
00147:
00148: UPDATE.COUNT = STAGECOM.RATE
00148 000BE : 0E6 matrix STAGECOM.NUM.ROWS 0 1 => UPDATE.COUNT
00149:
00150:
00151:
00152: LOOP
00153: REJECTED = @TRUE
00153 000C8 : 0F8 move 1 => REJECTED
00154: * Get next row from primary input pin zoph_arde_out
00155: STAGECOM.PINNO = 1
00155 000CE : 0FC move_matrix 1 0 1 => STAGECOM.PIN
00156: GET.Pin%%V0S1P5
00156 000D8 : 0F8 move 1 => _T0002
00156 000DE : 01E call "$DSP.GetNext" _T0002 Pin%%V0S1P5.REJECTEDCODE
00157: ERROR = Pin%%V0S1P5.REJECTEDCODE
00157 000E8 : 0F8 move Pin%%V0S1P5.REJECTEDCODE => ERROR
00158: WHILE NOT(ERROR)
00158 000EE : 10C nop
00158 000F0 : 10E not ERROR => $R1
00158 000F6 : 2DE testfw $R1 0057C:
00159:
00160: STAGECOM.PINNO = 2
00160 00100 : 0FC move_matrix 2 0 1 => STAGECOM.PIN
00161: IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
00161 0010A : 010 bitand STAGECOM.TRACEMODE 16 => $R1
00161 00112 : 106 ne $R1 0 => $R2
00161 0011A : 2DE testfw $R2 00132:
00161 00124 : 0F8 move -2 => _T0003
00161 0012A : 01E call "$PERF.BEGIN" _T0003
00162: IF @TRUE THEN
00162 00132 : 2DE testfw 1 0053C:
00163: * Column derivation code for pin DSLink18
00164: Pin%%V0S1P7.Column%%6 = ( IF Num(left(Pin%%V0S1P5.Column%%30, 11)) then left(Pin%%V0S1P5.Column%%30, 11) else "")
00164 0013C : 0E6 matrix STAGECOM.ARR 30 1 => $R2
00164 00146 : 286 left $R2 11 => $R3
00164 0014E : 110 num $R3 => $R4
00164 00154 : 2DE testfw $R4 00174:
00164 0015C : 0E6 matrix STAGECOM.ARR 30 1 => $R6
00164 00166 : 286 left $R6 11 => $R5
00164 0016E : 0C2 jump 0017A:
00164 00174 : 0F8 move "" => $R5
00164 0017A : 0FC move_matrix $R5 32 1 => STAGECOM.ARR
00165: Pin%%V0S1P7.Column%%7 = (left(Pin%%V0S1P5.Column%%9, 10))
00165 00184 : 0E6 matrix STAGECOM.ARR 9 1 => $R5
00165 0018E : 286 left $R5 10 => $R7
00165 00196 : 0FC move_matrix $R7 33 1 => STAGECOM.ARR
00166: Pin%%V0S1P7.Column%%8 = (Iconv(Pin%%V0S1P5.Column%%10, "D4YMD[4,2,2]"))
00166 001A0 : 0E6 matrix STAGECOM.ARR 10 1 => $R7
00166 001AA : 0AC iconv $R7 "D4YMD[4,2,2]" => $R8
00166 001B2 : 0FC move_matrix $R8 34 1 => STAGECOM.ARR
00167: Pin%%V0S1P7.Column%%9 = ( IF Num(Pin%%V0S1P5.Column%%30[23, 11]) then Pin%%V0S1P5.Column%%30[23, 11] else "")
00167 001BC : 0E6 matrix STAGECOM.ARR 30 1 => $R8
00167 001C6 : 0F0 mid $R8 23 11 => $R9
00167 001D0 : 110 num $R9 => $R10
00167 001D6 : 2DE testfw $R10 001FC:
00167 001E0 : 0E6 matrix STAGECOM.ARR 30 1 => $R12
00167 001EA : 0F0 mid $R12 23 11 => $R11
00167 001F4 : 0C2 jump 00202:
00167 001FC : 0F8 move "" => $R11
00167 00202 : 0FC move_matrix $R11 35 1 => STAGECOM.ARR
00168: Pin%%V0S1P7.Column%%10 = ( IF Num(left(Pin%%V0S1P5.Column%%11, 11)) then left(Pin%%V0S1P5.Column%%11, 11) ELSE "")
00168 0020C : 0E6 matrix STAGECOM.ARR 11 1 => $R11
00168 00216 : 286 left $R11 11 => $R13
00168 0021E : 110 num $R13 => $R14
00168 00224 : 2DE testfw $R14 00244:
00168 0022C : 0E6 matrix STAGECOM.ARR 11 1 => $R16
00168 00236 : 286 left $R16 11 => $R15
00168 0023E : 0C2 jump 0024A:
00168 00244 : 0F8 move "" => $R15
00168 0024A : 0FC move_matrix $R15 36 1 => STAGECOM.ARR
00169: Pin%%V0S1P7.Column%%11 = ( IF Pin%%V0S1P5.Column%%25 = 'L3' OR Pin%%V0S1P5.Column%%24 <> @NULL OR LEFT(Pin%%V0S1P5.Column%%26, 1) = 'Z' THEN left(Pin%%V0S1P5.Column%%12, ELSE @NULL)
00169 00254 : 0E6 matrix STAGECOM.ARR 25 1 => $R15
00169 0025E : 06E eq $R15 "L3" => $R17
00169 00266 : 0E6 matrix STAGECOM.ARR 24 1 => $R18
00169 00270 : 106 ne $R18 @NULL => $R19
00169 00278 : 122 or $R17 $R19 => $R20
00169 00280 : 0E6 matrix STAGECOM.ARR 26 1 => $R21
00169 0028A : 286 left $R21 1 => $R22
00169 00292 : 06E eq $R22 "Z" => $R23
00169 0029A : 122 or $R20 $R23 => $R24
00169 002A2 : 2DE testfw $R24 002C4:
00169 002AC : 0E6 matrix STAGECOM.ARR 12 1 => $R26
00169 002B6 : 286 left $R26 8 => $R25
00169 002BE : 0C2 jump 002CA:
00169 002C4 : 0F8 move @NULL => $R25
00169 002CA : 0FC move_matrix $R25 37 1 => STAGECOM.ARR
00170: Pin%%V0S1P7.Column%%12 = (Iconv(Pin%%V0S1P5.Column%%13, "D4YMD[4,2,2]"))
00170 002D4 : 0E6 matrix STAGECOM.ARR 13 1 => $R25
00170 002DE : 0AC iconv $R25 "D4YMD[4,2,2]" => $R27
00170 002E6 : 0FC move_matrix $R27 38 1 => STAGECOM.ARR
00171: Pin%%V0S1P7.Column%%13 = (Iconv(Pin%%V0S1P5.Column%%14, "D4YMD[4,2,2]"))
00171 002F0 : 0E6 matrix STAGECOM.ARR 14 1 => $R27
00171 002FA : 0AC iconv $R27 "D4YMD[4,2,2]" => $R28
00171 00302 : 0FC move_matrix $R28 39 1 => STAGECOM.ARR
00172: Pin%%V0S1P7.Column%%14 = ( IF Num(Pin%%V0S1P5.Column%%30[15, 4]) or Pin%%V0S1P5.Column%%30[15, 4] = "CIBM" then Pin%%V0S1P5.Column%%30[15, 4] else @NULL)
00172 0030C : 0E6 matrix STAGECOM.ARR 30 1 => $R28
00172 00316 : 0F0 mid $R28 15 4 => $R29
00172 00320 : 110 num $R29 => $R30
00172 00326 : 0E6 matrix STAGECOM.ARR 30 1 => $R31
00172 00330 : 0F0 mid $R31 15 4 => $R32
00172 0033A : 06E eq $R32 "CIBM" => $R33
00172 00342 : 122 or $R30 $R33 => $R34
00172 0034A : 2DE testfw $R34 00370:
00172 00354 : 0E6 matrix STAGECOM.ARR 30 1 => $R36
00172 0035E : 0F0 mid $R36 15 4 => $R35
00172 00368 : 0C2 jump 00376:
00172 00370 : 0F8 move @NULL => $R35
00172 00376 : 0FC move_matrix $R35 40 1 => STAGECOM.ARR
00173: Pin%%V0S1P7.Column%%15 = ( IF Num(Pin%%V0S1P5.Column%%30[19, 4]) then Pin%%V0S1P5.Column%%30[19, 4] else @NULL)
00173 00380 : 0E6 matrix STAGECOM.ARR 30 1 => $R35
00173 0038A : 0F0 mid $R35 19 4 => $R37
00173 00394 : 110 num $R37 => $R38
00173 0039A : 2DE testfw $R38 003C0:
00173 003A4 : 0E6 matrix STAGECOM.ARR 30 1 => $R40
00173 003AE : 0F0 mid $R40 19 4 => $R39
00173 003B8 : 0C2 jump 003C6:
00173 003C0 : 0F8 move @NULL => $R39
00173 003C6 : 0FC move_matrix $R39 41 1 => STAGECOM.ARR
00174: Pin%%V0S1P7.Column%%19 = ( if Pin%%V0S1P5.Column%%18 Eq 00000000 THEN Pin%%V0S1P5.Column%%18 else Iconv(Pin%%V0S1P5.Column%%18, "D4YMD[4,2,2]"))
00174 003D0 : 0E6 matrix STAGECOM.ARR 18 1 => $R39
00174 003DA : 06E eq $R39 0 => $R41
00174 003E2 : 2DE testfw $R41 003FC:
00174 003EC : 0E6 matrix STAGECOM.ARR 18 1 => $R42
00174 003F6 : 0C2 jump 0040E:
00174 003FC : 0E6 matrix STAGECOM.ARR 18 1 => $R43
00174 00406 : 0AC iconv $R43 "D4YMD[4,2,2]" => $R42
00174 0040E : 0FC move_matrix $R42 42 1 => STAGECOM.ARR
00175: Pin%%V0S1P7.Column%%20 = (Iconv(Pin%%V0S1P5.Column%%19, "D4YMD[4,2,2]"))
00175 00418 : 0E6 matrix STAGECOM.ARR 19 1 => $R42
00175 00422 : 0AC iconv $R42 "D4YMD[4,2,2]" => $R44
00175 0042A : 0FC move_matrix $R44 43 1 => STAGECOM.ARR
00176: Pin%%V0S1P7.Column%%22 = ( if Right(Pin%%V0S1P5.Column%%21, 1) = "-" then "-" : TRIM(Pin%%V0S1P5.Column%%21, "-", "T") else Pin%%V0S1P5.Column%%21)
00176 00434 : 0E6 matrix STAGECOM.ARR 21 1 => $R44
00176 0043E : 164 right $R44 1 => $R45
00176 00446 : 06E eq $R45 "-" => $R46
00176 0044E : 2DE testfw $R46 0047C:
00176 00458 : 0E6 matrix STAGECOM.ARR 21 1 => $R48
00176 00462 : 24E ptrim $R48 "-" "T" => $R49
00176 0046C : 03A concat "-" $R49 => $R47
00176 00474 : 0C2 jump 00486:
00176 0047C : 0E6 matrix STAGECOM.ARR 21 1 => $R47
00176 00486 : 0FC move_matrix $R47 44 1 => STAGECOM.ARR
00177: Pin%%V0S1P7.Column%%30 = ( if Pin%%V0S1P5.Column%%29 eq 00000000 then Pin%%V0S1P5.Column%%29 else Iconv(Pin%%V0S1P5.Column%%29, "D4YMD[4,2,2]"))
00177 00490 : 0E6 matrix STAGECOM.ARR 29 1 => $R47
00177 0049A : 06E eq $R47 0 => $R50
00177 004A2 : 2DE testfw $R50 004BC:
00177 004AC : 0E6 matrix STAGECOM.ARR 29 1 => $R51
00177 004B6 : 0C2 jump 004CE:
00177 004BC : 0E6 matrix STAGECOM.ARR 29 1 => $R52
00177 004C6 : 0AC iconv $R52 "D4YMD[4,2,2]" => $R51
00177 004CE : 0FC move_matrix $R51 45 1 => STAGECOM.ARR
00178: Pin%%V0S1P7.REJECTED = @FALSE
00178 004D8 : 0F8 move 0 => Pin%%V0S1P7.REJECTED
00179: IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-2)
00179 004DE : 010 bitand STAGECOM.TRACEMODE 16 => $R51
00179 004E6 : 106 ne $R51 0 => $R53
00179 004EE : 2DE testfw $R53 00506:
00179 004F8 : 0F8 move -2 => _T0004
00179 004FE : 01E call "$PERF.END" _T0004
00180:
00181: PUT.Pin%%V0S1P7
00181 00506 : 0F8 move 2 => _T0005
00181 0050C : 01E call "$DS.SEQPUT" _T0005 Pin%%V0S1P7.REJECTEDCODE
00182: IF NOT(Pin%%V0S1P7.REJECTEDCODE) THEN
00182 00516 : 10E not Pin%%V0S1P7.REJECTEDCODE => $R53
00182 0051C : 2DE testfw $R53 00530:
00183: REJECTED = @FALSE
00183 00524 : 0F8 move 0 => REJECTED
00183 0052A : 0C2 jump 00536:
00184: END ELSE
00185: Pin%%V0S1P7.REJECTED = @TRUE
00185 00530 : 0F8 move 1 => Pin%%V0S1P7.REJECTED
00185 00536 : 0C2 jump 00548:
00186: END
00187: END
00188: ELSE
00189: Pin%%V0S1P7.REJECTED = @TRUE
00189 0053C : 0F8 move 1 => Pin%%V0S1P7.REJECTED
00190: Pin%%V0S1P7.REJECTEDCODE = 0
00190 00542 : 0F8 move 0 => Pin%%V0S1P7.REJECTEDCODE
00191: END
00192:
00193:
00194: UPDATE.COUNT -= 1
00194 00548 : 194 sub UPDATE.COUNT 1 => UPDATE.COUNT
00195: IF UPDATE.COUNT LE 0 THEN CALL DSD.Update(HANDLES);UPDATE.COUNT = STAGECOM.RATE
00195 00550 : 0CE le UPDATE.COUNT 0 => $R53
00195 00558 : 2DE testfw $R53 00572:
00195 00560 : 01E call "DSD.Update" HANDLES
00195 00568 : 0E6 matrix STAGECOM.NUM.ROWS 0 1 => UPDATE.COUNT
00196: REPEAT
00196 00572 : 10C nop
00196 00574 : 0C2 jump 000C8:
00197: RETURN
00197 0057C : 15C return
00198: END
00198 0057E : 15C return
*** Output from UniVerse command was: ***
Subroutine "RT_BP802.O/JOB.1617952052.DT.139397119.TRANS1"
Compiler Version: 7.5.1.1
Object Level : 5
Machine Type : 10
Local Variables : 59
Subroutine args : 2
Unnamed Common : 0
Named Common Seg: 2
Object Size : 1408
Source lines : 199
00001: * Tokens were replaced below as follows:
00002: * Pin%%V0S1P5.Column%%1 <= zoph_arde_out.OHREQUID
00003: * Pin%%V0S1P5.Column%%2 <= zoph_arde_out.DATAPAKID
00004: * Pin%%V0S1P5.Column%%3 <= zoph_arde_out.RECORD
00005: * Pin%%V0S1P5.Column%%4 <= zoph_arde_out.COMP_CODE
00006: * Pin%%V0S1P5.Column%%5 <= zoph_arde_out.DEBITOR
00007: * Pin%%V0S1P5.Column%%6 <= zoph_arde_out.AC_DOC_NO
00008: * Pin%%V0S1P5.Column%%7 <= zoph_arde_out.FISCPER
00009: * Pin%%V0S1P5.Column%%8 <= zoph_arde_out.ITEM_NUM
00010: * Pin%%V0S1P5.Column%%9 <= zoph_arde_out.REF_DOC_NO
00011: * Pin%%V0S1P5.Column%%10 <= zoph_arde_out.DOC_DATE
00012: * Pin%%V0S1P5.Column%%11 <= zoph_arde_out.REF_KEY2
00013: * Pin%%V0S1P5.Column%%12 <= zoph_arde_out.REF_KEY1
00014: * Pin%%V0S1P5.Column%%13 <= zoph_arde_out.PSTNG_DATE
00015: * Pin%%V0S1P5.Column%%14 <= zoph_arde_out.CREATEDON
00016: * Pin%%V0S1P5.Column%%15 <= zoph_arde_out.GL_ACCOUNT
00017: * Pin%%V0S1P5.Column%%16 <= zoph_arde_out.CLR_DOC_NO
00018: * Pin%%V0S1P5.Column%%17 <= zoph_arde_out.INV_DOC_NO
00019: * Pin%%V0S1P5.Column%%18 <= zoph_arde_out.CLEAR_DATE
00020: * Pin%%V0S1P5.Column%%19 <= zoph_arde_out.NETDUEDATE
00021: * Pin%%V0S1P5.Column%%20 <= zoph_arde_out.LOC_CURRCY
00022: * Pin%%V0S1P5.Column%%21 <= zoph_arde_out.DEB_CRE_LC
00023: * Pin%%V0S1P5.Column%%22 <= zoph_arde_out.FI_DOCSTAT
00024: * Pin%%V0S1P5.Column%%23 <= zoph_arde_out.AC_DOC_TYP
00025: * Pin%%V0S1P5.Column%%24 <= zoph_arde_out.ZI_REF_CD
00026: * Pin%%V0S1P5.Column%%25 <= zoph_arde_out.ZI_REASON
00027: * Pin%%V0S1P5.Column%%26 <= zoph_arde_out.REASON_CDE
00028: * Pin%%V0S1P5.Column%%27 <= zoph_arde_out.DUNN_BLOCK
00029: * Pin%%V0S1P5.Column%%28 <= zoph_arde_out.DUNN_LEVEL
00030: * Pin%%V0S1P5.Column%%29 <= zoph_arde_out.LAST_DUNN
00031: * Pin%%V0S1P5.Column%%30 <= zoph_arde_out.ZI_LTTEXT
00032: * Pin%%V0S1P5.Column%%31 <= zoph_arde_out.ZI_ZUONR
00033: * GET.Pin%%V0S1P5 <= GET.zoph_arde_out
00034: * Pin%%V0S1P5.REJECTEDCODE <= zoph_arde_out.REJECTEDCODE
00035: * Pin%%V0S1P7.Column%%1 <= DSLink18.CDE_COMPANY
00036: * Pin%%V0S1P7.Column%%2 <= DSLink18.IDT_SAP_CUSTOMER
00037: * Pin%%V0S1P7.Column%%3 <= DSLink18.NUM_SAP_ACCT_DOC
00038: * Pin%%V0S1P7.Column%%4 <= DSLink18.NUM_SAP_FISCPER
00039: * Pin%%V0S1P7.Column%%5 <= DSLink18.NUM_SAP_INVC_LINE
00040: * Pin%%V0S1P7.Column%%6 <= DSLink18.IDT_CUSTOMER
00041: * Pin%%V0S1P7.Column%%7 <= DSLink18.NUM_INVOICE
00042: * Pin%%V0S1P7.Column%%8 <= DSLink18.DTE_INVOICE
00043: * Pin%%V0S1P7.Column%%9 <= DSLink18.IDT_CUST_BILL
00044: * Pin%%V0S1P7.Column%%10 <= DSLink18.IDT_CUST_INSTALL
00045: * Pin%%V0S1P7.Column%%11 <= DSLink18.IDT_SAP_WRITE_OFF
00046: * Pin%%V0S1P7.Column%%12 <= DSLink18.DTE_EFFECTIVE
00047: * Pin%%V0S1P7.Column%%13 <= DSLink18.DTE_TRAN_CREATE
00048: * Pin%%V0S1P7.Column%%14 <= DSLink18.NUM_JOURNAL_VOUCH
00049: * Pin%%V0S1P7.Column%%15 <= DSLink18.NUM_BRANCH
00050: * Pin%%V0S1P7.Column%%16 <= DSLink18.NUM_GL_ACCOUNT
00051: * Pin%%V0S1P7.Column%%17 <= DSLink18.NUM_SAP_DOC_CLEAR
00052: * Pin%%V0S1P7.Column%%18 <= DSLink18.NUM_SAP_DOC_PT_PAY
00053: * Pin%%V0S1P7.Column%%19 <= DSLink18.DTE_INVC_CLEARED
00054: * Pin%%V0S1P7.Column%%20 <= DSLink18.DTE_SAP_NET_DUE
00055: * Pin%%V0S1P7.Column%%21 <= DSLink18.CDE_SAP_LOCL_CRNCY
00056: * Pin%%V0S1P7.Column%%22 <= DSLink18.AMT_SAP_DOCUMENT
00057: * Pin%%V0S1P7.Column%%23 <= DSLink18.CDE_SAP_DOC_STATUS
00058: * Pin%%V0S1P7.Column%%24 <= DSLink18.CDE_SAP_ACCT_DOC
00059: * Pin%%V0S1P7.Column%%25 <= DSLink18.CDE_SAP_REF_REAS
00060: * Pin%%V0S1P7.Column%%26 <= DSLink18.CDE_SAP_REVERSAL
00061: * Pin%%V0S1P7.Column%%27 <= DSLink18.CDE_SAP_WRITE_OFF
00062: * Pin%%V0S1P7.Column%%28 <= DSLink18.CDE_SAP_DUNN_BLOCK
00063: * Pin%%V0S1P7.Column%%29 <= DSLink18.CDE_SAP_DUNN_LEVEL
00064: * Pin%%V0S1P7.Column%%30 <= DSLink18.DTE_SAP_LAST_DUNN
00065: * Pin%%V0S1P7.Column%%31 <= DSLink18.TXT_SAP_LINE_DESC
00066: * Pin%%V0S1P7.Column%%32 <= DSLink18.NUM_SAP_ASSIGNMENT
00067: * PUT.Pin%%V0S1P7 <= PUT.DSLink18
00068: * Pin%%V0S1P7.REJECTED <= DSLink18.REJECTED
00069: * Pin%%V0S1P7.REJECTEDCODE <= DSLink18.REJECTEDCODE
00070: *
00071: * Subroutine for active stage BWDB2AR4Extract_FullLoad_File.Tranform_rules generated at 11:36:57 02 MAR 2006
00072: *
00073: SUBROUTINE DSTransformerStage(HANDLES,ERROR)
00074:
00075: $INCLUDE DSINCLUDE DSD_RTCONFIG.H
00076: $INCLUDE DSINCLUDE DSD_STAGE.H
00076 00000 : 058 dimcom STAGECOM.PIN 1024 => 1
00076 00008 : 058 dimcom STAGECOM.NUM.ROWS 1024 => 1
00076 00010 : 058 dimcom STAGECOM.ARR 8192 => 1
00077: $INCLUDE DSINCLUDE DSD_BCI.H
00077 00018 : 058 dimcom BCICOM.DSN 1024 => 1
00077 00020 : 058 dimcom BCICOM.HDBC 1024 => 1
00077 00028 : 058 dimcom BCICOM.NUM.STMTS 1024 => 1
00077 00030 : 102 mul 1024 2 => $R0
00077 00038 : 058 dimcom BCICOM.HSTMT $R0 => 1
00077 00040 : 058 dimcom BCICOM.TXROWS 1024 => 1
00077 00048 : 058 dimcom BCICOM.TXSIZE 1024 => 1
00077 00050 : 058 dimcom BCICOM.PRIVATE 1024 => 1
00077 00058 : 058 dimcom BCICOM.ARR.ROWS 1024 => 1
00077 00060 : 058 dimcom BCICOM.ARR.SIZE 1024 => 1
00077 00068 : 058 dimcom BCICOM.NLS.MAPNAME 1024 => 1
00077 00070 : 058 dimcom BCICOM.ARR 8192 => 1
00077 00078 : 058 dimcom BCICOM.MAP.ARR 8192 => 1
00077 00080 : 058 dimcom BCICOM.TXSTATE 1024 => 1
00077 00088 : 058 dimcom BCICOM.DO.REPREPARE 1024 => 1
00078:
00079: $INCLUDE DSINCLUDE JOBCONTROL.H
00080: DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'
00081: $DEFINE Pin%%V0S1P5.Column%%1 STAGECOM.ARR(1)
00082: $DEFINE Pin%%V0S1P5.Column%%2 STAGECOM.ARR(2)
00083: $DEFINE Pin%%V0S1P5.Column%%3 STAGECOM.ARR(3)
00084: $DEFINE Pin%%V0S1P5.Column%%4 STAGECOM.ARR(4)
00085: $DEFINE Pin%%V0S1P5.Column%%5 STAGECOM.ARR(5)
00086: $DEFINE Pin%%V0S1P5.Column%%6 STAGECOM.ARR(6)
00087: $DEFINE Pin%%V0S1P5.Column%%7 STAGECOM.ARR(7)
00088: $DEFINE Pin%%V0S1P5.Column%%8 STAGECOM.ARR(8)
00089: $DEFINE Pin%%V0S1P5.Column%%9 STAGECOM.ARR(9)
00090: $DEFINE Pin%%V0S1P5.Column%%10 STAGECOM.ARR(10)
00091: $DEFINE Pin%%V0S1P5.Column%%11 STAGECOM.ARR(11)
00092: $DEFINE Pin%%V0S1P5.Column%%12 STAGECOM.ARR(12)
00093: $DEFINE Pin%%V0S1P5.Column%%13 STAGECOM.ARR(13)
00094: $DEFINE Pin%%V0S1P5.Column%%14 STAGECOM.ARR(14)
00095: $DEFINE Pin%%V0S1P5.Column%%15 STAGECOM.ARR(15)
00096: $DEFINE Pin%%V0S1P5.Column%%16 STAGECOM.ARR(16)
00097: $DEFINE Pin%%V0S1P5.Column%%17 STAGECOM.ARR(17)
00098: $DEFINE Pin%%V0S1P5.Column%%18 STAGECOM.ARR(18)
00099: $DEFINE Pin%%V0S1P5.Column%%19 STAGECOM.ARR(19)
00100: $DEFINE Pin%%V0S1P5.Column%%20 STAGECOM.ARR(20)
00101: $DEFINE Pin%%V0S1P5.Column%%21 STAGECOM.ARR(21)
00102: $DEFINE Pin%%V0S1P5.Column%%22 STAGECOM.ARR(22)
00103: $DEFINE Pin%%V0S1P5.Column%%23 STAGECOM.ARR(23)
00104: $DEFINE Pin%%V0S1P5.Column%%24 STAGECOM.ARR(24)
00105: $DEFINE Pin%%V0S1P5.Column%%25 STAGECOM.ARR(25)
00106: $DEFINE Pin%%V0S1P5.Column%%26 STAGECOM.ARR(26)
00107: $DEFINE Pin%%V0S1P5.Column%%27 STAGECOM.ARR(27)
00108: $DEFINE Pin%%V0S1P5.Column%%28 STAGECOM.ARR(28)
00109: $DEFINE Pin%%V0S1P5.Column%%29 STAGECOM.ARR(29)
00110: $DEFINE Pin%%V0S1P5.Column%%30 STAGECOM.ARR(30)
00111: $DEFINE Pin%%V0S1P5.Column%%31 STAGECOM.ARR(31)
00112: $DEFINE GET.Pin%%V0S1P5 CALL $DSP.GetNext(1,Pin%%V0S1P5.REJECTEDCODE)
00113: IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'DSLink18.Derivation')
00113 00090 : 010 bitand STAGECOM.TRACEMODE 16 => $R0
00113 00098 : 106 ne $R0 0 => $R1
00113 000A0 : 2DE testfw $R1 000BE:
00113 000A8 : 0F8 move -2 => _T0000
00113 000AE : 0F8 move "DSLink18.Derivation" => _T0001
00113 000B4 : 01E call "$PERF.NAME" _T0000 _T0001
00114: $DEFINE Pin%%V0S1P7.Column%%1 STAGECOM.ARR(4)
00115: $DEFINE Pin%%V0S1P7.Column%%2 STAGECOM.ARR(5)
00116: $DEFINE Pin%%V0S1P7.Column%%3 STAGECOM.ARR(6)
00117: $DEFINE Pin%%V0S1P7.Column%%4 STAGECOM.ARR(7)
00118: $DEFINE Pin%%V0S1P7.Column%%5 STAGECOM.ARR(8)
00119: $DEFINE Pin%%V0S1P7.Column%%6 STAGECOM.ARR(32)
00120: $DEFINE Pin%%V0S1P7.Column%%7 STAGECOM.ARR(33)
00121: $DEFINE Pin%%V0S1P7.Column%%8 STAGECOM.ARR(34)
00122: $DEFINE Pin%%V0S1P7.Column%%9 STAGECOM.ARR(35)
00123: $DEFINE Pin%%V0S1P7.Column%%10 STAGECOM.ARR(36)
00124: $DEFINE Pin%%V0S1P7.Column%%11 STAGECOM.ARR(37)
00125: $DEFINE Pin%%V0S1P7.Column%%12 STAGECOM.ARR(38)
00126: $DEFINE Pin%%V0S1P7.Column%%13 STAGECOM.ARR(39)
00127: $DEFINE Pin%%V0S1P7.Column%%14 STAGECOM.ARR(40)
00128: $DEFINE Pin%%V0S1P7.Column%%15 STAGECOM.ARR(41)
00129: $DEFINE Pin%%V0S1P7.Column%%16 STAGECOM.ARR(15)
00130: $DEFINE Pin%%V0S1P7.Column%%17 STAGECOM.ARR(16)
00131: $DEFINE Pin%%V0S1P7.Column%%18 STAGECOM.ARR(17)
00132: $DEFINE Pin%%V0S1P7.Column%%19 STAGECOM.ARR(42)
00133: $DEFINE Pin%%V0S1P7.Column%%20 STAGECOM.ARR(43)
00134: $DEFINE Pin%%V0S1P7.Column%%21 STAGECOM.ARR(20)
00135: $DEFINE Pin%%V0S1P7.Column%%22 STAGECOM.ARR(44)
00136: $DEFINE Pin%%V0S1P7.Column%%23 STAGECOM.ARR(22)
00137: $DEFINE Pin%%V0S1P7.Column%%24 STAGECOM.ARR(23)
00138: $DEFINE Pin%%V0S1P7.Column%%25 STAGECOM.ARR(24)
00139: $DEFINE Pin%%V0S1P7.Column%%26 STAGECOM.ARR(25)
00140: $DEFINE Pin%%V0S1P7.Column%%27 STAGECOM.ARR(26)
00141: $DEFINE Pin%%V0S1P7.Column%%28 STAGECOM.ARR(27)
00142: $DEFINE Pin%%V0S1P7.Column%%29 STAGECOM.ARR(28)
00143: $DEFINE Pin%%V0S1P7.Column%%30 STAGECOM.ARR(45)
00144: $DEFINE Pin%%V0S1P7.Column%%31 STAGECOM.ARR(30)
00145: $DEFINE Pin%%V0S1P7.Column%%32 STAGECOM.ARR(31)
00146: $DEFINE PUT.Pin%%V0S1P7 CALL $DS.SEQPUT(2, Pin%%V0S1P7.REJECTEDCODE)
00147:
00148: UPDATE.COUNT = STAGECOM.RATE
00148 000BE : 0E6 matrix STAGECOM.NUM.ROWS 0 1 => UPDATE.COUNT
00149:
00150:
00151:
00152: LOOP
00153: REJECTED = @TRUE
00153 000C8 : 0F8 move 1 => REJECTED
00154: * Get next row from primary input pin zoph_arde_out
00155: STAGECOM.PINNO = 1
00155 000CE : 0FC move_matrix 1 0 1 => STAGECOM.PIN
00156: GET.Pin%%V0S1P5
00156 000D8 : 0F8 move 1 => _T0002
00156 000DE : 01E call "$DSP.GetNext" _T0002 Pin%%V0S1P5.REJECTEDCODE
00157: ERROR = Pin%%V0S1P5.REJECTEDCODE
00157 000E8 : 0F8 move Pin%%V0S1P5.REJECTEDCODE => ERROR
00158: WHILE NOT(ERROR)
00158 000EE : 10C nop
00158 000F0 : 10E not ERROR => $R1
00158 000F6 : 2DE testfw $R1 0057C:
00159:
00160: STAGECOM.PINNO = 2
00160 00100 : 0FC move_matrix 2 0 1 => STAGECOM.PIN
00161: IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
00161 0010A : 010 bitand STAGECOM.TRACEMODE 16 => $R1
00161 00112 : 106 ne $R1 0 => $R2
00161 0011A : 2DE testfw $R2 00132:
00161 00124 : 0F8 move -2 => _T0003
00161 0012A : 01E call "$PERF.BEGIN" _T0003
00162: IF @TRUE THEN
00162 00132 : 2DE testfw 1 0053C:
00163: * Column derivation code for pin DSLink18
00164: Pin%%V0S1P7.Column%%6 = ( IF Num(left(Pin%%V0S1P5.Column%%30, 11)) then left(Pin%%V0S1P5.Column%%30, 11) else "")
00164 0013C : 0E6 matrix STAGECOM.ARR 30 1 => $R2
00164 00146 : 286 left $R2 11 => $R3
00164 0014E : 110 num $R3 => $R4
00164 00154 : 2DE testfw $R4 00174:
00164 0015C : 0E6 matrix STAGECOM.ARR 30 1 => $R6
00164 00166 : 286 left $R6 11 => $R5
00164 0016E : 0C2 jump 0017A:
00164 00174 : 0F8 move "" => $R5
00164 0017A : 0FC move_matrix $R5 32 1 => STAGECOM.ARR
00165: Pin%%V0S1P7.Column%%7 = (left(Pin%%V0S1P5.Column%%9, 10))
00165 00184 : 0E6 matrix STAGECOM.ARR 9 1 => $R5
00165 0018E : 286 left $R5 10 => $R7
00165 00196 : 0FC move_matrix $R7 33 1 => STAGECOM.ARR
00166: Pin%%V0S1P7.Column%%8 = (Iconv(Pin%%V0S1P5.Column%%10, "D4YMD[4,2,2]"))
00166 001A0 : 0E6 matrix STAGECOM.ARR 10 1 => $R7
00166 001AA : 0AC iconv $R7 "D4YMD[4,2,2]" => $R8
00166 001B2 : 0FC move_matrix $R8 34 1 => STAGECOM.ARR
00167: Pin%%V0S1P7.Column%%9 = ( IF Num(Pin%%V0S1P5.Column%%30[23, 11]) then Pin%%V0S1P5.Column%%30[23, 11] else "")
00167 001BC : 0E6 matrix STAGECOM.ARR 30 1 => $R8
00167 001C6 : 0F0 mid $R8 23 11 => $R9
00167 001D0 : 110 num $R9 => $R10
00167 001D6 : 2DE testfw $R10 001FC:
00167 001E0 : 0E6 matrix STAGECOM.ARR 30 1 => $R12
00167 001EA : 0F0 mid $R12 23 11 => $R11
00167 001F4 : 0C2 jump 00202:
00167 001FC : 0F8 move "" => $R11
00167 00202 : 0FC move_matrix $R11 35 1 => STAGECOM.ARR
00168: Pin%%V0S1P7.Column%%10 = ( IF Num(left(Pin%%V0S1P5.Column%%11, 11)) then left(Pin%%V0S1P5.Column%%11, 11) ELSE "")
00168 0020C : 0E6 matrix STAGECOM.ARR 11 1 => $R11
00168 00216 : 286 left $R11 11 => $R13
00168 0021E : 110 num $R13 => $R14
00168 00224 : 2DE testfw $R14 00244:
00168 0022C : 0E6 matrix STAGECOM.ARR 11 1 => $R16
00168 00236 : 286 left $R16 11 => $R15
00168 0023E : 0C2 jump 0024A:
00168 00244 : 0F8 move "" => $R15
00168 0024A : 0FC move_matrix $R15 36 1 => STAGECOM.ARR
00169: Pin%%V0S1P7.Column%%11 = ( IF Pin%%V0S1P5.Column%%25 = 'L3' OR Pin%%V0S1P5.Column%%24 <> @NULL OR LEFT(Pin%%V0S1P5.Column%%26, 1) = 'Z' THEN left(Pin%%V0S1P5.Column%%12, ELSE @NULL)
00169 00254 : 0E6 matrix STAGECOM.ARR 25 1 => $R15
00169 0025E : 06E eq $R15 "L3" => $R17
00169 00266 : 0E6 matrix STAGECOM.ARR 24 1 => $R18
00169 00270 : 106 ne $R18 @NULL => $R19
00169 00278 : 122 or $R17 $R19 => $R20
00169 00280 : 0E6 matrix STAGECOM.ARR 26 1 => $R21
00169 0028A : 286 left $R21 1 => $R22
00169 00292 : 06E eq $R22 "Z" => $R23
00169 0029A : 122 or $R20 $R23 => $R24
00169 002A2 : 2DE testfw $R24 002C4:
00169 002AC : 0E6 matrix STAGECOM.ARR 12 1 => $R26
00169 002B6 : 286 left $R26 8 => $R25
00169 002BE : 0C2 jump 002CA:
00169 002C4 : 0F8 move @NULL => $R25
00169 002CA : 0FC move_matrix $R25 37 1 => STAGECOM.ARR
00170: Pin%%V0S1P7.Column%%12 = (Iconv(Pin%%V0S1P5.Column%%13, "D4YMD[4,2,2]"))
00170 002D4 : 0E6 matrix STAGECOM.ARR 13 1 => $R25
00170 002DE : 0AC iconv $R25 "D4YMD[4,2,2]" => $R27
00170 002E6 : 0FC move_matrix $R27 38 1 => STAGECOM.ARR
00171: Pin%%V0S1P7.Column%%13 = (Iconv(Pin%%V0S1P5.Column%%14, "D4YMD[4,2,2]"))
00171 002F0 : 0E6 matrix STAGECOM.ARR 14 1 => $R27
00171 002FA : 0AC iconv $R27 "D4YMD[4,2,2]" => $R28
00171 00302 : 0FC move_matrix $R28 39 1 => STAGECOM.ARR
00172: Pin%%V0S1P7.Column%%14 = ( IF Num(Pin%%V0S1P5.Column%%30[15, 4]) or Pin%%V0S1P5.Column%%30[15, 4] = "CIBM" then Pin%%V0S1P5.Column%%30[15, 4] else @NULL)
00172 0030C : 0E6 matrix STAGECOM.ARR 30 1 => $R28
00172 00316 : 0F0 mid $R28 15 4 => $R29
00172 00320 : 110 num $R29 => $R30
00172 00326 : 0E6 matrix STAGECOM.ARR 30 1 => $R31
00172 00330 : 0F0 mid $R31 15 4 => $R32
00172 0033A : 06E eq $R32 "CIBM" => $R33
00172 00342 : 122 or $R30 $R33 => $R34
00172 0034A : 2DE testfw $R34 00370:
00172 00354 : 0E6 matrix STAGECOM.ARR 30 1 => $R36
00172 0035E : 0F0 mid $R36 15 4 => $R35
00172 00368 : 0C2 jump 00376:
00172 00370 : 0F8 move @NULL => $R35
00172 00376 : 0FC move_matrix $R35 40 1 => STAGECOM.ARR
00173: Pin%%V0S1P7.Column%%15 = ( IF Num(Pin%%V0S1P5.Column%%30[19, 4]) then Pin%%V0S1P5.Column%%30[19, 4] else @NULL)
00173 00380 : 0E6 matrix STAGECOM.ARR 30 1 => $R35
00173 0038A : 0F0 mid $R35 19 4 => $R37
00173 00394 : 110 num $R37 => $R38
00173 0039A : 2DE testfw $R38 003C0:
00173 003A4 : 0E6 matrix STAGECOM.ARR 30 1 => $R40
00173 003AE : 0F0 mid $R40 19 4 => $R39
00173 003B8 : 0C2 jump 003C6:
00173 003C0 : 0F8 move @NULL => $R39
00173 003C6 : 0FC move_matrix $R39 41 1 => STAGECOM.ARR
00174: Pin%%V0S1P7.Column%%19 = ( if Pin%%V0S1P5.Column%%18 Eq 00000000 THEN Pin%%V0S1P5.Column%%18 else Iconv(Pin%%V0S1P5.Column%%18, "D4YMD[4,2,2]"))
00174 003D0 : 0E6 matrix STAGECOM.ARR 18 1 => $R39
00174 003DA : 06E eq $R39 0 => $R41
00174 003E2 : 2DE testfw $R41 003FC:
00174 003EC : 0E6 matrix STAGECOM.ARR 18 1 => $R42
00174 003F6 : 0C2 jump 0040E:
00174 003FC : 0E6 matrix STAGECOM.ARR 18 1 => $R43
00174 00406 : 0AC iconv $R43 "D4YMD[4,2,2]" => $R42
00174 0040E : 0FC move_matrix $R42 42 1 => STAGECOM.ARR
00175: Pin%%V0S1P7.Column%%20 = (Iconv(Pin%%V0S1P5.Column%%19, "D4YMD[4,2,2]"))
00175 00418 : 0E6 matrix STAGECOM.ARR 19 1 => $R42
00175 00422 : 0AC iconv $R42 "D4YMD[4,2,2]" => $R44
00175 0042A : 0FC move_matrix $R44 43 1 => STAGECOM.ARR
00176: Pin%%V0S1P7.Column%%22 = ( if Right(Pin%%V0S1P5.Column%%21, 1) = "-" then "-" : TRIM(Pin%%V0S1P5.Column%%21, "-", "T") else Pin%%V0S1P5.Column%%21)
00176 00434 : 0E6 matrix STAGECOM.ARR 21 1 => $R44
00176 0043E : 164 right $R44 1 => $R45
00176 00446 : 06E eq $R45 "-" => $R46
00176 0044E : 2DE testfw $R46 0047C:
00176 00458 : 0E6 matrix STAGECOM.ARR 21 1 => $R48
00176 00462 : 24E ptrim $R48 "-" "T" => $R49
00176 0046C : 03A concat "-" $R49 => $R47
00176 00474 : 0C2 jump 00486:
00176 0047C : 0E6 matrix STAGECOM.ARR 21 1 => $R47
00176 00486 : 0FC move_matrix $R47 44 1 => STAGECOM.ARR
00177: Pin%%V0S1P7.Column%%30 = ( if Pin%%V0S1P5.Column%%29 eq 00000000 then Pin%%V0S1P5.Column%%29 else Iconv(Pin%%V0S1P5.Column%%29, "D4YMD[4,2,2]"))
00177 00490 : 0E6 matrix STAGECOM.ARR 29 1 => $R47
00177 0049A : 06E eq $R47 0 => $R50
00177 004A2 : 2DE testfw $R50 004BC:
00177 004AC : 0E6 matrix STAGECOM.ARR 29 1 => $R51
00177 004B6 : 0C2 jump 004CE:
00177 004BC : 0E6 matrix STAGECOM.ARR 29 1 => $R52
00177 004C6 : 0AC iconv $R52 "D4YMD[4,2,2]" => $R51
00177 004CE : 0FC move_matrix $R51 45 1 => STAGECOM.ARR
00178: Pin%%V0S1P7.REJECTED = @FALSE
00178 004D8 : 0F8 move 0 => Pin%%V0S1P7.REJECTED
00179: IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-2)
00179 004DE : 010 bitand STAGECOM.TRACEMODE 16 => $R51
00179 004E6 : 106 ne $R51 0 => $R53
00179 004EE : 2DE testfw $R53 00506:
00179 004F8 : 0F8 move -2 => _T0004
00179 004FE : 01E call "$PERF.END" _T0004
00180:
00181: PUT.Pin%%V0S1P7
00181 00506 : 0F8 move 2 => _T0005
00181 0050C : 01E call "$DS.SEQPUT" _T0005 Pin%%V0S1P7.REJECTEDCODE
00182: IF NOT(Pin%%V0S1P7.REJECTEDCODE) THEN
00182 00516 : 10E not Pin%%V0S1P7.REJECTEDCODE => $R53
00182 0051C : 2DE testfw $R53 00530:
00183: REJECTED = @FALSE
00183 00524 : 0F8 move 0 => REJECTED
00183 0052A : 0C2 jump 00536:
00184: END ELSE
00185: Pin%%V0S1P7.REJECTED = @TRUE
00185 00530 : 0F8 move 1 => Pin%%V0S1P7.REJECTED
00185 00536 : 0C2 jump 00548:
00186: END
00187: END
00188: ELSE
00189: Pin%%V0S1P7.REJECTED = @TRUE
00189 0053C : 0F8 move 1 => Pin%%V0S1P7.REJECTED
00190: Pin%%V0S1P7.REJECTEDCODE = 0
00190 00542 : 0F8 move 0 => Pin%%V0S1P7.REJECTEDCODE
00191: END
00192:
00193:
00194: UPDATE.COUNT -= 1
00194 00548 : 194 sub UPDATE.COUNT 1 => UPDATE.COUNT
00195: IF UPDATE.COUNT LE 0 THEN CALL DSD.Update(HANDLES);UPDATE.COUNT = STAGECOM.RATE
00195 00550 : 0CE le UPDATE.COUNT 0 => $R53
00195 00558 : 2DE testfw $R53 00572:
00195 00560 : 01E call "DSD.Update" HANDLES
00195 00568 : 0E6 matrix STAGECOM.NUM.ROWS 0 1 => UPDATE.COUNT
00196: REPEAT
00196 00572 : 10C nop
00196 00574 : 0C2 jump 000C8:
00197: RETURN
00197 0057C : 15C return
00198: END
00198 0057E : 15C return
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact:
Address DE in the object code is associated with the source statement GET.Pin%%V0S1P5 which (from source line 33) maps to a GET (get next row) call on the main input link into the stage (link name zoph_arde_out) and which, from line 112, is a call to $DSP.GetNext.
My main reason for wanting to see this was to make sure that it wasn't anything else.
A heap error usually indicates in this case that the operation has exhausted available memory or scratch disk space. Presumably the link zoph_arde_out is directly retrieving data from SAP. There's not much more you can do from a DataStage perspective; something in this process has run out of resources.
What has your support provider had to say? I worry about the word "recursive" in the error message; it looks like the (vendor-supplied) function DSP.GetNext is using a recursive algorithm for memory allocation. Eek! So easy to get wrong, and run away with memory.
My main reason for wanting to see this was to make sure that it wasn't anything else.
A heap error usually indicates in this case that the operation has exhausted available memory or scratch disk space. Presumably the link zoph_arde_out is directly retrieving data from SAP. There's not much more you can do from a DataStage perspective; something in this process has run out of resources.
What has your support provider had to say? I worry about the word "recursive" in the error message; it looks like the (vendor-supplied) function DSP.GetNext is using a recursive algorithm for memory allocation. Eek! So easy to get wrong, and run away with memory.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Hi Ray,
Can you please explain what does command
do. and what are the parameters that it accepts. So that it may help in future for error tracing.
Thanks a lot.
Can you please explain what does command
Code: Select all
VLIST
Thanks a lot.
Success consists of getting up just one more time than you fall.
VLIST is one of the internal debugging tools embedded in the DataStage/UniVerse engine.
DataStage BASIC programs are not compiled to machine objects, they are actually compiled into a pseudocode format which, at runtime, is interpreted by the engine and executed. The VLIST program will show the compiled pseudocode along with hex program addresses and (depending upon the compiler options used) the source code line. It is quite useful for debugging user-written programs which include the line numbers, a little less so for system programs which are compiled in such a way that the xref tables are not visible and the source lines are not visible.
The display shows the "assembler" code for the engine and it takes a bit of practice to understand the commands and correlate them to the original program.
You can call up "HELP VLIST" from the TCL line, or better yet go to the IBM product pages and download PDF - I am not 100% certain which one describes VLIST, it might be in the "perform" guide.
DataStage BASIC programs are not compiled to machine objects, they are actually compiled into a pseudocode format which, at runtime, is interpreted by the engine and executed. The VLIST program will show the compiled pseudocode along with hex program addresses and (depending upon the compiler options used) the source code line. It is quite useful for debugging user-written programs which include the line numbers, a little less so for system programs which are compiled in such a way that the xref tables are not visible and the source lines are not visible.
The display shows the "assembler" code for the engine and it takes a bit of practice to understand the commands and correlate them to the original program.
You can call up "HELP VLIST" from the TCL line, or better yet go to the IBM product pages and download PDF - I am not 100% certain which one describes VLIST, it might be in the "perform" guide.
<a href=http://www.worldcommunitygrid.org/team/ ... TZ9H4CGVP1 target="WCGWin">
</a>
</a>
-
- Participant
- Posts: 54607
- Joined: Wed Oct 23, 2002 10:52 pm
- Location: Sydney, Australia
- Contact: