CA XCOM Data Transport

CA XCOM Data Transport for LUW FYI: Exits and Scripts: XCOMPP 

May 20, 2019 02:15 PM

CA XCOM Data Transport LUW Exits and Scripts:

 

The CA XCOM Data Transport Exits allow users to specify customize processing, by means of a batch script, before or after 
sending or receiving a file transfer request, allowing users to reference particular transfer parameters and by putting commands at the end of the scrip

 

Use XCOMPP is used to handle processing after you have received a file. For example, It can be used for controlling print-spooling,
for managing notification facilities, and for additional processing of incoming files after a successful incoming file transfer 
is completed.  It is only invoked for incoming files. It does not work for jobs or reports.

 

This optional exit is invoked automatically by specifying the XPRCMD parameter in XCOM.GLB XPPCMD:


The name of the command file used for user-defined post-processing for after receiving a file transfer. Specify this parameter in XCOM.GLB to invoke the pre-allocation exit xcompre. A sample command file is provided.

 

For example, you can use the xcompp exit to:
* controlling print-spooling
* managing notification facilities
* call additional OS and 3rd party utilities for further processing after a successful incoming file transfer is completed.

 

Customization is useful. For example, rename files, write an entry to the Windows event log , compress a file or start a transfer. The sample XCOMPP script is installed during the installation of CA XCOM Data Transport can be found in your site’s installation directory. In this sample script:

 

Note: For Windows platforms, some scripts create new processes that must continue running after the script is returned to the transfer partner. 
To prevent the new process from being terminated, you must include the user in the CA XCOM Batch Interactive group.

 

Xcompp.bat – for Windows:

 

https://support.ca.com/cadocs/1/x000031e.pdf

 

- The XCOMPP_IDENT file transfers are subject to additional processing.
- Rename the received file
- Compress the newly named file
- Transfer the file to XCOMPP_IDENT system

- Run a virus scan

- Write informational message to the Windows event log

 

@echo off
REM /**********************************************************************/
REM /* */
REM /* ccccccccc aaaaaaaaa */
REM /* ccccccccccccc aaaaaaaaaaaaa ----------------------------- */
REM /* cccccccccccccccaaaaaaaaaaaaaaa C A X C O M (TM) */
REM /* ccccccccccccccccccaaa aaaaaa */
REM /* ccccccc cccccca aaaaa D A T A */
REM /* ccccccc aaaaa */
REM /* cccccc aaaaaaaaaaaaaaa T R A N S P O R T (R) */
REM /* cccccc aaaaaaaaaaaaaaaaa */
REM /* cccccc aaaaaaaaaaaaaaaaaa ----------------------------- */
REM /* cccccc aaaaaa aaaaa */
REM /* ccccccc caaaaa aaaaa */
REM /* ccccccc ccaaaaa aaaaa */
REM /* ccccccccccccccaaaaaa aaaaaa */
REM /* ccccccccccccccaaaaaaaaaaaaaaaaaa */
REM /* ccccccccccccc aaaaaaaaaaa aaaaa */
REM /* ccccccccc aaaaaaaa aaaaa */
REM /* */
REM /**********************************************************************/
REM /* */
REM /* Sample Code Notice v2.3 */
REM /* */
REM /* Copyright (c) 2012 CA. All rights reserved. */
REM /* */
REM /* This software and all information contained therein is */
REM /* confidential and proprietary and shall not be duplicated, used, */
REM /* disclosed or disseminated in any way without the express written */
REM /* permission of CA. All authorized reproductions must be marked */
REM /* with this language. */
REM /* */
REM /* TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS */
REM /* SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT */
REM /* LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR */
REM /* A PARTICULAR PURPOSE OR NONINFRINGEMENT. IN NO EVENT WILL CA BE */
REM /* LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR DAMAGE, */
REM /* DIRECT OR INDIRECT, FROM THE USE OF THIS MATERIAL, INCLUDING */
REM /* WITHOUT LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, GOODWILL, */
REM /* OR LOST DATA, EVEN IF CA IS EXPRESSLY ADVISED OF SUCH LOSS OR */
REM /* DAMAGE. */
REM /* */
REM /*--------------------------------------------------------------------*/
REM /* */
REM /* XCOMNPP.bat */
REM /* */
REM /*--------------------------------------------------------------------*/

rem This procedure is invoked by the CA-XCOM Data Transport 
rem transaction program after the transfer is finished before the
rem conversation is terminated.
rem Not every argument will be populated;
rem the values contained in the arguments depend on those provided by the
rem remote system.

rem For a production version, disable the echo and pause statements
rem by setting use_echo to NO in the following SET command.
rem For a debug version, enable the echo and pause statements
rem by setting use_echo to YES in the following SET command.

set use_echo=NO


set compression=%1
rem Compression flag

shift
set notify_flag=%1
rem Notify flag

shift
set notify_name=%1
rem Notify Name

shift
set remoteuser=%1
rem Notify User

shift
set filetype=%1
rem File type (Always '3' for file)

shift
set fileaction=%1
rem File action (Create, replace or append)

shift
set datasettype=%1
rem Dataset type

shift
set carriage_flag=%1
rem Carriage return flag

shift
set code_flag=%1
rem Code flag

shift
set recfm=%1
rem Record format

shift
set lrecl=%1
rem Logical record length

shift
set remote_reqno=%1
rem Remote request Number

shift
set local_reqno=%1
rem Local Request number

shift
set group=%1
rem Group name

shift
set sysdata=%1
rem System Dependent User Data

shift
set xferdata=%1
rem Transfer Dependent User Data

shift
set ident=%1
rem Ident

shift
set truncation_flag=%1
rem Truncation flag

shift
set tmp_file=%1
rem Local temporary file name

shift
set file=%1
rem Local file name

shift
set remote_file=%1
rem Remote file name

if NOT /%use_echo%/ == /YES/ GOTO SKIP_ECHO
      echo xcompp
      echo compression: %compression%
      echo notify_flag: %notify_flag%
      echo notify_name: %notify_name%
      echo remoteuser: %remoteuser%
      echo filetype: %filetype%
      echo fileaction: %fileaction%
      echo datasettype: %datasettype%
      echo carriage_flag: %carriage_flag%
      echo code_flag: %code_flag%
      echo recfm: %recfm%
      echo lrecl: %lrecl%
      echo remote_reqno: %remote_reqno%
      echo local_reqno: %local_reqno%
      echo groupname: %group%
      echo sysdata: %sysdata%
      echo xferdata: %xferdata%
      echo ident: %ident%
      echo truncation_flag: %truncation_flag%
      echo tmp_file: %tmp_file%
      echo local file: %file%
      echo remote_file: %remote_file%

pause

rem POSTPROCESS HERE !

 

:SKIP_ECHO
       if /%use_echo%/ == /NO/ echo XCOMPRE_REMOTE
      GOTO XCOMPP_END 
      if /%ident%/ == /"xcomvtest"/ GOTO XCOMPP_IDENT

 

:XCOMPP_IDENT
       if /%use_echo%/ == /YES/ echo XCOMPP_IDENT

rem copy file to temp work area 
      copy %remote_file% %TEMP%.%remote_file%

 

rem run Symantec virus scan

      DoScan.exe /ScanFile %TMP_FILE%

rem check rc

      If %ERRORLEVEL% GEQ 1 GOTO XCOMPP_ERROR


rem compress file using pk-zip
      zip -r %TEMP%.%remote_file% %TEMP%.%remote_file%.zip

rem transfer file to IDENT system
      xcomtcp -c1 -f %XCOM_HOME%\config\xcomvtest.cnf LOCAL_FILE=%TEMP%.%remote_file%.zip QUEUE=NO

rem check RC and write an entry to the windows event log
      if %ERRORLEVEL% neq 0 GOTO XCOMPP_ERROR

 

rem write an entry to the windows event log
 eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO CA-XCOM /D "XCOMPP XCOMPP_IDENT"
      GOTO XCOMPP_END

 

XCOMPP_ERROR:

rem write an entry to the windows event log

       0 eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO CA-XCOM /D "XCOMPP XCOMPP_IDENT ERROR" 

 

:XCOMPP_END
      if /%use_echo%/ == /YES/ echo XCOMPP_END 

      exit

 

xcompp.sh - Linux and Unix platforms:

 

https://support.ca.com/cadocs/1/x000111e.pdf

 

- The $xferdata == "HR" file transfers are subject to additional processing.
- Change file permissions
- Run a virus scan

- Send notification 

- Encrypt the files

- Translate fr:en

 

 

#!/bin/sh
# @(#)xcompp.sh 1.1 3/27/92 20:19:33
# This procedure is invoked by the Unicenter CA-XCOM Data Transport transaction
# program after the transfer is finished before the conversation is terminated.
# Not every argument will be populated;
# the values contained in the arguments depend on those provided by the
# remote system.
###### START OF DEBUG SECTION ######
######
###### UNCOMMENT THE LINES BELOW TO DEBUG THIS SCRIPT ######
#exec >> /tmp/xcompp.out
#exec 2>&1
#set -vx
#PS4='[$0: $LINENO]+ '
#export PS4
###### END OF DEBUG SECTION ######
compression=$1 # Compression flag
shift
notify_flag=$1 # Notify flag
shift
notify_name=$1 # Notify Name
shift
remoteuser=$1 # Notify User
shift
filetype=$1 # File type (Whether it's file, job or report)
shift
fileaction=$1 # File action (Create, replace or append)
shift
datasettype=$1 # Dataset type
shift
carriage_flag=$1 # Carriage return flag
shift
code_flag=$1 # Code flag
shift
recfm=$1 # Record format
shift
lrecl=$1 # Logical record length
shift
remote_reqno=$1 # Remote request Number
shift
local_reqno=$1 # Local Request number
shift
group=$1 # Group name
shift
sysdata=$1 # System Dependent User Data
shift
xferdata=$1 # Transfer Dependent User Data
shift
ident=$1 # Ident
shift
truncation_flag=$1 # Truncation flag
shift
tmp_file=$1 # Local temporary file name
shift
file=$1 # Local file name
shift
remote_file=$1 # Remote file name

 

# POSTPROCESS HERE !


if [ $xferdata == "HR" ]
then

 

#  run virus scan

uvscan –file $file

 

# check return-code

if [ $? -ne 0 ]
then

# send mail notification and exit

echo “uvscan failed” | mail -s "ERROR: $local_reqno" hradmin

exit 100

# change file permissions 
chmod 644 $file

 

# encrypt file using OpenSSL

openssl enc -aes-256-cbc -salt -in $file -out $xferdata .$file.enc

 

exit 0
fi

 

if [ $xferdata == "TRANSFR2EN" ]
then

# translate file

trans fr:en file://$file > $file.$xferdata

exit 0
fi

 

exit 0

Statistics
0 Favorited
2 Views
0 Files
0 Shares
0 Downloads

Related Entries and Links

No Related Resource entered.