require
5.008;
use
vars
qw(@ISA $VERSION $SAPNW_RFC_CONFIG)
;
$VERSION
=
'0.12'
;
@ISA
=
qw(SAPNW::Base)
;
sub
load_config {
my
$self
=
shift
;
my
$file
=
scalar
@_
?
shift
@_
: SAP_YML;
if
(-f
$file
) {
open
(YML,
"<$file"
) ||
die
"Cannot open RFC config: $file\n"
;
my
$data
=
join
(
""
, (<YML>));
close
(YML);
eval
{
$SAPNW_RFC_CONFIG
= YAML::Load(
$data
); };
if
($@) {
die
"Parsing YAML config file failed($file): $@\n"
;
}
}
else
{
die
"Cant find RFC config to load in file: $file\n"
;
}
if
(
exists
$SAPNW_RFC_CONFIG
->{debug}) {
$SAPNW::Base::DEBUG
=
$SAPNW_RFC_CONFIG
->{debug};
}
}
sub
rfc_connect {
my
@keys
= ();
my
$proto
=
shift
;
my
$class
=
ref
(
$proto
) ||
$proto
;
my
@rest
=
@_
;
my
$config
= { (
map
{
$_
=>
$SAPNW_RFC_CONFIG
->{
$_
} } (
grep
{
$_
!~ /tpname|gwhost|gwserv/i } (
keys
%$SAPNW_RFC_CONFIG
))),
@rest
};
my
$conn
= new SAPNW::Connection(%{
$config
});
$conn
->
connect
();
return
$conn
;
}
sub
rfc_register {
my
@keys
= ();
my
$proto
=
shift
;
my
$class
=
ref
(
$proto
) ||
$proto
;
my
@rest
=
@_
;
my
$config
= { (
map
{
$_
=>
$SAPNW_RFC_CONFIG
->{
$_
} } (
grep
{
$_
=~ /tpname|gwhost|gwserv|debug|trace/i } (
keys
%$SAPNW_RFC_CONFIG
))),
@rest
};
debug(
"config passed on: "
.Dumper(
$config
));
my
$conn
= new SAPNW::Connection(%{
$config
});
$conn
->
connect
();
return
$conn
;
}
1;