import SAE_FRAMEWORK:TRANSFORM:TransformManager; import SAE_FRAMEWORK:TRANSFORM:TransformManagerFactory; Local string ®ion_cd, &saloc_val, ®_no_val, &txn_no_val, &txn_date_val, &txn_type_val, &type_descr, &action_bn, &txn_time, &netip, &acct, &auth_axn, &auth_ref, &reject_code, &reject_msg, &txn_type2; Local number &txn_amt, &tax_amt, &numtxn_type_val; Local XmlNode &salocNode, ®_noNode, &txn_noNode, &txn_dateNode; /* Get the data from the AE Runtime */ Local TransformData &incomingData = %TransformData; /* Set a temp object to contain the incoming document */ Local XmlDoc &outxml, &inputDoc; Local array of XmlNode &saloc, ®_no, &txn_no, &txn_date, &txn_type; &inputDoc = &incomingData.XmlDoc; /* Parse XML to get the key values that will be used to pull the response header and detail */ &saloc = &inputDoc.DocumentElement.GetElementsByTagName("m58:SA_LOC"); If (&saloc.Len <> 0) Then &saloc_val = &saloc [1].NodeValue; End-If; ®_no = &inputDoc.DocumentElement.GetElementsByTagName("m58:REG_NO"); If (®_no.Len <> 0) Then ®_no_val = ®_no [1].NodeValue; End-If; &txn_no = &inputDoc.DocumentElement.GetElementsByTagName("m58:TXN_NO"); If (&txn_no.Len <> 0) Then &txn_no_val = &txn_no [1].NodeValue; End-If; &txn_date = &inputDoc.DocumentElement.GetElementsByTagName("m58:TXN_DATE"); If (&txn_date.Len <> 0) Then &txn_date_val = &txn_date [1].NodeValue; End-If; &proc_id = &inputDoc.DocumentElement.GetElementsByTagName("m58:PROCESS_ID"); If (&proc_id.Len <> 0) Then &proc_id_val = &proc_id [1].NodeValue; End-If; &txn_type = &inputDoc.DocumentElement.GetElementsByTagName("m58:TXN_TYPE_BN"); If (&txn_type.Len <> 0) Then &txn_type_val = &txn_type [1].NodeValue; /* If &txn_type_val = "50" Then &txn_type_val = "51"; End-If; &numtxn_type_val = Value(&txn_type_val); &numtxn_type_val = &numtxn_type_val + 1; &txn_type_val = String(&numtxn_type_val); */ End-If; rem --------------------------; rem get the header information; rem --------------------------; REM This gets the values from the Response Record. It will be appended to the response file that the CI built.; /*SQLExec("SELECT A.PROCESS_ID, A.REGION_CD, A.TYPE_DESC, A.TXN_TYPE_BN, A.ACTION_BN, A.TXN_TIME, A.NETIP,A.ACCOUNT_BN, A.TXN_AMOUNT, A.TAX_AMOUNT, A.AUTH_ACTION, A.AUTH_REF, A.REJECT_CD, A.REJECT_REASON_BN FROM PS_VX_BN_INTC_RESP A WHERE A.SA_LOC = :1 AND A.REG_NO = :2 AND A.TXN_NO = :3 AND A.TXN_DATE = :4 AND A.TXN_TYPE_BN = :5", &saloc_val, ®_no_val, &txn_no_val, &txn_date_val, &txn_type_val, &proc_id, ®ion_cd, &type_desc, &txn_type2, &action_bn, &txn_time, &netip, &account, &txn_amt, &tax_amt, &auth_axn, &auth_ref, &reject_code, &reject_msg); */ SQLExec("SELECT A.PROCESS_ID, A.REGION_CD, A.TYPE_DESC, A.TXN_TYPE_BN, A.ACTION_BN, A.TXN_TIME, A.NETIP,A.ACCOUNT_BN, A.TXN_AMOUNT, A.TAX_AMOUNT, A.AUTH_ACTION, A.AUTH_REF, A.REJECT_CD, A.REJECT_REASON_BN FROM PS_VX_BN_INTC_RESP A WHERE A.SA_LOC = :1 AND A.REG_NO = :2 AND A.TXN_NO = :3 AND A.TXN_DATE = :4 AND PROCESS_ID = :5 AND A.TXN_TYPE_BN = (SELECT MAX(B.TXN_TYPE_BN) FROM PS_VX_BN_INTC_RESP B WHERE A.SA_LOC = B.SA_LOC AND A.TXN_NO = B.TXN_NO AND A.TXN_DATE = B.TXN_DATE AND A.PROCESS_ID = B.PROCESS_ID)", &saloc_val, ®_no_val, &txn_no_val, &txn_date_val, &proc_id_val, &proc_id_res, ®ion_cd, &type_desc, &txn_type2, &action_bn, &txn_time, &netip, &account, &txn_amt, &tax_amt, &auth_axn, &auth_ref, &reject_code, &reject_msg); Local XmlNode &RespNode = &inputDoc.DocumentElement.AddElement("m58:ARTXN"); /* Local XmlNode &procidNode = &RespNode.InsertElement("m58:PROCESS_ID", 1); &procidNode.NodeValue = String(&proc_id); Local XmlNode ®ionNode = &RespNode.InsertElement("m58:REGION_CD", 2); ®ionNode.NodeValue = String(®ion_cd); */ Local XmlNode &txntypeNode = &RespNode.AddElement("m58:TXN_TYPE_BN"); &txntypeNode.NodeValue = String(&txn_type2); Local XmlNode &typedescNode = &RespNode.AddElement("m58:TYPE_DESC"); &typedescNode.NodeValue = String(&type_desc); Local XmlNode &actionNode = &RespNode.AddElement("m58:ACTION_BN"); &actionNode.NodeValue = String(&action_bn); Local XmlNode &txntimeNode = &RespNode.AddElement("m58:TXN_TIME"); &txntimeNode.NodeValue = String(&txn_time); Local XmlNode &netipNode = &RespNode.AddElement("m58:NETIP"); &netipNode.NodeValue = String(&netip); Local XmlNode &accountNode = &RespNode.AddElement("m58:ACCOUNT_BN"); &accountNode.NodeValue = String(&account); Local XmlNode &txnamtNode = &RespNode.AddElement("m58:TXN_AMOUNT"); &txnamtNode.NodeValue = String(&txn_amt); Local XmlNode &taxamtNode = &RespNode.AddElement("m58:TAX_AMOUNT"); &taxamtNode.NodeValue = String(&tax_amt); Local XmlNode &authactionNode = &RespNode.AddElement("m58:AUTH_ACTION"); &authactionNode.NodeValue = String(&auth_axn); Local XmlNode &authrefNode = &RespNode.AddElement("m58:AUTH_REF"); &authrefNode.NodeValue = String(&auth_ref); Local XmlNode &rejectcdNode = &RespNode.AddElement("m58:REJECT_CD"); &rejectcdNode.NodeValue = String(&reject_code); Local XmlNode &rejectmsgNode = &RespNode.AddElement("m58:REJECT_REASON_BN"); &rejectmsgNode.NodeValue = String(&reject_msg); %TransformData.XmlDoc = &inputDoc;