#!/bin/perl use strict; # Copyright Piers Harding - 2004 # This software is realeased under the same terms as Perl itself # obviously, you use this code at your own risk - I or anyone else, # don't accept liability if you toast your machine/system ...blah blah blah # use SAP::Rfc; use SAP::Iface; use Data::Dumper; use vars qw( $DEBUG ); $DEBUG = 1; # switch to 0 to deactivate # are we debugging ? debug("Debugging is switched on..."); debug("VERSION: ".$SAP::Rfc::VERSION ); $SAP::Rfc::EXCEPTION_ONLY = 1; # construct the connection to the gateway my $rfc = new SAP::Rfc( TPNAME => "wibble.rfctpname", # destination name configured in SM59 GWHOST => "seahorse", # your target host gateway service GWSERV => 3300, # the service address TRACE => 1, # tracing the RFC ); # construct the FUNCTIONS to support $rfc->iface(smon_trace_upload()); $rfc->iface(smon_comp_state_retrieve()); $rfc->iface(xchgversion()); $rfc->iface(smon_trace_set()); my $iface = gen_sx_iface(); $iface->handler( \&do_sx_object_receive ); $rfc->iface($iface); # on with the real business debug("START"); # start the main loop $rfc->accept(); debug("RC: ".$rfc->error()); # will probably never get here debug("FINISH"); exit 0; # The main callback for handling faxes sub do_sx_object_receive { my $iface = shift; debug("Running do_sx_object_receive..."); debug(" iface: ".Dumper($iface)); return 1; } sub do_smon_trace_upload { my $iface = shift; debug("Running do_smon_trace_upload..."); debug(" iface: ".Dumper($iface)); return 1; } sub do_smon_trace_set { my $iface = shift; debug("Running do_smon_trace_set..."); debug(" iface: ".Dumper($iface)); return 1; } sub do_smon_comp_state_retrieve { my $iface = shift; debug("Running do_smon_comp_state_retrieve..."); debug(" iface: ".Dumper($iface)); return 1; } sub do_xchgversion { my $iface = shift; debug("Running do_xchgversion..."); debug(" iface: ".Dumper($iface)); return 1; } sub smon_trace_set { my $iface = new SAP::Iface(NAME => "SMON_TRACE_SET", HANDLER => \&do_smon_trace_set); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_NUM, NAME => "ON_OFF", LEN => 1); $iface->addParm( TYPE => $iface->RFCIMPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "COMPONENT", LEN => 50); $iface->addParm( TYPE => $iface->RFCIMPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "SERVICE", LEN => 2); return $iface; } sub smon_comp_state_retrieve { my $iface = new SAP::Iface(NAME => "SMON_COMP_STATE_RETRIEVE", HANDLER => \&do_smon_comp_state_retrieve); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "SX_NODE_ID", LEN => 6); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "SERVICE", LEN => 2); my $str = SAP::Struc->new( NAME => "SMON_COMPO" ); $str->addField( NAME => 'NAME', LEN => 50, OFFSET => 0, DECIMALS => 0, INTYPE => "C" ); $str->addField( NAME => 'STATE', LEN => 3, OFFSET => 50, DECIMALS => 0, INTYPE => "N" ); $str->addField( NAME => 'TRACE', LEN => 1, OFFSET => 53, DECIMALS => 0, INTYPE => "N" ); $str->addField( NAME => 'TEXT', LEN => 1000, OFFSET => 54, DECIMALS => 0, INTYPE => "C" ); $iface->addTab( NAME => "COMPONENT_LIST", STRUCTURE => $str, LEN => 1054); return $iface; } sub xchgversion { my $iface = new SAP::Iface(NAME => "XCHGVERSION", HANDLER => \&do_xchgversion); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "SP_VERSION", LEN => 8); $iface->addParm( TYPE => $iface->RFCIMPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "WS_VERSION", LEN => 8); $iface->addParm( TYPE => $iface->RFCIMPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "ERR_TEXT", LEN => 80); $iface->addParm( TYPE => $iface->RFCIMPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "RETURNCODE", LEN => 4); $iface->addParm( TYPE => $iface->RFCIMPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "SYSTEM_RC_X", LEN => 10); return $iface; } sub smon_trace_upload { my $iface = new SAP::Iface(NAME => "SMON_TRACE_UPLOAD", HANDLER => \&do_smon_trace_upload); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_DATE, NAME => "FROM_DATE", LEN => 8); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_TIME, NAME => "FROM_TIME", LEN => 6); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_DATE, NAME => "UNTIL_DATE", LEN => 8); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_TIME, NAME => "UNTIL_TIME", LEN => 6); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "TYPE", LEN => 1); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "COMPONENT", LEN => 50); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_INT, NAME => "MAX_LINES", LEN => 4); $iface->addParm( TYPE => $iface->RFCEXPORT, INTYPE => $iface->RFCTYPE_CHAR, NAME => "SERVICE", LEN => 2); my $str = SAP::Struc->new( NAME => "SMON_TRACE" ); $str->addField( NAME => 'DATE', LEN => 8, OFFSET => 0, DECIMALS => 0, INTYPE => "D" ); $str->addField( NAME => 'TIME', LEN => 6, OFFSET => 8, DECIMALS => 0, INTYPE => "T" ); $str->addField( NAME => 'TYPE', LEN => 1, OFFSET => 14, DECIMALS => 0, INTYPE => "N" ); $str->addField( NAME => 'ID', LEN => 10, OFFSET => 15, DECIMALS => 0, INTYPE => "C" ); $str->addField( NAME => 'TEXT', LEN => 1000, OFFSET => 54, DECIMALS => 0, INTYPE => "C" ); $iface->addTab( NAME => "TRACE", STRUCTURE => $str, LEN => 1025); return $iface; } sub gen_sx_iface { return bless( { 'NAME' => 'SX_OBJECT_RECEIVE', 'EXCEPTIONS' => { 'ERR_INCOMPATIBLE_VERSION' => 'ERR_INCOMPATIBLE_VERSION', 'ERR_INVALID_VERSION' => 'ERR_INVALID_VERSION', 'ERR_INTERNAL' => 'ERR_INTERNAL', 'ERR_REC_NOT_SPECIFIED' => 'ERR_REC_NOT_SPECIFIED', 'ERR_PAC_NOT_SPECIFIED' => 'ERR_PAC_NOT_SPECIFIED', 'ERR_AUTHORITY' => 'ERR_AUTHORITY', 'ERR_NODE_UNKNOWN' => 'ERR_NODE_UNKNOWN' }, 'TABLES' => { 'CONTENTS_BIN' => bless( { 'NAME' => 'CONTENTS_BIN', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 255, 'STRUCTURE' => bless( { 'NAME' => 'SXLISTI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'LINE' => { 'DECIMALS' => '000000', 'NAME' => 'LINE', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 4, 'LEN' => '000255' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ), 'PACKING_LIST' => bless( { 'NAME' => 'PACKING_LIST', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 145, 'STRUCTURE' => bless( { 'NAME' => 'SXPCKLSTI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'MESS_TYPE' => { 'DECIMALS' => '000000', 'NAME' => 'MESS_TYPE', 'POSITION' => 11, 'OFFSET' => '000139', 'INTYPE' => 0, 'LEN' => '000004' }, 'BODY_NUM' => { 'DECIMALS' => '000000', 'NAME' => 'BODY_NUM', 'POSITION' => 5, 'OFFSET' => '000046', 'INTYPE' => 6, 'LEN' => '000015' }, 'HEAD_NUM' => { 'DECIMALS' => '000000', 'NAME' => 'HEAD_NUM', 'POSITION' => 3, 'OFFSET' => '000016', 'INTYPE' => 6, 'LEN' => '000015' }, 'DOC_SIZE' => { 'DECIMALS' => '000000', 'NAME' => 'DOC_SIZE', 'POSITION' => 10, 'OFFSET' => '000127', 'INTYPE' => 0, 'LEN' => '000012' }, 'OBJ_LANGU' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_LANGU', 'POSITION' => 9, 'OFFSET' => '000126', 'INTYPE' => 0, 'LEN' => '000001' }, 'OBJ_NAME' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_NAME', 'POSITION' => 7, 'OFFSET' => '000064', 'INTYPE' => 0, 'LEN' => '000012' }, 'BODY_START' => { 'DECIMALS' => '000000', 'NAME' => 'BODY_START', 'POSITION' => 4, 'OFFSET' => '000031', 'INTYPE' => 6, 'LEN' => '000015' }, 'DOC_TYPE' => { 'DECIMALS' => '000000', 'NAME' => 'DOC_TYPE', 'POSITION' => 6, 'OFFSET' => '000061', 'INTYPE' => 0, 'LEN' => '000003' }, 'ISO_LANGU' => { 'DECIMALS' => '000000', 'NAME' => 'ISO_LANGU', 'POSITION' => 12, 'OFFSET' => '000143', 'INTYPE' => 0, 'LEN' => '000002' }, 'OBJ_DESCR' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_DESCR', 'POSITION' => 8, 'OFFSET' => '000076', 'INTYPE' => 0, 'LEN' => '000050' }, 'HEAD_START' => { 'DECIMALS' => '000000', 'NAME' => 'HEAD_START', 'POSITION' => 2, 'OFFSET' => '000001', 'INTYPE' => 6, 'LEN' => '000015' }, 'TRANSF_BIN' => { 'DECIMALS' => '000000', 'NAME' => 'TRANSF_BIN', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000001' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ), 'OBJECT_PARB' => bless( { 'NAME' => 'OBJECT_PARB', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 285, 'STRUCTURE' => bless( { 'NAME' => 'SOPARBI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'VALUE' => { 'DECIMALS' => '000000', 'NAME' => 'VALUE', 'POSITION' => 2, 'OFFSET' => '000030', 'INTYPE' => 0, 'LEN' => '000255' }, 'NAME' => { 'DECIMALS' => '000000', 'NAME' => 'NAME', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000030' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ), 'CONTENTS_TXT' => bless( { 'NAME' => 'CONTENTS_TXT', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 255, 'STRUCTURE' => bless( { 'NAME' => 'SOLISTI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'LINE' => { 'DECIMALS' => '000000', 'NAME' => 'LINE', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000255' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ), 'RECEIVERS' => bless( { 'NAME' => 'RECEIVERS', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 1541, 'STRUCTURE' => bless( { 'NAME' => 'SXEXTRECI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'MSGV4' => { 'DECIMALS' => '000000', 'NAME' => 'MSGV4', 'POSITION' => 33, 'OFFSET' => '001491', 'INTYPE' => 0, 'LEN' => '000050' }, 'COUNTRY' => { 'DECIMALS' => '000000', 'NAME' => 'COUNTRY', 'POSITION' => 15, 'OFFSET' => '001267', 'INTYPE' => 0, 'LEN' => '000003' }, 'MSGV2' => { 'DECIMALS' => '000000', 'NAME' => 'MSGV2', 'POSITION' => 31, 'OFFSET' => '001391', 'INTYPE' => 0, 'LEN' => '000050' }, 'MSGV3' => { 'DECIMALS' => '000000', 'NAME' => 'MSGV3', 'POSITION' => 32, 'OFFSET' => '001441', 'INTYPE' => 0, 'LEN' => '000050' }, 'COPY' => { 'DECIMALS' => '000000', 'NAME' => 'COPY', 'POSITION' => 5, 'OFFSET' => '001221', 'INTYPE' => 0, 'LEN' => '000001' }, 'COPY_LIST' => { 'DECIMALS' => '000000', 'NAME' => 'COPY_LIST', 'POSITION' => 3, 'OFFSET' => '001219', 'INTYPE' => 0, 'LEN' => '000001' }, 'SAP_BODY' => { 'DECIMALS' => '000000', 'NAME' => 'SAP_BODY', 'POSITION' => 20, 'OFFSET' => '001278', 'INTYPE' => 0, 'LEN' => '000001' }, 'NOTIF_DEL' => { 'DECIMALS' => '000000', 'NAME' => 'NOTIF_DEL', 'POSITION' => 17, 'OFFSET' => '001275', 'INTYPE' => 0, 'LEN' => '000001' }, 'TO_DO_EXPL' => { 'DECIMALS' => '000000', 'NAME' => 'TO_DO_EXPL', 'POSITION' => 10, 'OFFSET' => '001226', 'INTYPE' => 0, 'LEN' => '000001' }, 'EXPRESS' => { 'DECIMALS' => '000000', 'NAME' => 'EXPRESS', 'POSITION' => 4, 'OFFSET' => '001220', 'INTYPE' => 0, 'LEN' => '000001' }, 'REC_DATE' => { 'DECIMALS' => '000000', 'NAME' => 'REC_DATE', 'POSITION' => 21, 'OFFSET' => '001279', 'INTYPE' => 1, 'LEN' => '000008' }, 'BLIND_COPY' => { 'DECIMALS' => '000000', 'NAME' => 'BLIND_COPY', 'POSITION' => 6, 'OFFSET' => '001222', 'INTYPE' => 0, 'LEN' => '000001' }, 'TO_ANSWER' => { 'DECIMALS' => '000000', 'NAME' => 'TO_ANSWER', 'POSITION' => 9, 'OFFSET' => '001225', 'INTYPE' => 0, 'LEN' => '000001' }, 'ADR_TYP' => { 'DECIMALS' => '000000', 'NAME' => 'ADR_TYP', 'POSITION' => 2, 'OFFSET' => '001215', 'INTYPE' => 0, 'LEN' => '000004' }, 'MIME' => { 'DECIMALS' => '000000', 'NAME' => 'MIME', 'POSITION' => 27, 'OFFSET' => '001336', 'INTYPE' => 0, 'LEN' => '000001' }, 'VISNAME' => { 'DECIMALS' => '000000', 'NAME' => 'VISNAME', 'POSITION' => 23, 'OFFSET' => '001291', 'INTYPE' => 0, 'LEN' => '000030' }, 'NOTIF_NDEL' => { 'DECIMALS' => '000000', 'NAME' => 'NOTIF_NDEL', 'POSITION' => 19, 'OFFSET' => '001277', 'INTYPE' => 0, 'LEN' => '000001' }, 'TNEF' => { 'DECIMALS' => '000000', 'NAME' => 'TNEF', 'POSITION' => 26, 'OFFSET' => '001335', 'INTYPE' => 0, 'LEN' => '000001' }, 'UUENCODE' => { 'DECIMALS' => '000000', 'NAME' => 'UUENCODE', 'POSITION' => 28, 'OFFSET' => '001337', 'INTYPE' => 0, 'LEN' => '000001' }, 'NOTIF_READ' => { 'DECIMALS' => '000000', 'NAME' => 'NOTIF_READ', 'POSITION' => 18, 'OFFSET' => '001276', 'INTYPE' => 0, 'LEN' => '000001' }, 'LFDNR' => { 'DECIMALS' => '000000', 'NAME' => 'LFDNR', 'POSITION' => 13, 'OFFSET' => '001234', 'INTYPE' => 0, 'LEN' => '000003' }, 'FAX' => { 'DECIMALS' => '000000', 'NAME' => 'FAX', 'POSITION' => 14, 'OFFSET' => '001237', 'INTYPE' => 0, 'LEN' => '000030' }, 'MSGV1' => { 'DECIMALS' => '000000', 'NAME' => 'MSGV1', 'POSITION' => 30, 'OFFSET' => '001341', 'INTYPE' => 0, 'LEN' => '000050' }, 'CODE' => { 'DECIMALS' => '000000', 'NAME' => 'CODE', 'POSITION' => 29, 'OFFSET' => '001338', 'INTYPE' => 0, 'LEN' => '000003' }, 'COM_TYPE' => { 'DECIMALS' => '000000', 'NAME' => 'COM_TYPE', 'POSITION' => 12, 'OFFSET' => '001228', 'INTYPE' => 0, 'LEN' => '000006' }, 'TO_DO_GRP' => { 'DECIMALS' => '000000', 'NAME' => 'TO_DO_GRP', 'POSITION' => 11, 'OFFSET' => '001227', 'INTYPE' => 0, 'LEN' => '000001' }, 'RETRN_CODE' => { 'DECIMALS' => '000000', 'NAME' => 'RETRN_CODE', 'POSITION' => 22, 'OFFSET' => '001287', 'INTYPE' => 0, 'LEN' => '000004' }, 'NO_FORWARD' => { 'DECIMALS' => '000000', 'NAME' => 'NO_FORWARD', 'POSITION' => 7, 'OFFSET' => '001223', 'INTYPE' => 0, 'LEN' => '000001' }, 'PROCDATE' => { 'DECIMALS' => '000000', 'NAME' => 'PROCDATE', 'POSITION' => 25, 'OFFSET' => '001327', 'INTYPE' => 1, 'LEN' => '000008' }, 'NO_PRINT' => { 'DECIMALS' => '000000', 'NAME' => 'NO_PRINT', 'POSITION' => 8, 'OFFSET' => '001224', 'INTYPE' => 0, 'LEN' => '000001' }, 'SPOOL_ID' => { 'DECIMALS' => '000000', 'NAME' => 'SPOOL_ID', 'POSITION' => 16, 'OFFSET' => '001270', 'INTYPE' => 0, 'LEN' => '000005' }, 'RECEIVER' => { 'DECIMALS' => '000000', 'NAME' => 'RECEIVER', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '001215' }, 'PROCTIME' => { 'DECIMALS' => '000000', 'NAME' => 'PROCTIME', 'POSITION' => 24, 'OFFSET' => '001321', 'INTYPE' => 3, 'LEN' => '000006' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ), 'OBJECT_PARA' => bless( { 'NAME' => 'OBJECT_PARA', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 92, 'STRUCTURE' => bless( { 'NAME' => 'SOPARAI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'OPTION' => { 'DECIMALS' => '000000', 'NAME' => 'OPTION', 'POSITION' => 2, 'OFFSET' => '000008', 'INTYPE' => 0, 'LEN' => '000004' }, 'LOW' => { 'DECIMALS' => '000000', 'NAME' => 'LOW', 'POSITION' => 3, 'OFFSET' => '000012', 'INTYPE' => 0, 'LEN' => '000040' }, 'NAME' => { 'DECIMALS' => '000000', 'NAME' => 'NAME', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000008' }, 'HIGH' => { 'DECIMALS' => '000000', 'NAME' => 'HIGH', 'POSITION' => 4, 'OFFSET' => '000052', 'INTYPE' => 0, 'LEN' => '000040' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ), 'OBJECT_HEADER' => bless( { 'NAME' => 'OBJECT_HEADER', 'VALUE' => [], 'INTYPE' => 4, 'LEN' => 255, 'STRUCTURE' => bless( { 'NAME' => 'SOLISTI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'LINE' => { 'DECIMALS' => '000000', 'NAME' => 'LINE', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000255' } } }, 'SAP::Struc' ) }, 'SAP::Tab' ) }, 'SYSINFO' => { 'RFCIPADDR' => '10.1.1.7 ', 'RFCMACH' => ' 387', 'RFCSAPRL' => '610 ', 'RFCDBSYS' => 'ADABAS D ', 'RFCCHARTYP' => '1100', 'RFCSI_RESV' => ' ', 'RFCHOST2' => 'kogut ', 'RFCOPSYS' => 'Linux ', 'RFCSYSID' => 'WAS ', 'RFCDBHOST' => 'kogut ', 'RFCHOST' => 'kogut ', 'RFCKERNRL' => '610 ', 'RFCTZONE' => ' 0', 'RFCDATABS' => 'WAS ', 'RFCDEST' => 'kogut_WAS_18 ', 'RFCDAYST' => 'X', 'RFCPROTO' => '011', 'RFCFLOTYP' => 'IE3', 'RFCINTTYP' => 'LIT' }, 'PARAMETERS' => { 'SYSTEM_DATA' => bless( { 'DECIMALS' => 0, 'NAME' => 'SYSTEM_DATA', 'VALUE' => '', 'INTYPE' => 4, 'LEN' => 10, 'DEFAULT' => '', 'TYPE' => 1, 'CHANGED' => 0, 'RFCINTTYP' => 'LIT', 'STRUCTURE' => bless( { 'NAME' => 'SXSYSDATI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'VERSION' => { 'DECIMALS' => '000000', 'NAME' => 'VERSION', 'POSITION' => 2, 'OFFSET' => '000006', 'INTYPE' => 0, 'LEN' => '000004' }, 'NODE' => { 'DECIMALS' => '000000', 'NAME' => 'NODE', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000006' } } }, 'SAP::Struc' ) }, 'SAP::Parms' ), 'RECEIVE_INFO' => bless( { 'DECIMALS' => 0, 'NAME' => 'RECEIVE_INFO', 'VALUE' => '', 'INTYPE' => 4, 'LEN' => 3205, 'DEFAULT' => '', 'TYPE' => 1, 'CHANGED' => 0, 'RFCINTTYP' => 'LIT', 'STRUCTURE' => bless( { 'NAME' => 'SXRECINFI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'CREAT_TIME' => { 'DECIMALS' => '000000', 'NAME' => 'CREAT_TIME', 'POSITION' => 8, 'OFFSET' => '003169', 'INTYPE' => 3, 'LEN' => '000006' }, 'SENDER' => { 'DECIMALS' => '000000', 'NAME' => 'SENDER', 'POSITION' => 2, 'OFFSET' => '000964', 'INTYPE' => 0, 'LEN' => '001215' }, 'SND_VINAME' => { 'DECIMALS' => '000000', 'NAME' => 'SND_VINAME', 'POSITION' => 9, 'OFFSET' => '003175', 'INTYPE' => 0, 'LEN' => '000030' }, 'CREAT_DATE' => { 'DECIMALS' => '000000', 'NAME' => 'CREAT_DATE', 'POSITION' => 7, 'OFFSET' => '003161', 'INTYPE' => 1, 'LEN' => '000008' }, 'SEND_DATE' => { 'DECIMALS' => '000000', 'NAME' => 'SEND_DATE', 'POSITION' => 5, 'OFFSET' => '003147', 'INTYPE' => 1, 'LEN' => '000008' }, 'ADR_TYPE' => { 'DECIMALS' => '000000', 'NAME' => 'ADR_TYPE', 'POSITION' => 3, 'OFFSET' => '002179', 'INTYPE' => 0, 'LEN' => '000004' }, 'COMM_ID' => { 'DECIMALS' => '000000', 'NAME' => 'COMM_ID', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000964' }, 'SEND_TIME' => { 'DECIMALS' => '000000', 'NAME' => 'SEND_TIME', 'POSITION' => 6, 'OFFSET' => '003155', 'INTYPE' => 3, 'LEN' => '000006' }, 'REPLY_TO' => { 'DECIMALS' => '000000', 'NAME' => 'REPLY_TO', 'POSITION' => 4, 'OFFSET' => '002183', 'INTYPE' => 0, 'LEN' => '000964' } } }, 'SAP::Struc' ) }, 'SAP::Parms' ), 'DOCUMENT_DATA' => bless( { 'DECIMALS' => 0, 'NAME' => 'DOCUMENT_DATA', 'VALUE' => '', 'INTYPE' => 4, 'LEN' => 180, 'DEFAULT' => '', 'TYPE' => 1, 'CHANGED' => 0, 'RFCINTTYP' => 'LIT', 'STRUCTURE' => bless( { 'NAME' => 'SXDOCCHGI1', 'RFCINTTYP' => 'LIT', 'FIELDS' => { 'END_TIME' => { 'DECIMALS' => '000000', 'NAME' => 'END_TIME', 'POSITION' => 21, 'OFFSET' => '000166', 'INTYPE' => 3, 'LEN' => '000006' }, 'EXPIRY_DAT' => { 'DECIMALS' => '000000', 'NAME' => 'EXPIRY_DAT', 'POSITION' => 10, 'OFFSET' => '000085', 'INTYPE' => 1, 'LEN' => '000008' }, 'SENSITIVTY' => { 'DECIMALS' => '000000', 'NAME' => 'SENSITIVTY', 'POSITION' => 6, 'OFFSET' => '000081', 'INTYPE' => 0, 'LEN' => '000001' }, 'OBJ_NAME' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_NAME', 'POSITION' => 1, 'OFFSET' => '000000', 'INTYPE' => 0, 'LEN' => '000012' }, 'STA_DATE' => { 'DECIMALS' => '000000', 'NAME' => 'STA_DATE', 'POSITION' => 20, 'OFFSET' => '000158', 'INTYPE' => 1, 'LEN' => '000008' }, 'SKIP_SCREN' => { 'DECIMALS' => '000000', 'NAME' => 'SKIP_SCREN', 'POSITION' => 15, 'OFFSET' => '000137', 'INTYPE' => 0, 'LEN' => '000001' }, 'NO_CHANGE' => { 'DECIMALS' => '000000', 'NAME' => 'NO_CHANGE', 'POSITION' => 8, 'OFFSET' => '000083', 'INTYPE' => 0, 'LEN' => '000001' }, 'OBJ_PRIO' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_PRIO', 'POSITION' => 7, 'OFFSET' => '000082', 'INTYPE' => 0, 'LEN' => '000001' }, 'OBJ_LANGU' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_LANGU', 'POSITION' => 3, 'OFFSET' => '000062', 'INTYPE' => 0, 'LEN' => '000001' }, 'END_DATE' => { 'DECIMALS' => '000000', 'NAME' => 'END_DATE', 'POSITION' => 22, 'OFFSET' => '000172', 'INTYPE' => 1, 'LEN' => '000008' }, 'PROC_CLINT' => { 'DECIMALS' => '000000', 'NAME' => 'PROC_CLINT', 'POSITION' => 14, 'OFFSET' => '000134', 'INTYPE' => 0, 'LEN' => '000003' }, 'PROC_NAME' => { 'DECIMALS' => '000000', 'NAME' => 'PROC_NAME', 'POSITION' => 12, 'OFFSET' => '000094', 'INTYPE' => 0, 'LEN' => '000030' }, 'OBJ_DESCR' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_DESCR', 'POSITION' => 2, 'OFFSET' => '000012', 'INTYPE' => 0, 'LEN' => '000050' }, 'STA_TIME' => { 'DECIMALS' => '000000', 'NAME' => 'STA_TIME', 'POSITION' => 19, 'OFFSET' => '000152', 'INTYPE' => 3, 'LEN' => '000006' }, 'DOC_SIZE' => { 'DECIMALS' => '000000', 'NAME' => 'DOC_SIZE', 'POSITION' => 18, 'OFFSET' => '000140', 'INTYPE' => 0, 'LEN' => '000012' }, 'OBJ_SORT' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_SORT', 'POSITION' => 4, 'OFFSET' => '000063', 'INTYPE' => 0, 'LEN' => '000010' }, 'OBJ_EXPDAT' => { 'DECIMALS' => '000000', 'NAME' => 'OBJ_EXPDAT', 'POSITION' => 5, 'OFFSET' => '000073', 'INTYPE' => 1, 'LEN' => '000008' }, 'TO_DO_OUT' => { 'DECIMALS' => '000000', 'NAME' => 'TO_DO_OUT', 'POSITION' => 16, 'OFFSET' => '000138', 'INTYPE' => 0, 'LEN' => '000001' }, 'PRIORITY' => { 'DECIMALS' => '000000', 'NAME' => 'PRIORITY', 'POSITION' => 9, 'OFFSET' => '000084', 'INTYPE' => 0, 'LEN' => '000001' }, 'PROC_TYPE' => { 'DECIMALS' => '000000', 'NAME' => 'PROC_TYPE', 'POSITION' => 11, 'OFFSET' => '000093', 'INTYPE' => 0, 'LEN' => '000001' }, 'FREE_DEL' => { 'DECIMALS' => '000000', 'NAME' => 'FREE_DEL', 'POSITION' => 17, 'OFFSET' => '000139', 'INTYPE' => 0, 'LEN' => '000001' }, 'PROC_SYST' => { 'DECIMALS' => '000000', 'NAME' => 'PROC_SYST', 'POSITION' => 13, 'OFFSET' => '000124', 'INTYPE' => 0, 'LEN' => '000010' } } }, 'SAP::Struc' ) }, 'SAP::Parms' ) } }, 'SAP::Iface' ); } sub debug{ return unless $DEBUG; print STDERR scalar localtime().": ", @_, "\n"; }