Oracle applications (11i) daily credit card failure report – ipayment gateway

Posted by Jiltin     25 November, 2008    3,450 views   

User needs the daily credit card failure report to follow-up with customers. This will attach the generated excel sheet and send the email to the list of users. This is registered as unix host concurrent Program in oracle applications. This can also be simply modified as a crontab report. This is a practical example of unix / linux with oracle applications producing excel sheet. The attachment is possible as UUENCODE.

Download oracle_ipayment_credit_card_failure_report.sh

#!/bin/sh
#
# Author: Jay
#
# P_EMAIL_ADDRESS_TO is a parameter from the concurrent job
#
old_args=$@

FILENAME="Credit_Card_Failure_Report.xls"
P_EMAIL_ADDRESS_TO=`echo $old_args ‘cut -f9 -d’ ‘ ‘ cut -f2 -d‘=’ ‘ sed ‘s/"//g’`
#source /usr/local/bin/PRODUCTION.env           # For test purposes
if [ -f $FILENAME ]
then
        rm -rf $FILENAME
        echo "
Old Data File ($FILENAME) deleted…"
fi
echo $FILENAME
echo "
$P_EMAIL_ADDRESS_TO"
sqlplus -s $FCP_LOGIN<<EOF
SET echo OFF
SET feedback OFF
SET heading off
SET linesize 221
SET pagesize 0
SET newpage 0
spool $FILENAME

SELECT RPAD (SUBSTR (a, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (b, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (c, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (d, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (e, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (f, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (g, 1, 16), 16, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (h, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (i, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (j, 1, 15), 15, ‘ ‘)
       ” chr(9)
       ” RPAD (SUBSTR (to_char(k), 1, 15), 15, ‘ ‘)”chr(9)
  FROM (
 select a,b,c,d,e,f,g,h,max(i) i,j,k from
 (
  SELECT decode(rct.org_id,262,’China Operating Unit’,283,’Europe Operating Unit’,303,’India Operating Unit’,307,’UK Operating Unit’,311,’Australia Operating Unit’,315,’Japan Operating Unit’,319,’Hong Kong Operating Unit’,223,’US Operating Unit’) a
                      ,ac.customer_number b
                          ,ac.customer_name c
                          ,rct.attribute2 d
                          ,rct.trx_date e
                          ,rct.trx_number f
                          ,rt.NAME g
                          ,LPAD (SUBSTR (aba.bank_account_num,LENGTH (aba.bank_account_num)-3,4),
                                                              LENGTH (aba.bank_account_num),’*’ ) h
                          ,nvl(max(its.bepmessage),’Declined’)  i
                          ,acol.NAME j
                          ,aps.amount_due_remaining k
         FROM
                                                 RA_CUSTOMER_TRX_ALL RCT
                                                ,RA_TERMS RT
                                                ,AP_BANK_ACCOUNTS_ALL ABA
                                                ,AR_CUSTOMERS AC
                                                ,AR_CUSTOMER_PROFILES ACP
                                                ,AR_COLLECTORS ACOL
                                                ,AR_PAYMENT_SCHEDULES_ALL APS
                                                ,RA_BATCH_SOURCES_ALL RBS
                                                ,APPS.IBY_TRXN_SUMMARIES_ALL ITS
         WHERE 1=1
           AND RCT.CUSTOMER_BANK_ACCOUNT_ID = ABA.BANK_ACCOUNT_ID
           AND RCT.BILL_TO_CUSTOMER_ID = AC.CUSTOMER_ID
           AND RCT.BATCH_SOURCE_ID = RBS.BATCH_SOURCE_ID
           AND ACP.CUSTOMER_ID = AC.CUSTOMER_ID
           AND ACP.COLLECTOR_ID = ACOL.COLLECTOR_ID
           AND RCT.TERM_ID = RT.TERM_ID
           AND APS.CUSTOMER_TRX_ID = RCT.CUSTOMER_TRX_ID
                                   AND ACP.SITE_USE_ID IS NULL
           AND APS.AMOUNT_DUE_REMAINING > 0
           AND APS.ORG_ID > 202        
                                   AND ITS.INSTRNUMBER = APPS.IBY_INSTRREG_PUB.ENCODE (ABA.BANK_ACCOUNT_NUM)
                                   AND ITS.STATUS <> 0
                                   AND ITS.CREATION_DATE >= SYSDATE – 2*365
                                   AND ITS.STATUS > 0
                                   AND ITS.INSTRTYPE = ‘CREDITCARD’
           AND RCT.CREATION_DATE >= SYSDATE – 2*365
           AND RCT.ORG_ID > 202        
                                 AND ABA.ACCOUNT_TYPE=’EXTERNAL’
           AND RCT.ORG_ID = APS.ORG_ID      
      GROUP BY decode(rct.org_id,262,’China Operating Unit’,283,’Europe Operating Unit’,303,’India Operating Unit’,307,’UK Operating Unit’,311,’Australia Operating Unit’,315,’Japan Operating Unit’,319,’Hong Kong Operating Unit’,223,’US Operating Unit’)
                  ,ac.customer_number
                          ,ac.customer_name
                          ,rct.attribute2
                          ,rct.trx_date
                          ,rct.trx_number
                          ,rt.NAME
                          ,LPAD (SUBSTR (aba.bank_account_num,LENGTH (aba.bank_account_num)-3,4),
                                                              LENGTH (aba.bank_account_num),’*’ )
                          ,acol.NAME
                          ,aps.amount_due_remaining
                          union
SELECT decode(rct.org_id,262,’China Operating Unit’,283,’Europe Operating Unit’,303,’India Operating Unit’,307,’UK Operating Unit’,311,’Australia Operating Unit’,315,’Japan Operating Unit’,319,’Hong Kong Operating Unit’,223,’US Operating Unit’) a
                      ,ac.customer_number b
                          ,ac.customer_name c
                          ,rct.attribute2 d
                          ,rct.trx_date e
                          ,rct.trx_number f
                          ,rt.NAME g
                          ,LPAD (SUBSTR (aba.bank_account_num,LENGTH (aba.bank_account_num)-3,4),
                                                              LENGTH (aba.bank_account_num),’*’ ) h
                          ,nvl(max(its.bepmessage),’Invalid CC or expiry date’) i
                          ,acol.NAME j
                          ,aps.amount_due_remaining k
         FROM
                                                 RA_CUSTOMER_TRX_ALL RCT
                                                ,RA_TERMS RT
                                                ,AP_BANK_ACCOUNTS_ALL ABA
                                                ,AR_CUSTOMERS AC
                                                ,AR_CUSTOMER_PROFILES ACP
                                                ,AR_COLLECTORS ACOL
                                                ,AR_PAYMENT_SCHEDULES_ALL APS
                                                ,RA_BATCH_SOURCES_ALL RBS
                                                ,APPS.IBY_TRXN_SUMMARIES_ALL ITS
         WHERE 1=1
           AND RCT.CUSTOMER_BANK_ACCOUNT_ID = ABA.BANK_ACCOUNT_ID
           AND RCT.BILL_TO_CUSTOMER_ID = AC.CUSTOMER_ID
           AND RCT.BATCH_SOURCE_ID = RBS.BATCH_SOURCE_ID
                                   AND ITS.INSTRNUMBER(+) = APPS.IBY_INSTRREG_PUB.ENCODE (ABA.BANK_ACCOUNT_NUM)
                                   AND nvl(ITS.STATUS,1) <> 0
                                   –AND ITS.CREATION_DATE >= SYSDATE – 2*365
                                   –AND ITS.STATUS > 0
                                  — AND ITS.INSTRTYPE = ‘CREDITCARD’
           AND ACP.CUSTOMER_ID = AC.CUSTOMER_ID
           AND ACP.COLLECTOR_ID = ACOL.COLLECTOR_ID
           AND RCT.TERM_ID = RT.TERM_ID
           AND APS.CUSTOMER_TRX_ID = RCT.CUSTOMER_TRX_ID
                                   AND ACP.SITE_USE_ID IS NULL
           AND APS.AMOUNT_DUE_REMAINING > 0
           AND APS.ORG_ID > 202        
           AND RCT.CREATION_DATE >= SYSDATE – 2*365
           AND RCT.ORG_ID > 202        
                                 AND ABA.ACCOUNT_TYPE=’EXTERNAL’
           AND RCT.ORG_ID = APS.ORG_ID      
                        AND
                        (
                         RCT.CC_ERROR_FLAG IS NOT NULL
                        )
                        AND RCT.CC_ERROR_CODE IS NULL
      GROUP BY decode(rct.org_id,262,’China Operating Unit’,283,’Europe Operating Unit’,303,’India Operating Unit’,307,’UK Operating Unit’,311,’Australia Operating Unit’,315,’Japan Operating Unit’,319,’Hong Kong Operating Unit’,223,’US Operating Unit’)
                  ,ac.customer_number
                          ,ac.customer_name
                          ,rct.attribute2
                          ,rct.trx_date
                          ,rct.trx_number
                          ,rt.NAME
                          ,LPAD (SUBSTR (aba.bank_account_num,LENGTH (aba.bank_account_num)-3,4),
                                                              LENGTH (aba.bank_account_num),’*’ )
                          ,acol.NAME
                          ,aps.amount_due_remaining
)
GROUP BY a,b,c,d,e,f,g,h,j,k
);

EOF

if [ -f $FILENAME ]
then
        uuencode $FILENAME $FILENAME ‘ mail -s "$FILENAME status! Reported on `date` " "$P_EMAIL_ADDRESS_TO"
#       uuencode $FILENAME $FILENAME ‘ mail -s "
$FILENAME status! Reported on `date` " "jay@notesbit.com"      # For test purposes only!
fi

Post to Twitter  Post to Delicious  Post to Digg    Post to StumbleUpon

Categories : 11i Scripts Tags : , , , , ,

Comments
April 9, 2009

If you want to see a reader’s feedback :) , I rate this article for four from five. Decent info, but I just have to go to that damn google to find the missed parts. Thank you, anyway!

Posted by Ex Back
May 27, 2009

Great post! Just wanted to let you know you have a new subscriber- me!

Posted by ApplyCreditCards
Leave a comment

(required)

(required)