NAME
SAP::Iface - Perl extension for parsing and creating an Interface Object. The interface object would then be passed to the SAP::Rfc object to carry out the actual call, and return of values.
SYNOPSIS
$iface = new SAP::Iface( NAME => "RFCNAME" );
NAME is mandatory.
|
or more commonly:
$rfc = new SAP::Rfc( ASHOST => ... );
$iface = $rfc ->discover( 'RFC_READ_REPORT' );
|
DESCRIPTION
This class is used to construct a valid interface object ( SAP::Iface.pm ). The constructor requires the parameter value pairs to be passed as hash key values ( see SYNOPSIS ). Generally you would not create one of these manually as it is far easier to use the "discovery" functionality of the SAP::Rfc->discover("RFCNAME") method. This returns a fully formed interface object. This is achieved by using standard RFCs supplied by SAP to look up the definition of an RFC interface and any associated structures.
METHODS
new()
$iface = new SAP::Iface( NAME => "RFC_READ_TABLE" );
Create a new Interface object.
|
PARM_NAME()
$iface ->PARM_NAME( ' new value ' )
Parameters and tables are autoloaded methods - than can be accessed
like this to set and get their values .
|
RFCTYPE_CHAR()
Autoloaded methods are provided for all the constant definitions
relating to SAP parameter types.
|
name()
Return the name of an interface.
|
addParm()
$iface ->addParm(
TYPE => SAP::Iface->RFCEXPORT,
INTYPE => SAP::Iface->RFCTYPE_CHAR,
NAME => 'A_NAME' ,
STRUCTURE =>
$rfc ->structure( 'NAME_OF_STRUCTURE' ),
DEFAULT => 'the default value' ,
VALUE => 'the current value' ,
DECIMALS => 0,
LEN => 20 );
Add an RFC interface parameter to the SAP::Iface definition
- see SAP::Parm.
|
parm()
$iface ->parm( 'PARM_NAME' );
Return a reference to a named parameter object.
|
parms()
Return a list of parameter objects for an interface.
|
addTab()
$iface ->addTab(
INTYPE => SAP::Iface->RFCTYPE_BYTE,
NAME => 'NAME_OF_TABLE' ,
STRUCTURE =>
$rfc ->structure( 'NAME_OF_STRUCTURE' ),
LEN => 35 );
Add an RFC interface table definition to the SAP::Iface object
- see SAP::Tab.
|
isTab()
$iface ->isTab( 'TAB_NAME' );
Returns true if the named parameter is a table.
|
tab()
$iface ->tab( 'TAB_NAME' );
Return a reference to the named table object - see SAP::Tab.
|
tabs()
Return a list of table objects for the SAP::Iface object.
|
emptyTables()
Empty the contents of all the tables on a SAP::Iface object.
|
addException()
$iface ->addException( 'EXCEPTION_NAME' );
Add an exception name to the interface.
|
exception()
$iface ->exception( 'EXCEPTION_NAME' );
Return the named exception name - basically I dont do anything with
exceptions yet except keep a list of names that could be checked
against an RFC failure return code.
|
exceptions()
Return a list of exception names associated with a SAP::Iface object.
|
reset()
Empty all the tables and reset paramters to their default values -
useful when you are doing multiple calls.
|
iface()
An internal method that generates the internal structure passed into
the C routines.
|
handler()
return a reference to the callback handler for registered RFC
|
sysinfo()
return a hash ref containing the system info for the current
registered RFC callback
|
NAME
SAP::Tab - Perl extension for parsing and creating Tables to be added to an RFC Iface.
SYNOPSIS
$tab1 = new SAP::Tab(
INTYPE => SAP::Iface->RFCTYPE_BYTE,
NAME => 'NAME_OF_TABLE' ,
STRUCTURE =>
$rfc ->structure( 'NAME_OF_STRUCTURE' ),
LEN => 35 );
|
DESCRIPTION
This class is used to construct a valid Table object to be add to an interface object ( SAP::Iface.pm ). The constructor requires the parameter value pairs to be passed as hash key values ( see SYNOPSIS ).
METHODS
new()
$tab1 = new SAP::Tab(
INTYPE => SAP::Iface->RFCTYPE_BYTE,
NAME => 'NAME_OF_TABLE' ,
STRUCTURE =>
$rfc ->structure( 'NAME_OF_STRUCTURE' ),
LEN => 35 );
|
rows()
@r = $tab1 ->rows( [ row1, row2, row3 .... ] );
optionally set and Give the current rows of a table.
or:
$tab1 ->rows( [ { TEXT => "NAME LIKE 'SAPL\%RFC\%'" , .... } ] );
pass in a list of hash refs where each hash ref is the key value pairs
of the table structures fields ( as per the DDIC ).
|
addRow()
Add a row to the table contents.
|
hashRows()
@r = $tab1 ->hashRows;
This returns an array of hashes representing each row of a table.
The hashes are fieldname/value pairs of the row structure.
|
nextRow()
shift the first row off the table contents, and return a hash ref of
the field values as per the table structure.
|
rowCount()
$c = $tab1 ->rowCount();
return the current number of rows in a table object.
|
empty()
empty the row out of the table.
|
name()
get the name of the table object.
|
intype()
Set or get the internal table type.
|
leng()
Set or get the table row length .
|
structure()
Set or get the structure object of the table - see SAP::Struct.
|
NAME
SAP::Parms - Perl extension for parsing and creating an SAP parameter to be added to an RFC Interface.
SYNOPSIS
$imp1 = new SAP::Parms(
TYPE => SAP::Iface->RFCEXPORT,
INTYPE => SAP::Iface->RFCTYPE_CHAR,
NAME => 'A_NAME' ,
STRUCTURE =>
$rfc ->structure( 'NAME_OF_STRUCTURE' ),
DEFAULT => 'the default value' ,
VALUE => 'the current value' ,
DECIMALS => 0,
LEN => 20 );
|
DESCRIPTION
This class is used to construct a valid parameter to add to an interface object ( SAP::Iface.pm ). The constructor requires the parameter value pairs to be passed as hash key values ( see SYNOPSIS ).
METHODS
new()
$imp1 = new SAP::Parms(
TYPE => SAP::Iface->RFCEXPORT,
INTYPE => SAP::Iface->RFCTYPE_CHAR,
NAME => 'A_NAME' ,
STRUCTURE =>
$rfc ->structure( 'NAME_OF_STRUCTURE' ),
DEFAULT => 'the default value' ,
VALUE => 'the current value' ,
DECIMALS => 0,
LEN => 20 );
|
value()
$v = $imp1 ->value( [ val ] );
optionally set and Give the current value.
or - pass in a hash ref where the hash ref contains key/value pairs
for the fields in the complex parameters structure ( as per the DDIC ).
|
type()
$t = $imp1 ->type( [ type ] );
optionally set and Give the current value of type - this denotes
whether this is an export or import parameter.
|
decimals()
Set or get the decimals place of the parameter.
|
intype()
Set or get the internal type ( as required by librfc ).
|
intvalue()
An internal method for translating the value of a parameter into
the required native C format .
|
default()
Set or get the place holder for the default value of a paramter
- in order to reset the value of a parameter to the default you
need to $p ->value( $p -> default );
This is really an internal method that $iface -> reset calls on
each parameter.
|
structure()
Set or get the structure object for a parameter - not all
parameters will have an associated structures - only complex
ones. See SAP::Struc.
|
leng()
Set or get the length attribute of a parameter.
|
name()
Get the name of a parameter object.
|
NAME
SAP::Struc - Perl extension for parsing and creating a Structure definition. The resulting structure object is then used for SAP::Parms, and SAP::Tab objects to manipulate complex data elements.
SYNOPSIS
$struct = new SAP::Struc( NAME => XYZ, FIELDS => [......] );
|
DESCRIPTION
This class is used to construct a valid structure object - a structure object that would be used in an Export(Parms), Import(Parms), and Table(Tab) object ( SAP::Iface.pm ). This is normally done through the SAP::Rfc->structure('STRUCT_NAME') method that does an auto look up of the data dictionary definition of a structure. The constructor requires the parameter value pairs to be passed as hash key values ( see SYNOPSIS ). The value of each field can either be accessed through $str->fieldValue(field1), or through the autoloaded method of the field name eg. $str->FIELD1().
METHODS
new()
$str = new SAP::Struc( NAME => XYZ );
|
addField()
$str = new SAP::Struc( NAME => XYZ );
$str ->addField( NAME => field1,
INTYPE => chars );
add a new field into the structure object. The field is given a
position counter of the number of the previous number of fields + 1.
Name is mandatory, but type will be defaulted to chars if omitted.
|
deleteField()
$str = new SAP::Struc( NAME => XYZ );
$str ->addField( NAME => field1,
INTYPE => chars );
$str ->deleteField( 'field1' );
Allow fields to be deleted from a structure.
|
name()
$name = $str ->name();
Get the name of the structure.
|
fieldName()
Get the field name by position in the structure - $s ->fieldName( 3 ).
|
fieldType()
$ftype = $str ->fieldType(field1, [ new field type ]);
Set/Get the SAP BC field type of a component field of the structure.
This will force the overall value of the structure to be recalculated.
|
value()
$fvalue = $str ->value( 'new value' );
Set/Get the value of the whole structure.
|
hash()
$val = $str ->hash();
Get a hash of the values of the whole structure (current value).
|
fieldValue()
$fvalue = $str ->fieldValue(field1,
[new component value]);
Set/Get the value of a component field of the structure. This will
force the overall value of the structure to be recalculated.
|
fields()
@f = $struct ->fields();
Return an array of the fields of a structure sorted in positional
order.
|
Exported constants
AUTHOR
Piers Harding, saprfc@ompa.net
But Credit must go to all those that have helped.
SEE ALSO
perl(1), SAP(3), SAP::Rfc(3), SAP::Iface(3)